SymPy – 求解器
由于符号=和==在Python中被定义为赋值和等价运算符,它们不能用来建立符号方程。SymPy提供了Eq()函数来建立一个方程。
上述代码片断给出的输出等同于以下表达式 −
x = y
由于当且仅当x-y=0时,x=y是可能的,所以上述方程可以写成-
上述代码片断给出的输出等同于以下表达式 −
x – y = 0
SymPy中的求解器模块提供了soveset()函数,其原型如下-
该域默认为S.Complexes。使用solveset()函数,我们可以解决一个代数方程,如下所示
得到的输出结果如下 —
{-3, 3}
执行上述代码片断后,得到的输出结果如下 –
{1,2}
solveset的输出是一个解决方案的有限集。如果没有解决方案,将返回一个空集(EmptySet)。
执行上述代码片断后,得到以下输出结果−
线性方程
我们必须使用 linsolve() 函数来解决线性方程。
例如,方程如下 –
x-y=4
x+y=1
执行上述代码片断后,得到以下输出结果−
linsolve()函数也可以解决以矩阵形式表示的线性方程。
如果我们执行上面的代码片段,我们会得到以下输出 –
非线性方程
为了这个目的,我们使用nonlinsolve()函数。Equations for this example −
a2 +a=0 a-b=0
如果我们执行上面的代码片段,我们会得到以下输出 –
微分方程
首先,通过向符号函数传递cls=Function,创建一个未定义函数。要解决微分方程,请使用dsolve。
执行上述代码片断后,得到以下输出结果−
f(x)
这里f(x)是一个未评价的函数。它的导数如下 –
上述代码片断给出的输出等同于以下表达式 −
我们首先创建对应于以下微分方程的Eq对象
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −