轻微的扰动——摄动法简介(3)
By 苏剑林 | 2013-03-07 | 39029位读者 |微分方程领域大放光彩
虽然微分方程在各个计算领域都能一展才华,不过它最辉煌的光芒无疑绽放于微分方程领域,包括常微分方程和偏微分方程。海王星——“笔尖上发现的行星”——就是摄动法的著名成果,类似的还有冥王星的发现。天体力学家用一颗假设的行星的引力摄动来解释已知行星的异常运动,并由此反推未知行星的轨道。我们已不止一次提到过,一般的三体问题是混沌的,没有精确的解析解。这就要求我们考虑一些近似的方法,这样的方法发展起来就成为了摄动理论。
跟解代数方程一样,摄动法解带有小参数或者大参数的微分方程的基本思想,就是将微分方程的解表达为小参数或大参数的幂级数。当然,这是最直接的,也相当好理解,不过所求得的级数解有可能存在一些性态不好的情况,比如有时原解应该是一个周期运动,但是级数解却出现了诸如$t \sin t$的“长期项”,这是相当不利的,因此也发展出各种技巧来消除这些项。可见,摄动理论是一门应用广泛、集众家所大成的实用理论。下面我们将通过一些实际的例子来阐述这个技巧。
E.g.1 直接的级数展开
在正式讨论摄动法解微分方程之前,我们先来看怎么直接地将一个微分方程的解展开为自变量的幂级数,这将有助于我们理解级数是如何起作用的。
$$\frac{dx}{dt}=\sin x+t,x(0)=0$$
这是个相当简单的例子,但对于本小节的用意来说已经足够了。我们知道,可以把一个函数用泰勒级数表示为:
$$x(t)=x(0)+x'(0)t+\frac{1}{2}x''(0)t^2+\frac{1}{6}x'''(0)t^3+...$$
因此我们要求出各阶导数$x'(0),x''(0),x'''(0),...$的值。根据$\frac{dx}{dt}=sin x+t$,将$t=0,x(0)=0$代入里边,就可以求出$x'(0)=0+0=0$。接着对$\frac{dx}{dt}=sin x+t$两边求导,得到$x''(t)= (cos x)x'(t)+1$,代入$t=0,x(0)=0,x'(0)=0$,得到$x''(0)=1$。再求导就变成$x'''(t)=-(sin x)[x'(t)]^2+(cos x) x''(t)$,求得$x'''(0)=1$。接下来可求$x^{(4)}(0)=0$......所以我们有:
$$x(t)=\frac{1}{2}t^2+\frac{1}{6}t^3+o(t^5)$$
这就是微分方程的级数解。在这里每一项都是自变量的幂,由于自变量是随意的,因此级数解的收敛性无法保证。事实上,该级数仅仅对于很小的t就能得到比较精确的解。另一方面,随着求导次数的增加,导函数的表达式将会异常复杂,因此在计算量方面也会让我们崩溃的。这就要求我们考虑其他的思路。
E.g.2 小参数的展开
摄动法不是将解展开为自变量的幂级数,而是展开为小参数的幂级数,这样可以将原方程解的一些优良性质保留下来。这和摄动法解代数方程的思想是一致的。我们将直接用简单的例子说明。
$$x''+x=\varepsilon x^2,x(0)=1,x'(0)=0$$
如果令$\varepsilon=0$,那么就得到了无摄动的方程$x''+x=0$,这是最简单的二阶线性微分方程了,根据初始条件可以得到解为$x_0 (t)=Cos t$。
以此为基础,将原方程的解表示为:
$$x(t)=x_0 (t) +\varepsilon x_1 (t)+\varepsilon^2 x_2 (t)+\varepsilon^3 x_3 (t)+...$$
代入原方程得:
$$\begin{aligned}[x_0 (t) +\varepsilon x_1 (t)+\varepsilon^2 x_2 (t)+\varepsilon^3 x_3 (t)+...]''+[x_0 (t) +\varepsilon x_1 (t)+\varepsilon^2 x_2 (t)+\varepsilon^3 x_3 (t)+...] \\ =\varepsilon [x_0 (t) +\varepsilon x_1 (t)+\varepsilon^2 x_2 (t)+\varepsilon^3 x_3 (t)+...]^2\end{aligned}$$
展开,并对应地有
$$[x_0 ''(t)+x_0 (t)]+\varepsilon[x_1 ''(t)+x_1 (t)-x_0^2 (t)]+\varepsilon^2 [x_2 ''(t)+x_2 (t)-2 x_0 (t) x_1 (t)] +...$$
令括号中的每一项为0,就得到了:
$$\begin{aligned}x_0 ''(t)+x_0 (t)=0 \\ x_1 ''(t)+x_1 (t)-x_0^2 (t)=0 \\ x_2 ''(t)+x_2 (t)-2 x_0 (t) x_1 (t)=0\end{aligned}$$
......
对于第一条式子,就是我们的非摄动式,它的初始条件为$x_0 (0)=1,x_0'(0)=0$,而在以后的$x_i (t)$项中,$x_i (0)=x_i '(0)=0$。每一道方程都是一道线性微分方程,也就是说,摄动法就是将非线性微分方程变成无穷多道线性微分方程。我们依次解得:
$$\begin{aligned}x_0 (t)=Cos t \\ x_1 (t)=\frac{1}{6} (3 - 2 Cos t - Cos 2t) \\ x_2 (t)=\frac{1}{144} (-48 + 29 Cos t + 16 Cos 2t + 3 Cos 3t + 60 t \sin t)\end{aligned}$$
......
这些线性微分方程的解可以用Mathematica之类的软件相当快捷地求出来。
这样我们就可以把原方程的解表示为:
$$\begin{aligned}x(t)=Cos t +\frac{1}{6} \varepsilon (3 - 2 Cos t - Cos 2t) \\ + \frac{1}{144}\varepsilon^2 (-48 + 29 Cos t + 16 Cos 2t + 3 Cos 3t + 60 t \sin t)+...\end{aligned}$$
这对于很小的$\varepsilon$是很有效的,并且在比较短的时间内可以很精确地预测运动结果。也许有的读者会问如果非线性项不像$x^2$那样的单项式可以展开,而是像$sin x$那样的复杂式子,那该怎么办?那也很简单,因为我们假设了解$x(t)$实际是$x(t,\varepsilon)$的函数,那么两边不断对$\varepsilon$求偏导数,求出对于$\varepsilon$每阶导数就行了。这并不是实质上的困难
然而,核心的困难在于出现了$ t Sin t$这一“长期项”,又称“久期项”。出现这项的原因有很多,可能是解本身是非周期的,这样我们就并不期望得到周期解了。但更多的是摄动法这一方法自身存在的缺陷,因为即使对于单摆运动这样的已经确认为周期运动的微分方程都出现了久期项。不少数学家为消除长期项作出了不懈的努力,提出了诸如PL(Poincaré–Lindstedt)方法、多尺度方法、PLK(Poincare-Lighthill-Kuo)方法、平均值方法等等。有时间的话,我会往这个方向写下去。
转载到请包括本文地址:https://kexue.fm/archives/1929
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Mar. 07, 2013). 《轻微的扰动——摄动法简介(3) 》[Blog post]. Retrieved from https://kexue.fm/archives/1929
@online{kexuefm-1929,
title={轻微的扰动——摄动法简介(3) },
author={苏剑林},
year={2013},
month={Mar},
url={\url{https://kexue.fm/archives/1929}},
}
December 23rd, 2019
博主写的很好啊!必须赞一个