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