SymPy学习笔记(六)解方程
求解方程
在SymPy学习笔记(二)需要避免的坑中已经提到过,SymPy中表达相等应该用Eq()
而不是==
或=
用solveset(equation, x)
可以求equation关于x的解集,如果等式右边是0,也可以不写成solveset(Eq(expr, 0), x)
,直接写成solveset(expr, x)
,例如:
1 | >>> solveset(Eq(x**2, 1), x) |
如果无解,将返回 ,如果无法求解,会返回一个条件集合。
1 | >>> solveset(exp(x), x) # 无解 |
求解线性方程组
使用linsolve()
1 | >>> linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z)) # 等式列表形式 |
求解非线性方程组
使用nonlinsolve()
获得多项式的重根数
solveset()
返回的都是不重复的根,要获得多项式的重根数,可以使用roots()
1 | >>> solveset(x**3 - 6*x**2 + 9*x, x) |
求解微分方程
使用dsolve()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Cyrus' Blog!
评论