Newton迭代法的改进 | Newton下山法 + 简化Newton法 + 弦截法

Newton迭代法的改进

1. Newton下山法

Newton法的收敛性与初值 x 0 x_0 x0的选取由很大关系,如果 x 0 x_0 x0偏离方程的根 x ∗ x^* x太远,则Newton法可能发散或迭代次数增加,因此,有必要对迭代法加以改进。

例1:用Newton法求 x 3 − x − 1 = 0 x^3-x-1=0 x3x1=0 x 0 = 1.5 x_0=1.5 x0=1.5附近的一个根。

:原方程的Newton迭代格式为 x k + 1 = x k − x k 2 − x − 1 2 x k 2 − 1 x_{k+1}=x_k-\frac{x_k^2-x-1}{2x_k^2-1} xk+1=xk2xk21xk2x1,迭代结果为 x 3 = 1.32472 x_3=1.32472 x3=1.32472。如果迭代初值取为 x 0 = 0.6 x_0=0.6 x0=0.6,则迭代一次所得结果 x 1 = 17.9 x_1=17.9 x1=17.9就大大远离了 x ∗ x^* x。因此,迭代过程可能是发散的或迭代次数增加。

为了避免迭代过程出现发散或迭代次数增加,可对迭代过程再附加如下一个条件:
∣ f ( x k + 1 ) ∣ < ∣ f ( x k ) ∣ (1) |f(x_{k+1})|<|f(x_k)| \tag{1} f(xk+1)<f(xk)(1)
即保证函数值单调下降,则上例中的现象可以避免。

将条件(1)与Newton迭代法合并起来,即在保证函数值稳定下降的条件下,用Newton法来加快迭代,这就是Newton下山法。

Newton下山法具体操作:

将用Newton法求得的结果 x k + 1 ‾ \overline{x_{k+1}} xk+1与前一步迭代的近似值 x k x_k xk适当加权平均,作为新的改进值 x k + 1 x_{k+1} xk+1即:
x k + 1 = λ x k + 1 ‾ + ( 1 − λ ) x x_{k+1}=\lambda\overline{x_{k+1}}+(1-\lambda)x xk+1=λxk+1+(1λ)x

x k + 1 = x k − λ f ( x k ) f ′ ( x k ) x_{k+1}=x_k-\lambda \frac{f(x_k)}{f'(x_k)} xk+1=xkλf(xk)f(xk)
其中, λ ( 0 ≤ λ < 1 ) \lambda(0\leq \lambda <1) λ(0λ<1)称为下山因子。然后,适当选择 λ \lambda λ的值,使之满足条件(1)。

下山因子 λ \lambda λ的选择是一个逐步试探的过程,可以从 λ = 1 \lambda=1 λ=1开始,将 λ \lambda λ逐步减半进行试算,一旦条件(1)满足,则称下山成功,否则下山失败,需另选初值 x 0 x_0 x0再试。

现在用Newton下山来考察例1:仍取 x 0 = 0.6 x_0=0.6 x0=0.6,将用Newton法求得的 x ‾ 1 = 17.9 \overline x_1=17.9 x1=17.9与初值 x 0 = 0.6 x_0=0.6 x0=0.6加权平均,并取 λ = 1 32 \lambda=\frac{1}{32} λ=321,则
x 1 = 1 32 x ‾ 1 + 31 32 x 0 = 1.140625 x_1=\frac{1}{32}\overline x_1+\frac{31}{32}x_0=1.140625 x1=321x1+3231x0=1.140625
这个结果比 17.9 17.9 17.9要小许多。可见,上述严重偏离 x ∗ x^* x的现象已经不复存在。

2. 简化Newton法

应用Newton法求方程的根,要计算函数的导数。如果函数的导数太复杂,计算量大且繁琐,这时可以用常数值c来代替函数的导数值,则迭代公式就变成:
x k + 1 = x k − f ( x k ) c (2) x_{k+1}=x_k-\frac{f(x_k)}{c} \tag{2} xk+1=xkcf(xk)(2)
这就是简化Newton法。在(2)式中,常数值c的选取可以根据迭代函数及收敛条件来确定。记
φ ( x ) = x − f ( x ) c \varphi(x)=x-\frac{f(x)}{c} φ(x)=xcf(x)

φ ′ ( x ) = 1 − f ′ ( x ) c \varphi'(x)=1-\frac{f'(x)}{c} φ(x)=1cf(x)

∣ φ ′ ( x ) ∣ = ∣ 1 − f ′ ( x ) c ∣ < 1 |\varphi'(x)|=|1-\frac{f'(x)}{c}|<1 φ(x)=1cf(x)<1

0 < f ′ ( x ) c < 2 0<\frac{f'(x)}{c}<2 0<cf(x)<2
这样,常数值c就容易确定了。

简化Newton法的几何意义是:过点 ( x k , f ( x k ) ) (x_k,f(x_k)) (xk,f(xk)),以c为斜率,作一直线与x轴的交点近似代替曲线与x轴的交点。如下图所示。

2.6.3 弦截法

弦截法是Newton法的简化与改进,它保留了Newton法收敛速度快的优点,克服了需要计算函数的导数 f ′ ( x ) f'(x) f(x)的缺点。

如果用差商
f ( x k ) − f ( x k − 1 ) x k − x k − 1 \frac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}} xkxk1f(xk)f(xk1)
代替Newton迭代法中的 f ′ ( x k ) f'(x_k) f(xk),则可得到下面的离散化形式:
x k + 1 = x k − f ( x k ) f ( x k ) − f ( x k − 1 ) ( x k − x k − 1 ) (3) x_{k+1}=x_k-\frac{f(x_k)}{f(x_k)-f(x_{k-1})}(x_k-x_{k-1}) \tag{3} xk+1=xkf(xk)f(xk1)f(xk)(xkxk1)(3)
(3)式中的等号右边,即为下图所示曲线 y = f ( x ) y=f(x) y=f(x) p k − 1 p_{k-1} pk1 ( x k − 1 , f ( x k − 1 ) ) (x_{k-1},f(x_{k-1})) (xk1,f(xk1)) p k p_k pk ( x k , f ( x k ) ) (x_k,f(x_k)) (xk,f(xk))相连的直线或弦线的方程式。按(3)式求得的 x k + 1 x_{k+1} xk+1,就是该弦线与x轴的交点的横坐标,故该方法被称为弦截法。另一方面,对照Newton法,(3)式实际上也可以看成是用经过曲线 y = f ( x ) y=f(x) y=f(x) p k − 1 p_{k-1} pk1 ( x k − 1 , f ( x k − 1 ) ) (x_{k-1},f(x_{k-1})) (xk1,f(xk1)) p k p_k pk ( x k , f ( x k ) ) (x_k,f(x_k)) (xk,f(xk))的割线的斜率来代替函数在 p k p_k pk ( x k , f ( x k ) ) (x_k,f(x_k)) (xk,f(xk))的导数,故该方法又被称为割线法。

弦截法是一种两步迭代法,即在计算 x k + 1 x_{k+1} xk+1时,必须先给出 x k − 1 x_{k-1} xk1 x k x_k xk。因此,在使用公式(3)时,必须首先给出两个迭代初值 x 0 x_0 x0 x 1 x_1 x1,否则无法启动迭代运算。

在(3)式中, x k − 1 x_{k-1} xk1点可以一直用一个固定点 x 0 x_0 x0点来代替,此时弦截法演变成为了单点弦截法,其几何解释如下图所示。相应地之前的为双点弦截法。

弦截法的收敛性有下面两个定理:

定理3:设函数 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b]上存在二阶导数,且满足条件:

(1) f ′ ′ ( x ) f''(x) f(x)在区间 [ a , b ] [a,b] [a,b]上不改变符号;

(2) f ′ ( x ) f'(x) f(x)在区间 [ a , b ] [a,b] [a,b]上不等于零;

(3) f ( a ) f ( b ) < 0 f(a)f(b)<0 f(a)f(b)<0

(4) x 0 ∈ [ a , b ] x_0\in[a,b] x0[a,b]且满足条件 f ( x 0 ) f ′ ′ ( x 0 ) > 0 , x 1 ∈ [ a , b ] f(x_0)f''(x_0)>0,x_1\in [a,b] f(x0)f(x0)>0,x1[a,b]

这时,由递推计算公式
x n + 1 = x n − x n − x 0 f ( x n ) − f ( x 0 ) f ( x n ) , ( n = 1 , 2 , ⋯   ) x_{n+1}=x_n-\frac{x_n-x_0}{f(x_n)-f(x_0)}f(x_n),\quad (n=1,2,\cdots) xn+1=xnf(xn)f(x0)xnx0f(xn),(n=1,2,)
而得的序列 { x n } \{x_n\} {xn}单调收敛于 f ( x ) f(x) f(x) [ a , b ] [a,b] [a,b]上的惟一解 x ∗ x^* x

该定理即为单点弦截法的收敛性定理。

定理4:设 x ∗ x^* x f ( x ) f(x) f(x)的实根, f ′ ( x ) f'(x) f(x) f ′ ′ ( x ) f''(x) f(x)在包含 x ∗ x^* x的某一区间是连续的,并且 f ′ ( x ∗ ) ≠ 0 f'(x^*)\neq 0 f(x)=0,则当 x 0 x_0 x0 x 1 x_1 x1足够接近 x ∗ x^* x时,由递推计算公式
x n + 1 = x n − x n − x n − 1 f ( x n ) − f ( x n − 1 ) f ( x n ) , ( n = 1 , 2 , ⋯   ) x_{n+1}=x_n-\frac{x_n-x_{n-1}}{f(x_n)-f(x_{n-1})}f(x_n),\quad (n=1,2,\cdots) xn+1=xnf(xn)f(xn1)xnxn1f(xn),(n=1,2,)
而得的序列 x n {x_n} xn收敛于 x ∗ x^* x

该定理即为双点弦截法的收敛性定理。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值