2016-10-29 3 views
2

Хорошо, что у меня есть один большой проект от механической прокатки на данный момент. Мне нужно построить и вычислить всю конструкцию крана, и я ищу помощь, потому что я новичок в python.Сделайте этот болезненный процесс немного быстрее (python, sympy, latex)

Это будет более 100 страниц расчетов и уравнений, которые я запрограммирован таким образом, чтобы дать мне окончательный результат и сохранить латексную готовый код:

import math 
from sympy import * 
from sympy.solvers import solve 
from sympy.physics.units import * 

etau, ik, eta0 = symbols ("eta_u i_k eta_0") 
eq1 = Eq(etau, (1/ik)*((1-eta0**ik)/(1-eta0))) 
etau_result=eq1.rhs.evalf(subs={ik:3, eta0:98e-2}) 
eq1_R=solve(eq1)[0] 

text_file = open("Output.txt", "w") 
text_file.write("Stupanj djelovanja faktorskih koloturnika racuna se prema 
formuli:\n \n"+"\\begin{equation} \n"+latex(eq1)+"=%s"%`  
(etau_result)+"\n"+"\\end{equation}" \ 
"\ngdje je: \n \n "\ 
+latex(ik)+"=u="+str(ik)+" -prijenosni omjer koloturnika\n"\ 
+latex(eta0)+" -Iskoristivost jedne uznice smjestene na valjnom lezaju\n\n"  
) 

Ok, пожалуйста, просто игнорировать этот странный язык это хорватский так что я не успел перевести это :)

Прямо сейчас у меня есть тонна того же кода, который мне нужно написать для каждого проклятого уравнения и в нижнем я должен написать описание, которое преобразует уравнения в латексную форму + дайте несколько слов о точных уравнениях.

Я знаю, что автоматизировать часть с описанием невозможно, но я хочу автоматизировать часть с уравнением, потому что мне нужно написать для каждого уравнения тот же код из строки 5 в строку 18, и это боль в a .... и занимает слишком много времени.

Надеюсь, что мы найдем какое-то интересное решение.

+0

Возможно, вам захочется взглянуть на некоторые шаблоны. Это позволит вам написать только одну большую строку и программно ввести в неизвестные части (уравнения). В Python встроен простой механизм шаблонов (например, '' {stuff} '. Format (stuff = 1) '). Есть более продвинутые один раз (наиболее распространенными являются jinja2 и mako). – asmeurer

ответ

0

поскольку я выкладываю здесь эту qestion я пришел с чем-то полезным, но мне нужно, чтобы улучшить его и в этот момент я не знаю, как:

a={} 
n = input("How much keys do you want?") 


#Input 
for key in range(n): 
    key = raw_input(" Write the name of the key ") 
    a.setdefault(key, []) 
    a[key].append(raw_input(" Insert variable ")) 
    a.setdefault(key, []) 
    a[key].append(raw_input(" Insert symbole ")) 
    a.setdefault(key, []) 
    a[key].append(input(" Insert value ")) 
#print a 


#Sort 
variable=[] 
symbols1=[] 
values=[] 
for key, value in a.items(): 
    posX, posY, posZ = value 
    variable.append(posX) 
    symbols.append(posY) 
    values.append(posZ) 
#print variable 
#print symbols1 
#print values 


#Math 
variable = symbols(symbols1) 
eq1 = Eq(etau, (1/ik)*((1-eta0**ik)/(1-eta0))) 
print latex(eq1) 

Это дает мне ошибку

Файл " try.py», строка 40, в

EQ1 = Eq (Etau, (1/ик) * ((1-eta0 ** ик)/(1-eta0)))

NameError: название ' etau 'не определено

 Смежные вопросы

  • Нет связанных вопросов^_^