2016-10-29 23 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"  
) 

好吧,請忽略這陌生的語言是克羅地亞所以我沒有時間翻譯:)

現在我有一個相同的代碼,我需要爲每個該死的方程和經濟低迷,我需要進行描述轉換乳膠形式轉換方程+給一些單詞關於精確的方程。

我知道這是不可能的自動化與描述的部分,但我想自動化與方程的一部分,因爲我需要寫從每一個方程相同的代碼從第5行到第18行,這就是痛苦....和花費太多時間。

我希望我們能找到一些有趣的解決方案。

+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 =等式(艾濤,(1/IK)*((1-ETA0 ** IK)/(1-ETA0)))

NameError:名稱' etau'未定義