迭代法解方程(计算器ANS键):迭代形式为何影响收敛性?
这问题问到点子上了!其实背后的核心就是不动点迭代的收敛判据——不是随便把方程改写成x = f(x)的形式都能让迭代收敛,关键要看迭代函数f(x)在真实解(不动点)处的导数绝对值大小。
先把原方程理清楚:原方程5 - x = 2(8x - x²)展开整理后是2x² - 17x + 5 = 0,你提到的解x* ≈ 0.305066是其中一个实根(另一个根约为8.1949)。我们分别拆解两种改写方式:
第一种改写:x = 5 - 2(8x - x²)
对应的迭代函数是f₁(x) = 5 - 16x + 2x²。我们计算它在不动点x*处的导数:f₁’(x) = -16 + 4x
代入x* ≈ 0.305066,得到:f₁’(x*) ≈ -16 + 4*0.305066 ≈ -14.78
它的绝对值|f₁’(x*)| ≈ 14.78 > 1,这就触发了发散条件:根据不动点迭代的局部收敛定理,当迭代函数在不动点处的导数绝对值大于1时,迭代过程的误差会被不断放大,最终导致解发散到无穷大。
第二种改写:x = (5 + 2x²)/17
对应的迭代函数是f₂(x) = (2x² + 5)/17。同样计算导数:f₂’(x) = 4x/17
代入x* ≈ 0.305066,得到:f₂’(x*) ≈ (4*0.305066)/17 ≈ 0.0718
它的绝对值|f₂’(x*)| ≈ 0.0718 < 1,满足收敛条件:此时迭代过程的误差会被不断缩小,只需要几次迭代就能快速逼近真实解。
直观理解
你可以把迭代过程想象成在坐标系里找y=x和y=f(x)的交点(也就是不动点):每次迭代是从(xₙ, xₙ)画水平线到y=f(x)得到(xₙ, f(xₙ)),再画垂直线到y=x得到(xₙ₊₁, xₙ₊₁)。如果f(x)在交点处的斜率绝对值大于1,每一步都会离交点越来越远;如果小于1,就会一步步“靠近”交点。
总结一下:改写方程为x=f(x)时,一定要确保迭代函数f(x)在目标不动点附近的导数绝对值小于1,这是迭代收敛的关键!
内容的提问来源于stack exchange,提问作者samyon196

