开始之初,我偶然在图书馆看到了一本名为《超越摄动:同伦分析方法导论》,里边介绍了一种求微分方程近似解的新方法,关键是里边的内容看起来并不是十分难懂,因此我饶有兴致地借来研究了。果然,这是一种非常有趣的方法,在某种意义上来说,还是非常简洁的方法。这解决了我一直以来想要研究的问题:用傅里叶级数来近似描述单摆运动的近似解。当然,它带给我的冲击不仅仅是这些。为了得出周期解,我又同时研究了各种摄动方法的技巧,如消除长期项的PL(Poincaré–Lindstedt)方法。这同时增加了我对各种近似解析方法的了解。从开学到现在快三周的时间,我一直都在研究这些问题。

我的数学直觉告诉我同伦分析方法确实具有很大潜力。不过,我发现的是,虽然作者廖世俊一再强调“该方法不仅克服了摄动方法依赖小参数的局限性,而且在逻辑上包含了其他非摄动方法,如Lyapunov人工小参数法、Adomian分解法和δ展开法”,但是我觉得同伦分析方法本质上还是属于摄动法,它只不过是一种人工小参数的变式,其处理技巧则几乎是跟摄动法完全一样的。作者最成功的工作,是将这个技巧发展为一个相对比较系统的处理方法,并证明了相关性质(如收敛性)。因此对作者过度“神化”这种方法的做法并不十分赞同。

不论如何,我相信作者是首先独立提出这个成果的,因此我也不想诟病什么,反之,我很高兴能够看到并使用这个方法,下面将给出我对单摆运动的简单研究成果(仅仅精确到$\theta_0^5$):

任意单摆运动方程都可以适当选取量纲变为:
$$\ddot{\theta}+\sin\theta=0$$
初始角为$\theta_0$

近似的级数解为:
$$\theta= \left( \theta_0+\frac{\theta_0^3}{192}+\frac{17 \theta_0^5}{61440}\right) Cos(\omega t)-\left(\frac{1}{192}\theta_0^3+\frac{1}{3072}\theta_0^5 \right) Cos(3\omega t)+\frac{\theta_0^5 Cos (5 \omega t)}{20480}$$

其中
$$\omega=1-\frac{1}{16}\theta_0^2+\frac{1}{3072}\theta_0^4-...$$

其周期为:
$$T=2\pi(1+\frac{1}{16}\theta_0^2+\frac{11}{3072}\theta_0^4+...)$$

该级数解满足当$t=0$时$\theta=\theta_0$以及$t=\frac{\pi}{2\omega}=\frac{T}{4}$时$\theta=0$。不过,该解虽然摆脱了对t很小的依赖,但是并没有摆脱对$\theta_0$很小这一依赖,幸运的是,对于现实情况来说,$\theta_0$一般都很比较小的(就算90度的直角也只是$\frac{\pi}{2} =1.57...$,略大于1)。因此收敛性通常是可以保证的。当然,更好的办法是将$\theta_0$的幂级数改为展开成$sin\frac{\theta_0}{2}$的幂级数,就像我们以前处理单摆周期一样。这还在探索中。

精确的级数解应该是这样的形式:
$$\theta= a_1 (\theta_0) Cos(\omega t)+a_3 (\theta_0) Cos(3\omega t)+a_5 (\theta_0) Cos(5\omega t) +...$$

其中$a_1 (\theta_0),a_3 (\theta_0),a_5 (\theta_0),...$都是$\theta_0$的无穷级数,理想的情况下会是$sin\frac{\theta_0}{2}$的无穷级数...

先把结果放在这里,希望能够与大家共乐!至于详细的推导过程及同伦分析法的细节,我将会在以后的文章介绍到。

转载到请包括本文地址:https://www.kexue.fm/archives/1935

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Mar. 13, 2013). 《单摆运动级数解:初试同伦分析 》[Blog post]. Retrieved from https://www.kexue.fm/archives/1935

@online{kexuefm-1935,
        title={单摆运动级数解:初试同伦分析},
        author={苏剑林},
        year={2013},
        month={Mar},
        url={\url{https://www.kexue.fm/archives/1935}},
}