- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较
申林坚
(南昌航空大学 测试与光电工程学院 江西 南昌 330063)
摘要:本文针对一个具体的非线性方程进行研究,首先作出了了函数 的图像,大体判定其零点(即方程解)在(3,4)区间内,
接着用牛顿迭代法和斯特芬森迭代法进行求解分析,牛顿法的迭代公式为 ,
斯特芬森迭代法公式为
记录两种方法求得指定精度解所需迭代次数及所需计算时间,并对其优缺点
进行了分析。
关键词:非线性方程;牛顿迭代法;斯特芬森迭代法
引言
非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定条件下由非线性问题简化得到的,为得到
更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱。本论文通过对特定非线性方程进行求解,介绍了两种常用的迭代法牛顿迭代法和斯特芬森迭代法,详尽阐述了其各自的数学几何原理及优缺点比较,从而更深入的理解非线性方程的迭代法求解。
正文
一.作出的图像,确定隔根区间
在Matlab中输入以下指令并回车:
x=(-10:0.001:10);
y=3*x.^2-exp(x);
plot(x,y);
grid on;
图1
得到图1所示的图像,易知,当及时,无零点
将y轴方向放大,输入命令axis([-10 10 -2 2]),得到图2
图2
可知函数有三个零点,隔根区间为(-2,0),(0,2),(2,4)
将x轴方向放大,输入命令axis([-2 4 -2 2]),得到图3
图3
可将隔根区间进一步缩小为(-1,0),(0,1),(3,4)
二.牛顿迭代法求区间(3,4)中的根
对于方程,如果是线性函数,则它的求根是容易的。牛顿法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种非线性方程来求解。
设已知方程有近似根(假定),将函数在点展开,有
,
于是方程可近似表示为
.
这是个线性方程,记其根为,则的计算公式为
这就是牛顿法。
牛顿法有明显的几何解释。方程的根可解释为曲线与x轴的交点的横坐标。设是根的某个近似值,过曲线上横坐标为的点引切线,并将该切线与x轴的交点的横坐标作为的新的近似值。注意到切线方程为
这样求得的值必满足。由于这种几何背景,牛顿法亦称切线法。
下面列出牛顿法的计算步骤:
步骤1 准备 选定初始近似值,计算,
步骤2 迭代 按公式
迭代一次,得到新的近似值,计算
步骤3 控制 如果满足哦或,则终止迭代,以作为所求的根;否则转步骤4.此处是允许误差,而
其中C是取绝对误差或相对误差的控制常数,一般可取C=1.
步骤4 修改 如果迭代次数达到预先指定的次数N,或者,则方法失败;否则以代替转步骤2继续迭代
Matlab计算程序如下,取初始迭代值=3:
i=0;
y=3;
z=1;
while(i=100z=10^(-8))
x=y;
y=x-(3*x^2-exp(x))/(6*x-exp(x));
if abs(y)1
z=abs(y-x);
else
z=abs((y-x)/y);
end
i=i+1;
end
format long;
disp(y);
disp(i);
输出结果为y= 3.733079028632816,i=9
可知,使用牛顿迭代法,初值为3时,需迭代9次可使eps10^-8,近似解为3三.斯特芬森迭代法求区间(3,4)中的根
埃特金方法不管原序列{}是怎样产生的,对{}进行加速计算,得到序列{}。如果把埃特金加速技巧与不动点迭代结合,可得到如下的迭代法:
称为斯特芬森迭代法。它可以这样理解,我们要求的根,令,,已知的近似值及,其误差分别为
把误差“外推到零”,即过及两点做线性插值函数,它与x轴交点就是,即方程
的解
斯特芬森迭代法的另一种表达方式如下:
其中
实验表明,即便用不动点迭代法不收敛,用斯特芬森迭代法仍可能收敛。
取,迭代初值为3进行迭代,Matlab程序如下:
i=0;
y=3;
z=1;
while(i=1000z=10^(-8))
x=y;
y1=log(3*x^2);
y=x-(y1-x)^2/(log(3*y1^2)-2*y1+x);
if abs(y)1
z=abs(y-x);
else
z=abs((y-x)/y);
end
i=i+1;
end
format long;
disp(y);
disp(i);
输出结果为y= 3.733079028632815,i=4
您可能关注的文档
- 出入量记录合编.ppt
- 个人办公管理制度合编.ppt
- 东财12秋学期例析.doc
- 出入液量的计算合编.ppt
- 房屋卫生设备技巧.doc
- 房屋细则装饰、装修工程监理细则技巧.doc
- 房屋装修合同及附件技巧.doc
- 个人电子银行“百县千镇”(客户版)合编.ppt
- 国家财政2合编.ppt
- 纺织中英文词典技巧.doc
- 《2025-0140T-JB 泵用变频控制器》知识培训.pptx
- 《2025-0153T-JB 无泄漏磁力传动塑料自吸泵》知识培训.pptx
- 《2025-0171T-JB 土方机械 低温极限工况冷起动 试验方法》知识培训.pptx
- 《2025-0167T-JB 建筑施工机械与设备 干混砂浆搅拌机》知识培训.pptx
- 《2025-0134T-JB 农业灌溉设备 永磁变频管中泵》知识培训.pptx
- 《2025-0147T-JB 农业机械 扭矩超载保护装置》知识培训.pptx
- 《2025-0149T-JB 农用小型装载机》知识培训.pptx
- 《2025-0137T-JB 自走式灌木收割粉碎打捆机》知识培训.pptx
- 《2025-0166T-JB 桅柱式升降工作平台》知识培训.pptx
- 2025年心理咨询师理论考试模拟试题集及答案.docx
文档评论(0)