幂级数解法:当系数不再简单
常系数线性方程让人有一种很稳定的期待:写出特征方程,解出根,指数函数和三角函数就会出现。前两章的 Laplace 变换也给了另一种期待:把微分变成代数,把初值带进计算。
但很多方程的系数并不愿意这么配合。比如
y′′−xy=0
这里的 x 乘在未知函数上,特征方程没有地方可写;又如
(1−x2)y′′−2xy′+λy=0
系数随着位置变化,解的形状不再由几个常数根直接决定。幂级数方法要回答的是:即使没有简单闭式公式,我们能不能仍然把解写成一个函数,而且能算到想要的精度?

图:当常系数工具不再直接适用时,幂级数把问题转成系数递推。
本章的目标不是把所有特殊函数理论讲完,而是建立一个入口:在合适的点附近,解可以用局部幂级数表示;微分方程会把“求函数”变成“求一列系数”。
幂级数先说什么
在微积分中,幂级数是这样一种函数表示:
n=0∑∞an(x−x0
这里 x0 是展开中心,a0,a1,a 是系数。若这个级数在 附近收敛,它就不只是形式符号,而是在那一段区间内定义了一个函数。
如果一个解可以写成
y(x)=n=0∑∞an(x−x
那么它的导数也可以逐项写出:
y′(x)=n=1∑∞na
y′′(x)=n=2∑∞n(n−
实际计算时,我们常把指标重新写成从 0 开始的形式:
y′(x)=n=0∑∞(n+1)
y′′(x)=n=0∑∞(n+
这一步看起来只是换下标,却是后面比较同次幂的基础。幂级数方法的核心动作可以概括成一句话:把 y,y′,y′′ 的级数代入方程,再让每一个 (x−x0 的系数都等于零。
普通点附近可以放心展开
先看二阶线性齐次方程
P(x)y′′+Q(x)y′+R(x)y=0
讨论 x0 附近的级数解前,第一步不是急着写级数,而是看最高阶导数前面的系数。若 P(x0)=0,就可以在 附近除以 ,写成标准形式
y′′+p(x)y′+q(x)y=0
其中
p(x)=P(x)Q(x),q(x)=
如果 p(x) 与 q(x) 在 x0 附近都能展开成幂级数,我们称 x0 是普通点。普通点的含义很朴素:方程在这里没有“系数爆炸”或“最高阶导数失效”的问题,局部解可以按幂级数组织。

图:判断普通点时要先把方程化为标准形式,再看标准形式中的系数是否在展开中心附近解析。
普通点不是只看原方程里的 Q(x) 和 R(x) 是否平滑。真正要看的是除以 P(x) 之后的 p(x) 与 q(x。如果 ,最高阶导数在这个点失去正常角色,普通点方法通常不能直接使用。
普通点附近有一个很有用的结论:给定任意初值 y(x0)=y0 和 y′(,方程会确定唯一的局部解,而且这个解可以写成幂级数。对本章来说,这个结论的实际意义是:我们可以把 与 当成两个自由种子,再让方程递推出后面的所有系数。
递推关系从哪里来
幂级数解法不是猜一个漂亮函数,而是建立一条系数生产线。下面的流程值得反复看:

图:写级数、求导代入、对齐同次幂、比较系数,是多数普通点级数题的主线。
先选展开中心 x0,写出假设的解 y=∑。若题目给的是 ,公式会简洁很多;若中心不是 ,不要偷偷把 写成 。
下面这个小交互让你调节 a0,a1 和截断阶数,观察同一个递推怎样生成不同的局部解。
例题:艾里型方程的局部解
求方程
y′′−xy=0
在 x=0 附近的幂级数解。
这个方程是普通点问题,因为标准形式里没有会在 0 附近爆炸的系数。设
y=n=0∑∞anxn
则
y′′=n=0∑∞(n+2)(n+
同时
xy=n=0∑∞anx
代入 y′′−xy=0,得到
n=0∑∞(n+2)(n+1)a
比较 x0 的系数:
2a2=0
所以
a2=0
比较 xn 的系数,其中 n≥1:
(n+2)(n+1)an+2−an−1
因此
an+2=(n+2)(n+1)a
现在 a0 和 a1 还没有被方程限制。它们就是二阶方程的两个自由参数。递推给出
于是局部解可以写成
y=a0(1+6x
这不是一个“次等答案”。它和用特殊函数记号写出的答案一样是在描述解,只是表达方式不同。实际计算中,如果只关心 x=0 附近的值,截断到有限项往往已经够用。
这道题里的递推每次把下标推进 3,所以 a0 生成一条系数链,a1 生成另一条系数链,而 a 使第三条链消失。看到这种链条结构,有助于判断自己有没有漏掉自由参数。
初值怎样变成系数
幂级数不是脱离初值的代数游戏。若展开中心是 x0,则
y(x0)=a0
并且
y′(x0)=a1
所以初值问题
y(x0)=y0,y′(x
会直接给出
a0=y0,a1=v
后面的 a2,a3,… 再由微分方程递推出来。

图:二阶方程在普通点附近需要两个初值,它们对应幂级数的两个初始系数。
例如在刚才的方程 y′′−xy=0 中,若
y(0)=2,y′(0)=−1
则 a0=2,a1=−1,所以
y=2(1+6x3+
若只取到 x4 项,就得到近似
y≈2−x+3x3−
这个多项式不是随便拟合出来的,而是由微分方程强制出来的局部近似。
下面的交互专门练习“对齐同次幂”。如果你在纸上做题时经常卡在换指标,这个练习比多背几行公式更有效。
奇点和收敛半径
级数解是局部语言。它通常先在展开中心附近说得很清楚,但不保证一句话说遍整条实轴。
看方程
(1−x2)y′′−2xy′+λy
若在 x=0 附近展开,标准形式为
y′′−1−x22xy
这里的系数在 x=1 和 x=−1 处有问题。即使你只在 0 附近做级数,这两个点也会限制级数可能延伸的范围。直观地说,展开中心向外走,最先撞到的奇点会决定收敛半径的上限。

图:从展开中心出发,最近奇点常常先限制幂级数解的有效范围。
在复平面中看收敛半径会更自然。即使我们的自变量主要取实数,系数函数在复平面里的最近奇点仍可能决定实轴上幂级数能展开多远。本课程只用这个结论建立直觉,不展开复分析证明。
这个交互让你换不同方程和展开中心,观察最近奇点怎样改变 R。
特殊函数只是新名字吗
很多变系数方程的级数解反复出现在物理和工程问题中。人们不愿意每次都重新写长长的系数递推,于是把这些解整理成有名字的函数。
贝塞尔方程常见于圆柱对称问题,例如圆膜振动、圆柱坐标中的热传导或波动问题。它的一种标准形式是
x2y′′+xy′+(x2
勒让德方程常见于球面对称问题,例如球坐标中的势场分离变量。常见形式是
(1−x2)y′′−2xy′+ℓ

图:贝塞尔函数和勒让德函数可以看作被反复使用、被命名整理的级数解。
这里有两个细节要分开看。第一,贝塞尔方程在 x=0 处不是普通点,因为最高阶项前面有 x2。处理它通常要用 Frobenius 方法,也就是把解设成 xr 乘上幂级数。第二,勒让德方程在 x=0 是普通点,但在 是奇点;当参数取 且 是非负整数时,某些级数会终止,得到勒让德多项式。
特殊函数不是“没有公式所以换个名字”。更准确地说,它们是某些重要微分方程的解,因为出现得太频繁,值得拥有统一的记号、性质表和数值算法。
常见误区
误区一:没有先化为标准形式
判断普通点时,必须看标准形式中的系数。比如
xy′′+y=0
在 x=0 处不能简单说“x 是平滑函数,所以没问题”。除以 x 后会出现 1/x,这正是奇点信号。
误区二:把不同幂次混在一起比较
如果一边有 xn,另一边有 xn+1,不能直接把它们的系数相加。必须统一成同一种幂次。刚才例题中
xy=n=1∑∞an−1xn
就是为了和 y′′ 的 xn 对齐。
误区三:只算一个系数就以为得到了解
递推关系通常给的是一串系数。你至少要写出足够多的项,才能看清两个自由参数如何进入解。对于二阶齐次方程,若最后只剩一个自由参数,通常意味着你漏掉了一条系数链。
误区四:忘记说明近似阶数
把级数截断成多项式时,要说明取到哪一阶。例如“取到 x4 项”比“近似为一个多项式”更清楚。截断项越多,局部近似通常越好,但离展开中心太远时仍要警惕收敛范围。
小结
幂级数方法把“求解函数”转成“求解系数”。普通点保证我们可以在展开中心附近这样做;代入、对齐同次幂、比较系数给出递推关系;初值决定前几个自由系数;奇点和收敛半径提醒我们不要把局部表达误当成全局表达。
这章只打开了一扇门。以后遇到贝塞尔函数、勒让德多项式、艾里函数时,不必把它们看成突然出现的新物种。它们背后常常就是本章这条路线:从变系数微分方程出发,用级数把解一点一点造出来。
练习
练习一
求方程
y′′+xy=0
在 x=0 附近的递推关系,并写出包含 a0,a1 的前六项。
设
y=n=0∑∞anxn则
练习二
对方程
(1+x)y′′+y=0
判断 x0=0 和 x0=−1 分别是不是普通点。
标准形式是
y′′+1+x1y=0在 x 附近, 可以展开成幂级数,所以 是普通点。在 处,分母为零,标准形式的系数出现奇点,所以 不是普通点。
练习三
已知 y′′−xy=0,并给定
y(0)=0,y′(0)=3
写出到 x4 项的局部近似。
由例题,
y=a0(1+6x