SymPy-符号运算好帮手

SymPy-符号运算好帮手

  SymPy是Python的数学符号计算库,用它可以进行数学公式的符号推导。为了调用方便,下面所有的实例程序都假设事先从sympy库导入了所有内容:

from sympy import *

一、欧拉恒等式

e i π + 1 = 0

叫做欧拉恒等式,其中e是自然指数的底,i是虚数单位, π 是圆周率。此公式被誉为数学最奇妙的公式,它将5个基本数学常数用加法、乘法和幂运算联系起来。
欧拉恒等式可以下面的公式进行计算:
e i x = c o s x + i s i n x

用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进行交换。

猜你喜欢

转载自blog.csdn.net/y_bing/article/details/82695794
今日推荐