- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE
PAGE1
数值分析实验五 非线性方程的求根
组号班级 学号 姓名 分数
一:实验目的
1、掌握用二分法解非线性方程的方法。
2、掌握用迭代法解非线性方程的方法。
3、掌握用牛顿法解非线性方程的方法。
4、学会运用Matlab语言解决提供的函数求解实际问题。
二:实验内容所需的基本知识
二分法的原理:
设f(x)在[a,b]上连续,且 f(a)?f(b)?0。则[a,b]为方程区间(设只有唯一根)。取中点
1
x ? (a?b),检查f(a)与f(x
0 2 0
)是否同号,若同号,说明根x*与b之间,此时a
1
?x,b
0 1
?b;若异
号,说明根x*在a与x
0
1
之间,此时a
1
?a,b
1
?x,得新区间[a,b
0 1 1
]为原区间的一半。对[a,b
1 1
]进行上
述过程,取中点x
1
? (a2 1
b),检查f(a
1 1
)与f(x
1
)是否同号,如此反复二分下去,即可得出一系列有
根区间[a,b]?[a,b
1 1
]?[a,b
2 2
]?…?[a,b
k k
]?…,其中每个区间都是前一个区间的一半,因此
[a,b
k k
]的长度b ?a
k k
?(b?a)2k,当k??时趋于零,就是说,如果二分过程无限地继续下去,这
些区间最终必收缩于一点x*,该点显然就是所求的根。
迭代法原理:
首先给定一个粗糙的初始值,然而用一个迭代公式反复校正这个初值,将已有近似根逐步精确化,一直到满足精度要求为止。
具体地,把方程f(x)?0改写成x的等价表达式x??(x),若x*??(x*),称x*为?(x)的一个不动点,求f(x)的零点就等价于求?(x)的不动点。
任取一点x代入?(x)求得
0
x ??(x
1 0
) 又将x
1
代入?(x)求得
x ??(x
2 1
) 如此反复迭代下去
一般地 x ??(x) k=0,1,2,………
k?1 k
?(x)称为迭代函数,x??(x)称为迭代公式。若迭代序列{x
k
}有极限,即limx
k?? k
?x*,则称迭代方程
xk?1??(xk),k=0,1,2,…收敛,这时x*显然是x??(x)的不动点。
牛顿(Newton)法:
将非线性方程f(x)?0逐步转化为某种线性方程求解。已知f(x)?0的一个近似根x,则函数f(x)在
0
点x附近可以用一阶泰勒公式来近似,f(x)?f(x)?f(x)(x?x)?0,若f(x)?0,解得
0 0 0 0 0
f(x)
x?x
0 ,将此根记为原方程的近似根x,然后按上式迭代计算,使形成一种新的迭代公式:
0 f(x) 1
0
x ?x
f(xk)
,k?0,1,2,
k?1
k f(x)
k
三:实验问题、方法及步骤
1、用二分法解方程x3?x?1?0在区间[1.0,1.5]上的一个根。
解 先按照二分法的基本原理编写二分发的MATLAB程序(程序命名为:HalfInterval.m),编程如下:
functionroot=HalfInterval(f,a,b,eps)if(nargin==3)
eps=1.0e-4
endf1=subs(sym(f),findsym(sym(f)),a);
f2=subs(sym(f),findsym(sym(f)),b);if(f1==0)
root=a;
endif(f2==0)
root=b;
endif(f1*f20)
disp(两端点函数值乘积大于0!);
return;
else
end
root=FindRoots(f,a,b,eps);
functionr=FindRoots(f,a,b,eps)f_1=subs(sym(f),findsym(sym(f)),a);
f_2=subs(sym(f),findsym(sym(f)),b);
mf=subs(sym(f),findsym(sym(f)),(a+b)/2);if(f_1*mf0)
t=(a+b)/2;r=FindRoots(f,t,b,eps);
else
if(f_1*mf==0)
r=(a+b)/2;
else
if(abs(b-a=eps))r
您可能关注的文档
最近下载
- 民族学概论 全套课件.ppt VIP
- 杭州西奥电梯HAMCB TT树状图.pdf VIP
- HAMCB版-杭州西奥电梯XO-CON4342电气原理图纸接线图-HAMCB.pdf VIP
- 2024秋国开《法律职业伦理》形考任务一至三答案.docx VIP
- 西部证券-福耀玻璃-600660-首次覆盖报告-全球汽车玻璃龙头,海外扩张正当时-250613-40页.pdf
- 聊天的时候对方撤回消息,一招让你照样能看.pdf VIP
- 2025年电大《组织行为学》形考任务1-4答案 .pdf VIP
- 老挝钾盐勘探开发历史回顾及经验教训分析.pdf VIP
- 蒂森MC2详细说明.pdf VIP
- 公交公司安全工作总结.docx VIP
原创力文档


文档评论(0)