Python SymPy:方程的自动构造

Python SymPy:方程的自动构造,python,sympy,nonlinear-functions,Python,Sympy,Nonlinear Functions,我在别处发现x=sp.symbols('x1:{}.format(n)) 创建绑定到变量x的n变量集合。 现在,我想使用 解非线性方程组。我可以构造一个包含 方程组中每一行的表达式, e、 例如x1**2+4*x2**3等。 如何使sympy将这些转换为自己的方程式? 在文档中给出的示例中,我们写道 类似于[x1**2+4*x2**3,2*x1+3*x3]并将其传递给solve(), 但是如何构造这些表达式(它们的类型是什么?) 自动地,除了硬编码之外?上述表达式是符号乘积的总和,在Add 从:

我在别处发现
x=sp.symbols('x1:{}.format(n))
创建绑定到变量
x
n
变量集合。 现在,我想使用 解非线性方程组。我可以构造一个包含 方程组中每一行的表达式, e、 例如
x1**2+4*x2**3
等。 如何使
sympy
将这些转换为自己的方程式? 在文档中给出的示例中,我们写道 类似于
[x1**2+4*x2**3,2*x1+3*x3]
并将其传递给
solve()
, 但是如何构造这些表达式(它们的类型是什么?)
自动地,除了硬编码之外?

上述表达式是符号乘积的总和,在
Add

从:

所有符号都是使用Basic的子类实现的 班级。首先,您需要使用符号(“x”)或数字创建符号 使用整数(5)或浮点(34.3)。然后构造表达式 使用Symphy的任何类。例如,添加(符号(“a”)、符号(“b”)) 给出Add类的一个实例。您可以调用所有方法,其中 特定类支持

在您的示例中,需要将
x1
x2
x3
声明为符号:

x1, x2, x3 = symbols('x1 x2 x3')
定义符号后,Symphy会自动将字符串转换为自己的表达式进行计算。要检查sympy表达式的类型,请使用
sympify

a=符号(“a”)
b=符号(“b”)
c='a**2+b'
打印c
(a+b)**2
类型(c)
#串
从sympy导入sympify
同情(c)
类型(符号(c))
#