最近工作的原因,需要进行一些积分运算,通过一些搜索得知了SymPy,记录一下使用历程。
1. SymPy介绍
SymPy是关于Symbolic Mathematics的Python库,它旨在成为一个功能全面的计算机代数系统(CAS),同时保持代码尽可能简单,以便易于理解和扩展。SymPy是完全使用Python所编写。
SymPy官方页面
2. 积分计算
Integral(*args: Any, meijerg: Any = None, conds: str = 'piecewise', risch: Any = None, heurisch: Any = None, manual: Any = None, **kwargs: Any)
目标函数
不定积分
x = symbols('x') f = integrate(3 * x + 1, (x)) print(f)
定积分
如果积分的上下界已知,则求定积分值,假设a = 0,b = 1:
x = symbols('x') f = integrate(3 * x + 1, (x, 0, 1)) print(f)
如果积分的下界已知,求上界,假设a = 0, 求b:
x = symbols('x') b = symbols('b') f = integrate(3 * x + 1, (x, 0, b)) ret = solve(f, b) print(ret)
以些类推,可以只求下限,或同时求上下限。
目标函数
多重积分
x = symbols('x') y = symbols('y') f1 = exp(- x ** 2 - y ** 2) f = integral(f1, (x, 0, oo), (y, 0, oo)) print(f)
3. 微分计算
diff(f: Any, *symbols: Any, **kwargs: Any)
目标函数
一阶或高阶微分
x = symbols('x') n = 1 f = diff(cos(x), x, n) print(f)
目标函数
偏微分
x, y, z = symbols('x y z') f = diff(exp(x * y * z), x, 1, y, 2, z, 4) print(f)
4. 极限
limit(e: Any, z: Any, z0: Any, dir: Any = "+")
目标函数
x = symbols('x') f = limit(sin(x) / x, x, 0, '+') print(f)
后续添加....