应用Python的SymPy库解决高等数学及线性代数
SymPy库简介
SymPy是符号数学的Python库。 它旨在成为一个全功能的计算机代数系统(CAS),同时保持代码尽可能简单,以便易于理解和扩展。 SymPy完全是用Python编写的。
[SymPy官网](“http://www.sympy.org/en/index.html“)
[ API手册 ](“http://www.sympy.org/en/index.html“)
基础用法
Symbols-符号
>>> from sympy import *
>>> # 两种方法创建符号
>>> x, y, z = symbols('x y z') # 创建符号x、y、z
>>> t = Symbol('t') # 创建符号t
Derivatives-导数
>>> diff(cos(x), x) # cos(x)对x求导
-sin(x)
>>> diff(exp(x**2), x) # e的x方对x求导
2*x*exp(x**2)
>>> diff(x**4, x, x, x)# x的4次方分别对x求三次导
24⋅x
>>> diff(x**4, x, 3) # x的4次方对x求三次导
24⋅x
Integrals-积分
# definite integrals 定积分
>>> integrate(exp(-x), (x, 0, oo)) # e的-x方 下限:0 上限:无穷(两个字母o表示)对x求定积分
1
>>> integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo)) # 求二重积分
π
# indefinite integrals 不定积分
>>> integrate(cos(x), x) # cos(x)对x求不定积分
>sin(x)
Limits-极限
>>> limit(sin(x)/x, x, 0) # sin(x)/x 在x趋向于0时的极限
1
>>> limit(1/x, x, 0, '+') # 1/x 在x趋向于0+时的极限
∞
高等数学上的应用
from sympy import *
x = Symbol('x'); t = Symbol('t') # 定义两个变量
lmt = limit(
(integrate(t*cos(t),(t,0,x))-1+cos(x)) / (sqrt(x*tan(x)+1)-sqrt(x*sin(x)+1)),
x,
0)
print(lmt) # -1/3