SymPy--符号运算好帮手

SymPy是Python的数学符号计算库,用它可以进行数学公式的符号推导。

本文通过SymPy验证欧拉恒等式:

e i π + 1 = 0

其中e是自然指数的底,i是虚数单位, π 是圆周率。此公式被誉为数学最奇妙的公式,它将5个基本数学常数用加法、乘法和幂运算联系起来。

导入sympy库,对上述公式直接计算:
这里写图片描述

欧拉恒等式可以下面的公式进行计算:

e i x = cos x + i sin x

为了用SymPy求证上面的公式,我们需要引入变量x。在SymPy中,数学符号是Symbol类的对象,因此必须先创建之后才能使用。expand函数可以将公式展开:
这里写图片描述
没有成功,只是换了一种写法而已。这里的exp不是math.exp或者numpy.exp,而是sympy.exp,它是一个类,用来表述自然指数函数。
expand函数有关键字参数complex,当它为True时,expand将把公式分为实数和虚数两个部分:
这里写图片描述
这次得到的结果相当复杂,其中sin, cos, re, im都是sympy定义的类,re表示取实数部分,im表示取虚数部分。显然这里的运算将符号x当作复数了。为了指定符号x必须是实数,我们需要如下重新定义符号x:
这里写图片描述

终于得到了我们需要的公式,我们可以用泰勒多项式展开给以证明:
这里写图片描述
series是泰勒展开函数,pprint将公式用更好看的格式打印出来。下面分别获得tmp的实部和虚部,分别和cos(x)和sin(x)的展开公式进行比较:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/mingzhuo_126/article/details/81287911