- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 方程求根
一、 实验目的
用各种方法求任意实函数方程 f(x)=0 在自变量区间[a,b]上,或某一点附近的实根。并比较方法的优劣。
二、 实验方法
二分法
对方程 f(x)=0 在[a,b]内求根。将所给区间等分,在分点 x=(b-a)/2 判断是否 f(x)=0,若是,则有根 x=(b-a)/2.否则,继续判断是否 f(a)·f(x)0, 若是,则令 b=x,否则令 a=x。重复此过程直至求出方程 f(x)=0 在[a,b] 中的近似根为止。
迭代法
将方程 f(x)=0 等价变换为 x=h(x) 形式,并建立相应的迭代公式Xk+1=h(Xk)。
牛顿法
若已知方程 f(X)=0 的一个近似根 X0,则函数 f(X)在点 X0 附近可用一阶泰勒多项式 P1= f (X0) + f’ (X0) (X-X0)来近似,因此方程 f(X)=0 可近似表示为 f(X0)+ f’ (X0) (X-X0)=0.设 f’ (X0)≠0,则 X= X0- f (X0)/ f’ (X0),
取 X 作为原方程新的近似根 X1,然后将 X1 作为 X0 带入上式,迭代公示为:X k+1=X k - f (X k)/ f’ (X k)。
三、 实验内容
在区间[0,1]上用二分法求方程的近似根,要求误差不超过 0.5×10^3。取初值 X0=0 , 用迭代公式 X k+1=(2-e^k)/10,(k=0,1,2, … ) 求方程e^x+10x-2=0 的近似根。要求误差不超过 0.5×10^3。
取初值 X0=0,用牛顿迭代法求方程 e^x+10x-2=0 的近似根。要求误差不超过 0.5×10^3。
四、 实验程序
二分法
function x=agui_bisect(fname,a,b,e) fa=feval(fname,a); fb=feval(fname,b);
if fa*fb0 error(两端函数值为同号);end
k=0 x=(a+b)/2
while(b-a)(2*e)
fx=feval(fname,x); if fa*fx0
b=x; fb=fx;
else
end
a=x; fa=fx;
end
k=k+1 x=(a+b)/2
迭代法
function x=agui_iterative(fname,x0,e) N=100;
x=x0; x0=x+2*e; k=0;
while abs(x0-x)e kN k=k+1
x0=x; x=feval(fname,x0); disp(x)
end
if k==N warning(已达最大迭代次数); end
牛顿法
function x=agui_newton(fname,dfname,x0,e)
N=100;
x=x0; x0=x+2*e; k=0;
while abs(x0-x)ekN k=k+1
x0=x;
x=x0-feval(fname,x0)/feval(dfname,x0); disp(x)
end
if k==N warning(已达最大迭代次数);end
五、 实验结果
二分法
1k =
1
E; 云
=
3
亡,_ 0 下 已 1 O - 0 9 18
k = k
丘 今
:x = 文
o. O 了 5 3 o . 仁 I SI0 石
= 上
下 10
文 =
o. 0898 o_ 亡19 0 3
X -
0. 090 3
) )
迭代法
K f u 丑 =1..n l i n e C ( 2- 仑 xp ( x ) },f 10? )
K
二
fun= I
, 3
Inline func 士 i on :
f un (x ) 二 ( 2- exp (x))/ 1 D
0.0906
沁 ::-::= agu i _ i t erat ive 仔un, 0, 0. 5e-3)
k;; K 二
1
4
l
0 I 1000 ,
|
k =
0.0905
2 R =
0.0895 0.0905
牛顿法
六、 结果分析
二分法要循环 10 次,迭代法要迭代 4 次,牛顿法要迭代 3 次才能达到精度为 0.5×1^-3 的要求,由此可知:
二分法方法简单,编程容易,且对函数 f(x)的性质要求不高,但其收缩速度较慢,计算量大,因此常被用于精度不高的近似根,或为迭代法求初值。
迭代法原理简单,计算量相对二分法较小,但存在收敛性和收敛速度的问题。
牛顿法是一种特殊的迭代法,不仅计算量少而且精确度高,对初值的选取要求苛刻,且需要求函数的重根。
各种方法各有优劣,因此我们应根据不同的函数具体分析,达到最优化。
文档评论(0)