Steffensen 方法的推导及其二阶收敛的证明

Steffensen 方法的推导

由于 Steffensen 方法是由弦截法改造来的,所以,这里先给出弦截法的迭代公式

xk+1=xkxkxk1f(xk)f(xk1)f(xk),k=1,2,... .

弦截法的定义及推导比较简单,这里不再赘述,然后我们来看如何将弦截法改造成 Steffensen 方法:若弦截法产生的迭代序列 {xk} 充分接近于精确解 x,则 xkxk1f(xk) 均充分接近于零。因此,我们可以近似地置 xkxk1f(xk),然后将弦截法迭代公式中的 xk1 给代换掉,就得到了 Steffensen 方法

xk+1=xkf2(xk)f(xk)f(xkf(xk)),k=1,2,... .

证明 Steffensen 方法的二阶收敛性

给定条件:设 f(x)=0 有根 x,其中 f(x)x 的某邻域 S(x,δ) 内二阶连续可微,且 f(x)0.

证明:

由 Steffensen 迭代公式,有

φ(x)=xf(x)f(x)f(xf(x))

f(xf(x)) 进行泰勒展开,得

f(xf(x))=f(x)f(x)f(x)+12f(ξ)f2(x)

其中,ξxxf(x) 之间的一个值。

于是,有

g(x)=f(x)f(xf(x))f(x)=f(x)f(x)12ff2(x)f(x)=f(x)12f(ξ)f(x).

进而,

φ(x)=xf2(x)f(x)f(xf(x))=xf(x)f(x)12f(ξ)f(x).

因此,

φ(x)φ(x)xx=xf(x)f(x)12f(ξ)f(x)xxx=xxf(x)f(x)12f(ξ)f(x)xx=1f(x)f(x)xx1f(x)12f(ξ)f(x)

所以,

φ(x)=limxxφ(x)φ(x)xx=1f(x)1f(x)=0.

因为 f(x)0,所以,Steffensen 方法至少是二阶收敛的。

注意,Steffensen 方法是严格二阶收敛的,但是,证明这个所需的知识不在学习范围内,暂时不作证明。

按:本文给出的 Steffensen 方法是华科的计算方法课本上的。网上还有其他的形式,在符号上略有区别,但是证明方法相同,而且,英文的证明在网上比较多。


版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!