非线性方程牛顿迭代法与斯特芬森迭代法
的研究与比较
非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较
申林坚
(南昌航空大学 测试与光电工程学院 江西 南昌 330063)
摘要:本文针对一个具体的非线性方程3x2?ex?0进行研究,首先作出了了函数
f(x)?3x?e的图像,大体判定其零点(即方程解)在(3,4)区间内, 接着用牛顿迭代法和斯特芬森迭代法进行求解分析,牛顿法的迭代公式为
xk?1?xk?斯特芬森迭代法公式为
yk??(xk),zk??(yk),(yk?xk)2
xk?1?xk?,zk?2yk?xk2xf(xk), f?(xk)记录两种方法求得指定精度解所需迭代次数及所需计算时间,并对其优缺点 进行了分析。
关键词:非线性方程;牛顿迭代法;斯特芬森迭代法
引言
非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定条件下由非线性问题简化得到的,为得到
更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱。本论文通过对特定非线性方程3x2?ex?0进行求解,介绍了两种常用的迭代法牛顿迭代法和斯特芬森迭代法,详尽阐述了其各自的数学几何原理及优缺点比较,从而更深入的理解非线性方程的迭代法求解。
正文
一.作出f(x)的图像,确定隔根区间 在Matlab中输入以下指令并回车:
x=(-10:0.001:10); y=3*x.^2-exp(x); plot(x,y);
grid on;
0.5x 1040-0.5-1-1.5-2-2.5-10-8-6-4-20246810
图1
得到图1所示f(x)的图像,易知,当x??10及x?10时,f(x)无零点 将y轴方向放大,输入命令axis([-10 10 -2 2]),得到图2
21.510.50-0.5-1-1.5-2-10-8-6-4-20246810
图2
可知函数有三个零点,隔根区间为(-2,0),(0,2),(2,4) 将x轴方向放大,输入命令axis([-2 4 -2 2]),得到图3
21.510.50-0.5-1-1.5-2-2-101234
图3
可将隔根区间进一步缩小为(-1,0),(0,1),(3,4)
二.牛顿迭代法求区间(3,4)中的根
对于方程f(x)?0,如果f(x)是线性函数,则它的求根是容易的。牛顿法实质上是一种线性化方法,其基本思想是将非线性方程f(x)?0逐步归结为某种非线性方程来求解。
设已知方程f(x)?0有近似根xk(假定f?(xk)?0),将函数在点xk展开,有
f(x)?f(xk)?f?(xk)(x?xk),
于是方程f(x)?0可近似表示为
f(xk)?f?(xk)(x?xk)?0.
这是个线性方程,记其根为xk?1,则xk?1的计算公式为