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