初值对牛顿迭代法的影响

3 篇文章 3 订阅
1 篇文章 1 订阅

工程上 ,不少实际问题的数学模型都涉及到非线性方程 f ( x )= 0的求解。由于工程问题对应的方程 f (x )= 0大多不存在求根公式 ,因此确定精确解十分困难。 故近似解的计算成为人们关心的主要问题。 目前 ,人们已提出了不少求解非线性方程 f (x )= 0近似解的方法 ,其中 ,牛顿迭代法是最基本的方法 之一。 由于牛顿迭代法在方程的单根附近具有平方收敛速度 ,而且还可以求解方程的重根和复根 ,故该法得到了广泛应用。但牛顿迭代法对初值的要求较苛刻 ,只有适当选取初值 ,才能保证其收敛性。

为保证牛顿迭代法局部收敛 ,必须对 f (x )和初值附加如下条件:

( 1) f (x )在区间 [a,b]上二阶可导;

( 2) f (a) f (b) < 0;

( 3) f′ (x )≠0;

( 4) f″ (x )在区间 [a,b ]上不变号 ;

( 5) 初值 x0∈ [a,b ]应使 f″ (x0 ) f ( x0 )> 0

 其中 ,条件 ( 1)、 ( 2)保证了方程 f (x )= 0根的存在性;条件 ( 3)表示函数单调变化 ,则方程的根惟一;条件 ( 4)表示函数 f (x )的图形凸凹向不变;条件 ( 5)是对初值的要求

只要满足以上条件 ,就可保证牛顿迭代法的收敛性。但当表达式 f ( x )很复杂时 ,确定 f ( x )导数的计 算量很大 ,且求出 f″ (x )的表达式非常复杂 ,要满足条件 ( 3)、 ( 4)比较困难。另外 ,还有不少方程不完全符 合上述条件 ,无法按以上要求确定初值 ,迭代过程很难确保收敛性。

在文献一中提到了一种通过不断增加非线性方程对应曲线切线的斜率 ,达到迭代收敛的目的“改变斜率法”

 

在定义域内取任一初值 x0∈ [a,b ],按牛顿迭代法的公式进行计算 ,得

若 x1落在区间 [a,b]外 ,可将式 ( 1)中导数增加一倍 ,然后再重新进行迭代 ,得

若还落在区间 [a,b]外 ,可将导数再增加一倍 ,然后再重新计算 ,直到 x1 落在区间 [a,b ]内为止。 以下迭 代过程与此类似 ,其迭代格式为

参数 m的选取原则是使 xk+ 1∈ (a,b)。以上思路的几何意义如图 1所示。当曲线 y= f (x )在点 xk 处 的切线 (图 1中的实线 )与坐标轴的交点 (该点的横坐标即为 xk+ 1 )落在区间 [a,b]外时 ,将切线斜率增加 一倍 ,即使其变陡 ,成为割线 ,如图 1中的虚线所示。 这样 ,其与坐标轴的交点将落在区间 [a,b ]内 ,从而 保证迭代收敛。若该割线与坐标轴的交点仍然落在区间 [a,b]外 ,则使其斜率再增加一倍 ,直到满足要求 为止。 对于图 2所示的情形 ,显然不满足上述牛顿迭代法的局部收敛条件 ( 4) (因为 f″ ( x )正负交替变号 ) , 很难选取能保证收敛的合适初值。但采用本文提出的改变斜率法 ,取区间 [a,b ]内的任意初值 ,均可保证 迭代收敛。

图 1 改变斜率法的几何意义 图 2 异形曲线的迭代   需要指出的是 ,在迭代过程中 ,每一步迭代都要检查迭代的根是否落在区间 [a,b]外 ,若是 ,则将斜 率增加一倍重新计算即可。 显然 ,m= 0即为常规牛顿迭代法 ,所以常规牛顿迭代法可视为本文方法的特例。

 

 

试着用牛顿迭代法求f(x)=x^{\frac{1}{3}} 的根

clear,clc
x=0.1;%zm初始值
xs=[x];
n=30;%迭代次数
for i=1:n
    dzm=3*x;
    x=x-dzm;
    xs=[xs,x];
end
plot(xs,'*')

当m=0时,迭代所得的方程的根如下图

可以看到迭代结果是发散的

但是当m=1时,迭代结果如下图,为收敛的结果

这时的结果则是我们所需要的。

试求方程 f (x )= 5x^3- x^2- 1= 0在区间 [0. 2, 1. 5]内的根

clear,clc
x=0.1;%zm初始值
xs=[x];
result=0;
n=30;%迭代次数
for i=1:n
    dzm=(5*x^3-x^2-1)/(15*x^2-2*x);
    x=x-dzm;
    xs=[xs,x];
    a=xs(length(xs)-1);
    b=xs(length(xs));
    rab=abs((b-a)/b);
    if rab<1e-4
        result=b;
        break
    end
end
disp(result)

用牛顿迭代法迭代出的结果如下图,所得结果收敛

[1]陈玉骥.牛顿迭代法的一种改进方法[J].佛山科学技术学院学报(自然科学版),2012,30(05):1-3.

[2] 牛顿迭代的详细原理,以及初值对迭代结果的影响可以参照https://blog.csdn.net/ccnt_2012/article/details/81837154

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值