牛顿法重根附近收敛速率误差界证明:等式推导细节问询
没问题,我来一步步拆解这个推导细节,帮你理清楚为什么这个分式能简化到后面的误差项。首先我们先明确前提和符号定义,再逐步展开计算:
前提与符号对齐
- 假设 ( r ) 是方程 ( f(x)=0 ) 的m重根,因此我们可以将 ( f(x) ) 分解为 ( f(x)=(x-r)^m g(x) ),其中 ( g(r) \neq 0 ),且 ( g(x) ) 在 ( r ) 的邻域内足够光滑(保证泰勒展开成立)。
- 误差项定义为 ( e_n = x_n - r ),即第n次迭代值与根的偏差。
- 牛顿迭代公式为 ( x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} ),因此误差递推式为:
$$ e_{n+1} = e_n - \frac{f(x_n)}{f'(x_n)} $$
第一步:推导你给出的初始分式
先计算 ( \frac{f(x_n)}{f'(x_n)} ):
- 代入 ( f(x_n) = e_n^m g(r+e_n) ),( f'(x_n) = m e_n^{m-1} g(r+e_n) + e_n^m g'(r+e_n) = e_n^{m-1} \left[ m g(r+e_n) + e_n g'(r+e_n) \right] )
- 因此 ( \frac{f(x_n)}{f'(x_n)} = \frac{e_n g(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} )
- 代入误差递推式:
$$ e_{n+1} = e_n - \frac{e_n g(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} = e_n \cdot \frac{(m-1)g(r+e_n) + e_n g'(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} $$
接下来对 ( g(r+e_n) ) 和 ( g'(r+e_n) ) 做一阶泰勒展开(因为 ( e_n \to 0 ),高阶项可以合并为大O符号):
- ( g(r+e_n) = g(r) + e_n g'(r) + O(e_n^2) )
- ( g'(r+e_n) = g'(r) + O(e_n) )(一阶展开到常数项即可,因为后面乘以 ( e_n ) 后是 ( O(e_n^2) ))
将泰勒展开代入分子分母:
- 分子:( (m-1)\left[ g(r) + e_n g'(r) + O(e_n^2) \right] + e_n \left[ g'(r) + O(e_n) \right] = (m-1)g(r) + e_n g'(r) + O(e_n) )
(注:这里把 ( O(e_n^2) ) 和 ( O(e_n^2) ) 合并为 ( O(e_n) ),因为低阶大O包含高阶项) - 分母:( m\left[ g(r) + e_n g'(r) + O(e_n^2) \right] + e_n \left[ g'(r) + O(e_n) \right] = m g(r) + e_n g'(r) + O(e_n) )
这就得到了你给出的初始等式:
$$ e_{n+1}=rac{(m-1)g(r)+e_ng'(r)+O(e_n)}{mg(r)+e_ng'(r)+O(e_n)}e_n $$
第二步:分式化简到最终误差项
现在我们要处理这个分式 ( \frac{(m-1)g(r)+e_n g'(r)+O(e_n)}{m g(r)+e_n g'(r)+O(e_n)} ),核心技巧是提取常数因子+利用几何级数展开:
步骤2.1:提取分母的常数因子
令 ( C = m g(r) )(因为 ( g(r) \neq 0 ),所以 ( C \neq 0 )),将分子分母同时除以 ( C ):
$$
\frac{(m-1)g(r)/C + e_n g'(r)/C + O(e_n)/C}{1 + e_n g'(r)/C + O(e_n)/C} = \frac{\frac{m-1}{m} + e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n)}{1 + e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n)}
$$
步骤2.2:利用几何级数展开分母
当 ( \epsilon \to 0 ) 时,我们有泰勒展开式:
$$ \frac{1}{1+\epsilon} = 1 - \epsilon + O(\epsilon^2) $$
这里令 ( \epsilon = e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n) ),显然当 ( e_n \to 0 ) 时 ( \epsilon \to 0 ),满足展开条件。将分式拆分为分子乘以分母的倒数:
$$
\left( \frac{m-1}{m} + k e_n + O(e_n) \right) \cdot \left( 1 - k e_n + O(e_n^2) \right)
$$
其中 ( k = \frac{g'(r)}{m g(r)} ),简化符号。
步骤2.3:展开乘积并合并同类项
现在展开两个括号的乘积:
$$
\begin{align*}
& \frac{m-1}{m} \cdot 1 + \frac{m-1}{m} \cdot (-k e_n) + (k e_n) \cdot 1 + \frac{m-1}{m} \cdot O(e_n^2) + (k e_n) \cdot (-k e_n) + O(e_n) \cdot O(e_n^2) \
=& \frac{m-1}{m} + k e_n \left( 1 - \frac{m-1}{m} \right) + O(e_n^2) \
=& \frac{m-1}{m} + k e_n \cdot \frac{1}{m} + O(e_n^2)
\end{align*}
$$
这里所有交叉项(如 ( e_n^2 ) 项、高阶大O项)都合并为 ( O(e_n^2) ),因为它们的阶数不低于 ( e_n^2 )。
步骤2.4:代入误差递推式
将化简后的分式乘以 ( e_n ),得到:
$$
e_{n+1} = \left( \frac{m-1}{m} + \frac{k}{m} e_n + O(e_n^2) \right) e_n = \frac{m-1}{m} e_n + \frac{k}{m} e_n^2 + O(e_n^3)
$$
最后,因为 ( \frac{k}{m} e_n^2 ) 是 ( O(e_n^2) ),( O(e_n^3) ) 也包含在 ( O(e_n^2) ) 中,所以最终简化为:
$$ e_{n+1} = \frac{m-1}{m} e_n + O(e_n^2) $$
针对你尝试的补充说明
你提到用泰勒展开 ( g(r) ) 和 ( g'(r) ) 没得到结果,可能是因为你误展开了 ( g(r) )(它是常数,展开后就是自身),而应该对 ( g(x_n)=g(r+e_n) ) 做泰勒展开,也就是在 ( r ) 点展开到 ( e_n ) 的一阶项,这样才能代入分子分母得到含 ( e_n ) 的项。另外,处理分式时记得用几何级数展开倒数项,这是把分式转化为多项式形式的关键步骤。
内容的提问来源于stack exchange,提问作者james black

