Pennant的日常
分享工作上的点点滴滴

最近工作的原因,需要进行一些积分运算,通过一些搜索得知了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)

 

后续添加....

posted on 2022-03-22 14:05  汝熹  阅读(274)  评论(0编辑  收藏  举报