Python 将符号方程解析为辛函数

Python 将符号方程解析为辛函数,python,parsing,expression,sympy,equation,Python,Parsing,Expression,Sympy,Equation,当我复制并粘贴此内容为文本时,我试图传入我的代码。它看起来是这样的∑(i=1,n)(a+m*x*(i)-y*(i))^2 但它不起作用 以下是我使用不同语法的代码: from sympy import symbols,sympify,solve,Eq,Symbol from sympy import symbols,Eq,sympify,summation expr = **('summation((m * x*(i) + a - y*(i))^2, (i, 0, n))')** Eq1 =

当我复制并粘贴此内容为文本时,我试图传入我的代码。它看起来是这样的
∑(i=1,n)(a+m*x*(i)-y*(i))^2

但它不起作用

以下是我使用不同语法的代码:

from sympy import symbols,sympify,solve,Eq,Symbol

from sympy import symbols,Eq,sympify,summation
expr = **('summation((m * x*(i) + a - y*(i))^2, (i, 0, n))')**
Eq1 = Eq(sympify(expr))
print(Eq1)
values = {2001,10,2,3,5}
arr_symbols = list(Eq1.free_symbols)
print(arr_symbols)
Method1(arr_symbols,values,expr)

def Method1(arr_symbols,Values,expr):
    from sympy import symbols, Eq, solve, pprint, integrate, sympify
    z = symbols('z')
    Formula = Eq(sympify(expr),z)
    print(Formula)
    index = 0
    for i in Values:
        Formula = Formula.subs(arr_symbols[index],i)
        index+=1
    print(solve(Formula))

但我想做的是使用
∑(i=1,n)(a+m*x*(i)-y*(i))^2
并请sympy为我进行转换。

如果给定
a
m
以及
x
y
的值并试图计算残差平方和,则最好编写一个这样做的函数或执行类似操作:

>>> x = [1, 2, 3]
>>> y = [4, 7, 11]
>>> a = 2
>>> m = 5
>>> sum((a + m*xi - yi)**2 for xi, yi in zip(x, y))
70

SymPy可以表示这个等式,但它只能解析Python。您可能能够为其解析器编写扩展来处理这类事情(请参阅)。这在原则上应该是可能的,尽管可能并不简单。我只建议您这样做,因为表达式的语法已经非常接近Python。如果不是(看起来也不是),最好使用像ANTLR这样的真正的解析库来为表达式建立语法。然后,您可以使用它来解析为SymPy(例如,请参见如何编写模块)

我不知道Python中是否有预先存在的库来处理您的表达式类型。我不知道有什么。充其量你可能会找到一个别人已经写过的语法,所以你不必自己写

这是不可能做到的。
我们必须通过latex代码。

不清楚您使用的是什么数据。你有x和y的值吗?MA.
值中的值与哪些变量相对应?是的,这些值分别替换变量x、y、m、a,但这不是问题所在。问题是我什么时候通过”∑24(i=0)^n▒作为我的表达式,调用它失败。语法错误。我需要一个方法来转换∑24(i=0)^n▒“((a+mx(i)-y(i))^2”到“求和((m*x*(i)+a-y*(i))^2,(i,0,n))”这是Symphy理解表达式的方式。我不认为Symphy可以解析这样的东西。它可以识别代码,但不能将求和符号作为函数。你想做什么?如果你只为x和y传递一个值,那么就不需要求和。这个求和只是我想做的一个例子。我还有很多这样的表达式带有各种符号,我想找到一种方法,通过python代码将它们转换为python理解。我拥有的表达式都是动态的,应用程序将从最终用户编写的excel中读取它们,最终用户不会以python理解的形式编写,而是在编写公式时编写公式如果Symphy经常做不到,也许还有另一个库可以。我已经在这上面呆了两天了。这个总结只是我想做的一个例子。我有很多这样的表达式,带有各种符号,我想找到一种方法,通过python代码将它们转换成python理解。我的表达式将l be dynamic应用程序将从最终用户编写的excel中读取它们,最终用户不会以python的形式编写它们来理解,他将按照他们通常编写的方式编写公式。如果sympy不能这样做,可能还有另一个库可以这样做。我已经坚持了两天了。嘿,谢谢你的回答,但我已经有了checked latex解析它不适用于此类表达式。但我仍在寻找一个库来帮助我解决我的问题。我不是说latex解析器可以解析这些表达式。它不能。相反,我是说你需要构建自己的解析器,看看latex解析器是如何构建的可以给你一些关于我们必须这样做。