级数、极限和留数

求和与求积
构造和式
当下限为1时可以省略下限:
此处 i 按步长2增加,故只包含奇数:
求积与求和做法类似:
Sum[f,{i,imin,imax}]
和式
Sum[f,{i,imin,imax,di}]
i 按步长 di 增加的和式
Sum[f,{i,imin,imax},{j,jmin,jmax}]
累次和
Product[f,{i,imin,imax}]
连乘
和与积.
这里求和使用作为 n 的函数的符号运算:
Wolfram 系统也能求无穷项的和:
与积分类似,简单和能产生复杂的结果:
利用标准数学函数,求不出此和式的精确值:
还可以求近似值:
Wolfram 语言还有多重和与多重积的表示法. Sum[f,{i,imin,imax},{j,jmin,jmax}] 代表关于 ij 的和式,用标准的数学表示法可写为 . 注意,像标准的数学表示法一样,在 Wolfram 语言的表示法中最外层变量的范围首先被给出.
这是多重和 . 注意,正如数学中的表示法一样,首先给出最外层关于 i 的求和:
SumProduct 中指定变量范围的方法是 Wolfram 语言所使用的相当一般的迭代器表示法的一个例子. 在讨论使用 Table 来生成表和列表时("值表的生成")以及在描述 Do 循环时("循环运算")将看到这个表示法.
{imax}
重复 imax 次,不带有变量的增加
{i,imax}
i 按步长 11 增加到 imax
{i,imin,imax}
i 按步长 1imin 增加到 imax
{i,imin,imax,di}
i 按步长 diimin 增加到 imax
{i,imin,imax},{j,jmin,jmax},
iimin 增加到 imax,对每个这样的值,jjmin 增加到 jmax,等等
Wolfram 语言迭代器表示法.
幂级数
到目前为止我们所讨论的运算都是精确的,给定精确的输入,得到的结果是精确的公式.
然而在许多情况下,用户并不需要精确的结果. 例如,当 x 较小时,找到一个近似公式就足够了.
这里给出函数 接近 时展开到 的幂级数近似公式.
Wolfram 语言能求出许多函数的幂级数展开式:
若给出一个 Wolfram 语言不认识的函数,那么 Series 用导数形式写出其幂级数:
幂级数是近似公式,它对代数表达式起的作用与近似数对数值表达式所起的作用是一致的. Wolfram 语言允许对幂级数进行运算. 计算所得的结果幂级数保持原来幂级数的近似结果或精度.
这是一个简单的幂级数,精确到 .
对幂级数进行运算时,计算结果只精确到相应的 x 的阶数.
这里把幂级数转化为普通的多项式(即去掉了余项):
此时,所做的平方运算是精确的:
使用 Expand 给出具有 11 项的结果.
Series[expr,{x,x0,n}]
exprx=x0 处不高于 n 阶的幂级数展开式
Normal[series]
截掉幂级数的余项,给出普通的表达式
幂级数运算.
幂级数展开式
Series[expr,{x,x0,n}]
exprx=x0 处最高到 (x-x0)n 阶项的幂级数展开式
Series[expr,{x,x0,nx},{y,y0,ny}]
求先对 y 后对 x 的级数展开式
建立幂级数的函数.
这是 处到  阶项的幂级数展开式:
这是 处的幂级数展开式:
如果 Wolfram 语言不知道某个函数的幂级数展开式,则用导数写出符号结果:
作为数学术语,Series 可以看作是一种构造函数的泰勒级数的方法.
阶导数为 的函数 处的泰勒级数展开式的标准公式为 . 使用该公式得到与使用 Series 一样的结果.(对常见函数,Series 使用某种更有效的算法.)
Series 也能生成某些包含分数和负数幂的幂级数,这是标准泰勒公式所不具有的.
这是一个包含 x 的负数幂的幂级数:
这是一个包含 x 的分数次幂的幂级数:
Series 也能处理包含对数的级数:
有些数学函数不存在标准幂级数,Wolfram 语言能识别许多这种情形.
Series 看出 有本性奇点 ,故不求其幂级数:
然而 Series 能给出 处的幂级数:
特别当出现负数幂时,Series 生成的特定幂级数有多少项是一个微妙的问题.
理解此问题的一个方法是比较取一定阶的幂级数与取一定精度的实数之间的相似之处. 幂级数作为近似公式,这一点与有限精度的实数是近似数完全相似.
Series 在构造幂级数中遵循的步骤非常类似于 N 在构造实数近似值中遵循的步骤. 二者都从用有限阶或有限精度的近似代替表达式中的最小元素开始,然后计算结果表达式. 如果有消约,这个过程可能给出的最终结果其阶或精度都会小于用户所要求的. 然而,如同 NSeries 有能力重试计算,以使得到的结果具有用户要求的阶. 如果不成功,用户通过指定更高的阶数,仍然可以得到特定阶的结果.
Series 补偿这个计算中的消约,能成功给出 阶的结果:
当关于 x 求幂级数展开式时,Wolfram 语言假定不显含 x 的所有对象与 x 无关. 这样,Series 使用 D 求偏导数来建立泰勒级数.
an 被假定与 x 无关:
a[x] 现在是 x 的显函数:
Series 可以生成多个变量的幂级数. Series 对变量的运算顺序与 IntegrateSum 等是一样的,首先展开的是最后一个指定的变量.
Series 关于每个变量依次执行级数展开. 这种情况下,结果是一个 x 的级数,其系数是 y 的级数:
幂级数的表示
幂级数在 Wolfram 系统中被表示为 SeriesData 对象.
幂级数显示为各项的和,并以 O[x] 的某次幂结尾:
然而,在 Wolfram 系统内部,级数被存贮为 SeriesData 对象:
通过使用 SeriesData 对象,而不是普通表达式来表示幂级数,Wolfram 系统能保持对阶和展开点的跟踪,并对幂级数恰当地进行运算. 一般用户不必知道 SeriesData 对象的内部结构.
用户可以根据是否有 O[x] 项来识别以标准形式输出的幂级数. 该项模拟标准数学符号 ,表示忽略的 阶项. 考虑到各种一致性因素,Wolfram 系统使用 O[x]^n 表示忽略的 阶项,它对应用于数学符号 ,而不是较熟悉的 ,虽然二者是等价的.
任何时候如 O[x] 的对象在和式中出现时,Wolfram 系统会实际上将整个和转换成幂级数.
O[x] 的出现使 Wolfram 系统将整个和转换成幂级数:
级数对象可以包含分数幂:
这里是级数在 Wolfram 系统内部的表示:
级数可以包含对数项:
对数因子在 SeriesData 的系数列单中显式地出现:
幂级数的运算
Wolfram 语言能对幂级数进行许多运算. 在所有情况下,Wolfram 语言给出的结果的项数由输入的精度来调节.
这是一个精确到 的四阶的幂级数:
对上面的幂级数求平方得到另一个幂级数,也能精确到四阶:
对上面的幂级数取对数结果为 2x,但仍是精确到四阶
Wolfram 语言对幂级数阶的跟踪方法与对近似实数的精度的跟踪方法是非常类似的. 与数值运算一样,有些对幂级数的运算会提高或降低结果的精度(或阶).
这是一个精确到 的幂级数:
这里得到的幂级数仅精确到
Wolfram 语言还允许对幂级数进行微积分运算.
这是 的幂级数.
这是它关于 x 的导数.
再做对 x 的积分回到原来的幂级数:
当运算中既有正常表达式,又有幂级数时,Wolfram 语言将尽可能地把正常表达式吸收到幂级数中.
这里 1 被自动吸收到幂级数中.
x^2 也被吸收到幂级数中.
如果上式与 Sin[x] 相加,Wolfram 语言将 Sin[x] 展成适当的幂级数,然后将它与已有的幂级数合并:
Wolfram 语言也吸收级数相乘的表达式.符号 a 被假定与 x 无关:
Wolfram 语言能将多种函数作用于幂级数. 但是,如果将一个任意的函数作用于幂级数,那么 Wolfram 语言只可能给出符号结果.
Wolfram 语言不知道如何将函数 f 作用到幂级数上,故只能给出符号结果:
幂级数的复合与反演
在处理幂级数时,把级数看作是能复合与反演的函数,有时会比较方便.
ComposeSeries[series1,series2,]
复合幂级数
InverseSeries[series,x]
反演幂级数
幂级数的复合与反演.
这是 的五阶 的幂级数:
这里用 的幂级数替换 的幂级数中的 .
上一结果就是 的幂级数.
如果有一个对于函数 的幂级数,常常可能得到方程 关于 的解的幂级数近似. 该幂级数给出反函数 使得 . 求反函数的幂级数运算称为幂级数的反演.
这是 的级数.
反演该级数给出 的级数.
这与 的直接级数一致:
将级数和它的反演复合得恒等函数:
将幂级数转换为普通表达式
Normal[expr]
将幂级数转换为普通表达式
将幂级数转换为普通表达式.
如上所述在 Wolfram 语言中,幂级数用特殊的内部形式来表示,它保持对展开式的阶等属性的跟踪.
在有些情况下,用户可能想把幂级数转换成普通表达式. 从数学观点来看,这对应于截断幂级数,假定所有高阶项为零.
这里生成一个具有四项的幂级数:
对该幂级数平方得另一幂级数,其具有恰当的项数:
Normal 截断幂级数,给出普通表达式:
现在对其可以进行标准代数运算:
SeriesCoefficient[series,n]
给出幂级数 n 次项的系数
提取幂级数项的系数.
这里给出原来的幂级数中 的系数:
这里给出函数 关于零点的泰勒展开中 项的系数.
求解幂级数方程
LogicalExpand[series1==series2]
给出由幂级数中相应的系数相等得到的方程
Solve[series1==series2,{a1,a2,}]
求解幂级数的系数
求解幂级数方程.
这是一个幂级数:
这里给出一个幂级数方程:
LogicalExpandx 的各次幂产生一系列方程:
这里关于 a[i] 解方程. 也可以直接让 Solve 解幂级数方程:
有些幂级数方程也可以使用 "幂级数的复合与反演" 中介绍的 InverseSeries 函数来求解.
级数的和
Sum[expr,{n,nmin,nmax}]
exprnnminnmax 的和
求和.
Wolfram 系统将下式识别为 的幂级数展开式:
这个级数的和用贝塞尔函数表示:
这是另一个能用常见的特殊函数表示的和:
广义超几何函数在求和中并非不常见:
求和与积分有许多相似之处. 正如具有不定积分一样,可以通过在上限中使用符号变量来建立不定和.
这就是一个不定和:
这个和用不完全伽马函数给出:
这个和包含多伽马函数:
的相继的值取结果之差得到原来的求和项.
Wolfram 系统基本上能求书中与表格有关的所有和. 同不定积分一样,包含简单函数的表达式的不定和会给出包含复杂函数的结果. 然而与定积分一样,确定和常常给出包含简单的函数的结果.
这个不定和给出相当复杂的结果:
而确定和的结果简单得多:
这里是一个复杂一些的确定和:
求解递归方程
如果以 a[n] 来表示一个序列中的第 n 项,可以使用递归方程来指定它是如何与该系列中的其它项相联系的.
RSolve 求解递归方程来获得 a[n] 的明确公式.
这里求解一个简单的递归方程:
这里求解并产生一个前十个 a[n] 的明确表格:
RSolve[eqn,a[n],n]
求解递归方程
求解递归方程.
这里求解一个几何级数的递归方程:
这里给出同样的结果:
这里给出一个递归方程的代数解:
这列求解 Fibonacci 递归方程:
RSolve 可以被认为是类似 DSolve 的离散形式. 许多在求解微分方程时产生的函数也在求解递归方程的符号解时出现.
这里产生一个伽马函数,其概括出阶乘:
这个二阶递归方程的解以贝塞尔函数表示:
RSolve 不要求给如 a[1] 的项指定明确的数值. 像 DSolve 一样,它自动地引入一个非确定常数 C[i] 来给出一个广义解.
这里给出带有一个非确定常数的广义解:
RSolve 能求解 a[n] 的非线性方程. 然而对于非线性方程,有时必须给出几个特解. 就像微分方程一样,对递归方程求符号解是困难的,标准数学函数仅仅覆盖有限的情况.
这里是一个非线性递归方程的广义解:
这给出两个特解:
RSolve 不仅能求解普通的差分方程,其中 的自变量的差为整数,也能求解 差分方程,其中 的自变量由乘法因子相联系.
这里求解类同阶乘方程的 差分方程:
这里是一个二次 差分方程:
RSolve[{eqn1,eqn2,},{a1[n],a2[n],},n]
求解耦合递归方程组
求解递归方程组.
这求解两个耦合的递归方程组:
RSolve[eqns,a[n1,n2,],{n1,n2,}]
求解偏递归方程
求解偏递归方程.
就像可以建立包含多变量函数的偏微分方程,也能建立包含多维序列的偏递归方程. 就像在微分方程的情形,偏递归方程的广义解可以包含非确定的函数.
这给出一个简单的偏递归方程的广义解:
求极限
在许多运算中,需要计算变量取特定值时的表达式. 大多数情况下,只需使用 /. 算符对变量应用变换规则就可以做到这一点.
通过用0代替 ,就可以得到 在0处的值:
但是,在某些情况下,用户必须更谨慎.
例如,求表达式 处的值. 如果只是用 代替表达式中的 ,将得到不定结果 . 要求出 的正确值,必须取极限.
Limit[expr,x->x0]
x 趋于 x0expr 的极限
求极限.
这里给出 时的正确极值:
此例不存在有限的极值:
尽管得不到 处的普通幂级数,但 Limit 能求出该极限:
此例还是这样:
符号函数 Sign[x] 处的值是 0
但其极限是 1. 此极限缺省地取右极限:
并非所有函数在特定的点都有确定的极限. 例如函数 附近无限振荡,所以在此处无确定极限. 然而只要 取实数,该函数在 附近的值总是在 之间. Limit 使用 Interval 对象表示有界变化的值. 一般地,Interval[{xmin,xmax}] 表示在区间 中的某个不确定的值.
Limit 返回 Interval 对象,表示 在本性奇点 附近取值的范围:
Wolfram 语言对 Interval 对象可以进行算术运算:
Wolfram 语言以一个 Interval 对象来符号式地表示这个极限:
有些函数在特定点处,从不同方向趋于该点时有不同极限.使用 Limit 中的 Direction 选项,可以指定趋近的方向.
Limit[expr,x->x0,Direction->1]
x 趋于 x0 的左极限
Limit[expr,x->x0,Direction->-1]
x 趋于 x0 的右极限
左、右极限.
函数 左,右极限不同:
其左极限是
其右极限是
Limit 对抽象函数如 f[x] 不做任何假定. 因此,多数情况下 Limit 对符号函数不做计算.
Limit 不知道 f 是什么,故不计算此极限:
留数
Limit[expr,x->x0]exprx 趋于 x0 时的极限. 当该值是无穷大时,求出 exprx 等于 x0 时的留数常常是有用的. 留数由 exprx0 处的幂级数展开式中的 的系数给定.
Residue[expr,{x,x0}]
exprx 等于 x0 时的留数
计算留数.
这里留数等于 1:
这里留数是 0:
可以在无穷点计算留数:
Padé 近似
Padé 近似是一个有理函数,它可以被认为是对泰勒多项式的一个推广. 有理函数是多项式的比. 因为这些函数只使用基本的算术运算,它们很容易进行数值计算. 分母中的多项式使得能对具有有理奇点的函数进行近似.
PadeApproximant[f,{x,x0,{n,m}}]
给出 x0 为中心的 (n,m) 次的 Padé 近似
PadeApproximant[f,{x,x0,n}]
给出 x0 为中心的 n 次的对角 Padé 近似
Padé 近似.
更精确地说,解析函数 在一个常规点或极点 次 Padé 近似是有理函数 ,其中 是一个 次多项式, 是一个 次多项式, 点的正式幂级数以 项开始. 如果 等于 ,那么这个近似被称为 次对角 Padé 近似.
这里是 处的 次 Padé 近似:
这给出另一个次相同的 Padé 近似:
这个级数的最初项消失. 这是 Padé 近似的特征属性:
这里画出近似与真实函数之间的区别. 注意,这个近似在展开区的中心附近是很好的,但是在离开中心区时误差迅速增加:
在 Wolfram 语言中 PadeApproximant 被推广使得能够对分支点展开.
这里给出一个广义的有理函数在 处的 次对角 Padé 近似:
这里给出一个有理函数的对数在分支点 处的 次对角 Padé 近似:
这个函数的级数展开与对角 Padé 近似直到第 次都是相符合的: