首先,定义符号
from sympy import *
x, y, z = symbols('x y z')
1.关于方程:
Sympy中的符号方程式不是用 = = =或 = = == ==表示,而是用等式eq表示。
Eq(x, y)
Out[1]:
x = y
#在Sympy中,求解函数会自动将不在Eq中的任何表达式假定为0。
solveset(Eq(x**2, 1), x)
Out[2]: so
{-1, 1}
solveset(Eq(x**2 -1, 0), x)
Out[3]:
{-1, 1}
solveset(x**2 -1, x)
# 即你想求解的表达式已经等于0,如此输入十分有用
Out[4]:
{-1, 1}
2.求解方程式:
solveset():
求解方程的主要函数是solveset()。
语法:solveset(eq, variable=None, domain=S.Complexes),eq形式见1.关于方程
Note:还有一个求解的函数,为solve(eq, variables),官方文档建议用solveset()
当求解单个方程式时,solveset的输出为FiniteSet或Interval或ImageSet。
solveset(x**2 - x, x)
Out[5]:
{0, 1}
solveset(x - x, x, domain=S.Reals)
Out[6]:
ℝ
solveset(sin(x) - 1, x, domain=S.Reals)
Out[7]:
{2𝑛𝜋+𝜋/2|𝑛∈ℤ}
如果没有解决方案,则返回EmptySet ,如果找不到解决方案,则返ConditionSet。
solveset(exp(x), x)
# 没有解决方案
Out[8]:
∅
solveset(cos(x) - x, x)
# 找不到解决方案
Out[9]:
{𝑥∣𝑥∈ℂ∧−𝑥+cos(𝑥)=0}