sympy.solve.

sympypython中的一个科学计算库,提供了强大的符号计算体系,可用于多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。本文主要介绍使用sympy库求解方程的方法。

首先定义用到的库:

import sympy
from sympy import Symbol # 用于定义变量
from sympy import sovle # 用于方程的解析解
from sympy import nsovle # 用于方程的数值解

使用sympy库时常见报错如下:

例1:求解单变量方程

\[e^x = 3\]
import sympy
from sympy import Symbol, solve

x = Symbol('x')
fn = sympy.exp(x)-3
y = solve(fn, x)
print(y) # [log(3)]

例2:求解多变量方程

\[x^2 + y^2 = 3\]
import sympy
from sympy import Symbol, solve

x = Symbol('x')
y = Symbol('y')
fn = x**2 + y**2 - 3
z = solve(fn, [x,y])
print(z) # [(-sqrt(3 - y**2), y), (sqrt(3 - y**2), y)]

例3:求解多变量方程组

\[x + y = 3 \\ x - y = -5\]
import sympy
from sympy import Symbol, solve

x = Symbol('x')
y = Symbol('y')
fn1 = x + y - 3
fn2 = x - y + 5
z = solve([fn1,fn2], [x,y])
print(z) # {x: -1, y: 4}

例4:求解数值解

\[x+e^x+\sin(x) = 10\]
import sympy
from sympy import Symbol, nsolve

x = Symbol('x')
fn = x + sympy.exp(x) + sympy.sin(x) - 10
z = nsolve(fn, x, 2) # 数值求解需要提供初值
print(z) # 1.96200120343440