SymPy-符号运算好帮手
SymPy是Python的数学符号计算库,用它可以进行数学公式的符号推导。为了调用方便,下面所有的实例程序都假设事先从sympy库导入了所有内容:
from sympy import *
一、欧拉恒等式
叫做欧拉恒等式,其中e是自然指数的底,i是虚数单位, π 是圆周率。此公式被誉为数学最奇妙的公式,它将5个基本数学常数用加法、乘法和幂运算联系起来。
欧拉恒等式可以下面的公式进行计算:
用SymPy求证上面的公式:
引入变量x
x = Symbol("x", real=True)
expand(exp(I*x), complex=True)
我们可以用泰勒多项式展开:
tmp = series(exp(I*x), x, 0, 10)
series是泰勒展开函数,下面分别获得tmp的实部和虚部,分别和cos(x)和sin(x)的展开公式进行比较:
pprint(re(tmp))
pprint( series( cos(x), x, 0, 10) )
pprint(im(tmp))
pprint(series(sin(x), x, 0, 10))
二、球体体积
SymPy的符号积分函数integrate则可以帮助我们进行符号积分。integrate可以进行不定积分:
integrate(x*sin(x), x)
如果指定x的取值范围的话,integrate则进行定积分运算:
integrate(x*sin(x), (x, 0, 2*pi))
用subs进行算式替换
subs函数可以将算式中的符号进行替换,它有3种调用方式:
• expression.subs(x, y) : 将算式中的x替换成y
• expression.subs({x:y,u:v}) : 使用字典进行多次替换
• expression.subs([(x,y),(u,v)]) : 使用列表进行多次替换
请注意多次替换是顺序执行的,因此:
expression.sub([(x,y),(y,x)])
并不能对两个符号x,y进行交换。