返回

文章详情

递归关系的数值(不)稳定性

Hacker News2026年8月27日 16:10

上一篇文章给出了几个特殊函数的三项递归关系的例子。这些关系在计算上可能非常有用,但必须小心使用。几年前,我写过一篇关于稳定和不稳定递归的文章。在那篇文章中,我展示了贝塞尔函数的递归关系的稳定性取决于哪种类型的贝塞尔函数以及递归应用的方向。在正向方向上,从低阶值计算高阶值对第二类贝塞尔函数Y_n有效,但对第一类贝塞尔函数J_n则无效。在反向方向上,J_n的递归是稳定的,而Y_n则不是。我没有在那篇文章中解释为什么会这样。在这篇文章中,我将进行说明。二阶线性差分方程有两个独立解,就像二阶线性微分方程一样。对于这两类方程,所有解都是两个解的线性组合。假设一个解随着n增长,而另一个解衰减。你可能想计算衰减的解,但在这样做的时候,由于舍入误差,你可能会拾取到增长解的一个小分量。该文章通过微分方程来说明这种现象,也通过差分方程来说明。当你查看教科书中贝塞尔函数的图表时,你可能会看到几个小n值下的J_n(x)和Y_n(x)的图表。这些函数的行为似乎大致相同,就像正弦和余弦一样。这确实是正确的,作为x的函数。但对于固定x的n来说,J_n(x)和Y_n(x)则不是。当n增大时,J_n(x)衰减到零,而Y_n(x)则趋于-∞。这就是数值不稳定性的来源。对于其他递归关系,也会出现类似的不稳定问题,在这些递归关系中,两个独立解的比例作为n的函数趋向于零或无穷大。计算不发散的解的技术有很多,所谓的最小解,例如此处提到的米勒算法。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡