方程求根实验报告.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方程求根实验报告

实验一 方程求根 实验目的 用各种方法求任意实函数方程f(x)=0在自变量区间[a,b]上,或某一点附近的实根。并比较方法的优劣。 实验方法 (1)二分法 对方程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]中的近似根为止。 (2)迭代法 将方程f(x)=0等价变换为x=h(x)形式,并建立相应的迭代公式Xk+1=h(Xk)。 (3)牛顿法 若已知方程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。 实验程序 1.二分法 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 a=x; fa=fx; end k=k+1 x=(a+b)/2 end 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 3.牛顿法 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 实验结果 1.二分法 2.迭代法 3.牛顿法 结果分析 二分法要循环10次,迭代法要迭代4次,牛顿法要迭代3次才能达到精度为0.5×1^-3的要求,由此可知: 二分法方法简单,编程容易,且对函数f(x)的性质要求不高,但其收缩速度较慢,计算量大,因此常被用于精度不高的近似根,或为迭代法求初值。 迭代法原理简单,计算量相对二分法较小,但存在收敛性和收敛速度的问题。 牛顿法是一种特殊的迭代法,不仅计算量少而且精确度高,对初值的选取要求苛刻,且需要求函数的重根。 各种方法各有优劣,因此我们应根据不同的函数具体分析,达到最优化。

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档