Python科学计算与数据处理—符号运算库.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python科学计算与数据处理—符号运算库

符号运算库目录从示例开始欧拉恒等式球体体积数学表达式符号数值运算符和函数符号运算表达式转换和简化方程目录微分方程积分其他函数符号运算库。

它的目标是成为一个功能齐全的计算机代数系统,同时保持代码简单、易于理解和可扩展。

SymPy完全用Python编写,不需要任何外部库。

符号可用于数学表达式的符号推导和计算。

您可以使用isympy来运行程序isympy来添加基于IPython 的数学表达式的可视化显示功能。

在启动时,以下程序将自动运行:该程序首先将Python的除法运算符从整数除法改为普通除法。

然后,从SymPy库中加载所有符号,并定义四个通用数学符号x、y、z、t,三个符号k、m、n表示整数,三个符号f、g、h 表示数学函数。

fromFutureimPortdivisionfromSymport * x,y,z,t =符号(# x,y,z,t #) k,m,n =符号(# k,m,n #,integer = true) f,g,h =符号(# f,g,h #,cls =函数)# initprinting()从这个例子开始,这个公式被称为欧拉恒等式,其中e是自然常数,I是虚单位,pi是pi。

这个公式被认为是数学中最奇妙的公式。它通过加法、乘法和幂运算连接两个基本的数学常数。

在从符号库中载入的符号中,E代表自然常数,I代表虚数,

单位pi代表周长比,所以上述公式可以直接计算如下:E * * (I * PI)从例子开始,符号不仅可以直接计算公式的值,而且有助于推导和证明数学公式。

欧拉等式可以被替换成下面的欧拉公式:在SymPy中,您可以使用expand()来扩展表达式并进行尝试:没有成功,您只是更改了书写风格。

当expand()的复数参数为真时,表达式将分为两部分:实数和虚数:expand (e * * (I * x)) expand (I * x)从示例开始,表达式这次被扩展,但结果相当复杂。

显然,expand()使用x作为复数。

为了将x指定为实数,需要重新定义x:最后,获得所需的公式。

泰勒多项式可用于展开表达式:展开(exp (I * x),复数=真)I * exp(im(x))* sin(re(x))exp(im(x))* cos(re(x))x =符号(x,实数=真)展开(exp (I * x),复数=真)isin (x) cos (x)从示例开始,级数()对表达式执行泰勒级数展开。

你可以看到虚项和实项在展开后交替出现。

根据欧拉公式,虚项之和应等于正弦(x)的泰勒展开式,实项之和应等于余弦(x)的泰勒展开式。

Tmp =级数(exp (I * x),x,,,prinTmpi * xx * * I * x * * x * * I * x * * x * * I * x * * x * * I * x * x * x * x * x * x * * o(x * *)tmp从下面的例子中得到tmp的实部:下面的cos(x)的泰勒展开式表明这些项

与上面的结果是一致的。

Re (tmp) x * *

由于展开式的实部和虚部等于cos(x)和sin(x),验证了欧拉公式的正确性。

Im (tmp) x * *SymPy中的integral()可以执行符号积分。

用integral()进行不定积分运算:如果指定了变量x的取值范围,integral()可以进行定积分运算:integral (x * sin (x),x * cos (x) sin (x) integral (x * sin (x),(x,,*pi))*pi从例子开始,为了计算球体的体积,先看如何计算圆的面积。假设圆的半径是r,圆上任何一点的y坐标函数是:因此,函数y(x)可以直接在r到r的区间内积分,得到半圆面积。

x,y,r =符号(# x,y,r #) f = * integrate (sqrt (r * rx * *),(x,r,r))printf * integrate(sqrt(r * * x * *),(x,r,r))从示例开始,首先需要定义操作中需要的符号。这里,symbols()用于一次创建多个符号。

Integral()不计算积分结果,而是直接返回输入公式。

这是因为在不知道r大于r的情况下,SymPy可以通过重新定义r得到正确的答案:其次,球体的体积可以通过对这个面积公式的定积分得到,但是相应切面的半径也会随着x轴坐标的变化而变化。

R =符号(# r #,正=真)circlearea = * integral(sqrt(r * * x * *),(x,r,r))printchercleayapi * r * *从示例开始,假设x轴的坐标为x,球体的半径为r,则可以使用前面的公式y(x)计算球体在x处的切线半径。

因此,有必要替换圆的circlearea公式中的变量r:然后,通过对circlearea中的变量x的间隔r到r执行定积分,可以获得球的体积公式:圆面积=圆lear measures(r,Skrt(r * * x * *))printchleayapi *(r * * x * *)print integral(圆面积,(x,r,r)) * pi * r * *从示例开始,用subs 替换公式:subs()可以替换公式中的符号。有两种方法可以调用它:expressionsubs(x,Y):用yexpressionsubs({x:y,u:v})替换公式中的x:replace expressionsubs((x,Y),(u,v)):用列表替换多次请注意,多个替换是按顺序执行的,因此:expression subs((x,Y),(Y,x))不能交换符号x和Y。

数学表达式符号创建符号使用符号()此函数返回一个符号对象来表示具有名称属性的符号变量。这是一个符号名称,例如:其中左边的x是一个符号对象,右边用引号括起来的x是符号对象的名称属性。两个x不要求相同,但是为了便于理解,符号对象和名称属性通常显示为相同的,并且名称属性用引号括起来。

如果要同时在多个符号对象符号()中配置多个名称属性,可以用x =符号(#xlsquo)数学表达式空格或逗号分隔它们,并用引号将它们括起来,如下所示:一次配置三个符号,因为符号对象名称和名称属性名称通常是一致的,可以使用var()函数,如:此语句和上一个语句具有相同的函数,在当前环境中创建具有相同名称的符号对象(符号实际上更好,以防止误解)。

Var (x,y,x,y) (x,y,x,y) x,y,x,y =符号(# x,y,x,y #)上述语句创建名为x、y、x、y的符号对象,同时在当前环境中创

相关文档
最新文档