让这个痛苦的过程更快一些(python,sympy,latex)

时间:2016-10-29 08:28:49

标签: python latex sympy

首先,我有一个来自机械工程的大项目。我需要构建和计算整个起重机构造,我正在寻求帮助,因为我是python中的新手。

这将是超过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行的每个方程式编写相同的代码,这就是a ......中的痛苦太多时间了。

我希望我们能找到一些有趣的解决方案。

1 个答案:

答案 0 :(得分:0)

因为我在这里发布这个问题我带来了一些有用的东西,但我需要改进它,此时我不知道如何:

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 / ik)*((1-eta0 ** ik)/(1-eta0)))

NameError:名称'etau'未定义