在数学研究中,解方程首先需要确定解的范围,在SymPy中解方程也首先需要确定解的范围是实数集sympy.S.Reals
或者复数集sympy.S.Complexes
。定义域不同,得到的解集也是不同的。
在SymPy中使用函数sympy.solveset
来求解方程的解集。
例如依次求解以下五个方程
1 2 3 4 5 6 7 8 9 10
| >>> sympy.solveset(sympy.Eq(x**3,1),x,domain=sympy.S.Reals) {1} >>> sympy.solveset(sympy.Eq(x**3,1),x,domain=sympy.S.Complexes) {1, -1/2 - sqrt(3)*I/2, -1/2 + sqrt(3)*I/2} >>> sympy.solveset(sympy.exp(x),x) EmptySet >>> sympy.solveset(sympy.exp(x)-1,x,domain=sympy.S.Reals) {0} >>> sympy.solveset(sympy.exp(x)-1,x,domain=sympy.S.Complexes) ImageSet(Lambda(_n, 2*_n*I*pi), Integers)
|
其中Lambda()
表示函数,_n
是自变量,Integers
是自变量的定义域
在线性代数中,有多元一次方程组,可以使用sympy.solve()
函数,例如
1 2 3 4
| >>> sympy.solve([x+y-10,x-y-2],[x,y]) {x: 6, y: 4} >>> sympy.solve([sympy.sin(x-y),sympy.cos(x+y)],[x,y]) [(-pi/4, 3*pi/4), (pi/4, pi/4), (3*pi/4, 3*pi/4), (5*pi/4, pi/4)]
|