允许将数值公式作为对象处理的开源语言/库/表示格式



我正在寻找一种方法来存储一系列的公式/方程作为文本(所以他们很容易区分)。以后的公式依赖于以前的公式的结果。

我应该能够将公式(类似于MathCAD中的Live Worksheets)计算为数字结果,但也能够以编程方式生成原始公式的字符串表示形式。

换句话说,我希望能够将公式本身视为数据,并对公式进行评估。

我想有一个文本编辑器与语法高亮时编辑公式。

我的第一种方法是将公式存储为字符串的Python文件,然后在字符串上调用eval()。但是,这不允许对公式进行语法高亮显示。

我选择的语言是Python,但我愿意接受其他非专有的解决方案。

的例子:

a = 73
b = 13
c = 100
d = 20
e = 18
x = a^2 + b / (c - min(d, e))
y = c + sqrt(x * e)

目的是使用公式的求值结果自动生成其他代码,同时用原始公式本身注释生成的代码。

您可以使用sympy:

from sympy import *
a,b,c,d,e = symbols("a,b,c,d,e")
x = a**2 + b/(c-min(d,e))
y = c+sqrt(x*e)
values = {a:73,b:13,c:100,d:20,e:18}
print x
print y
print x.subs(values)
print y.subs(values)
print N(x.subs(values))
print N(y.subs(values))

输出为:

a**2 + b/(c - d)
c + (e*(a**2 + b/(c - d)))**(1/2)
426333/80
100 + 3*4263330**(1/2)/20
5329.16250000000
409.717492240913

最新更新