数值计算M课程论文3.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值计算M课程论文3

 PAGE \* MERGEFORMAT 31 数值计算M课程论文(一) 项目 基于Matlab的非线性方程数值解的求解 姓名 学号 班级 指导老师 王承竞 时间:2014年4月23日 摘要 本文用六种在课上学习的方法通过对非线性方程f(x)=x-lnx+s=0的进行求解,从而学习加深对这六种方法(二分法、不动点迭代法、牛顿法、割线法、牛顿下山法和Halley迭代法)的理解。 同时,本文还将通过控制基本设置,来评估收敛速度和结果的精确度来大概的评估这六种方法的优缺点。 关键字:Matlab编程 六种方法 非线性方程 注:本文是以具体的方程来讨论,因此本文取s=-8。 六种算法的分析和Matlab编程描述 1.1二分法 1.1.1二分法的算法分析   一般地,对于函数f(x),如果存在实数c,当x=c是f(c)=0,那么把x=c叫做函数f(x)的零点。   解方程即要求f(x)的所有零点。   先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f((a+b)/2),现在假设f(a)0,f(b)0,ab。   如果f((a+b)/2)=0,该点就是零点;   如果f((a+b)/2)0,则在区间((a+b)/2,b)内有零点,按上述方法在求该区间中点的函数值,这样就可以不断接近零点;   如果f((a+b)/2)0,同上 通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。 如图1.1.1所示为其理论分析图: 图1.1.1 1.1.2二分法的Matlab编程描述 function y=dichotomy(fun,a,b,tol) if nargin4 tol=1.0e-5; end n=1; if feval(fun,a)*feval(fun,b)0 c=(a+b)/2; while (abs(b-c)tol)(abs(feval(fun,c))tol) if(feval(fun,c)*feval(fun,a)0) a=c; c=(a+b)/2; elseif(feval(fun,c)*feval(fun,a)0) b=c; c=(a+b)/2; else y=c; tol=100; end n=n+1; end y=c; elseif feval(fun,a)==0 y=a; elseif feval(fun,b)==0 y=b; else disp(there may not be a root in the interval); end n end 1.1.3程序的执行 首先,我们建立我们的各个方程函数如下: 对于x-lnx-8=0 function y=fun(x) y=x-log(x)-8; end 运行结果如下: x=dichotomy(fun,2,10.4,1.0e-6) n = 17 x = 10.3356 1.2不动点迭代法 1.2.1不动点迭代法的算法分析 迭代法是函数方程求根中最常用的求近似方法,用迭代法求函数方程f(x)=0的近似根,首先要将方程化为等价方程x=φ(x)。等价就是,如果x*是原方程的根,那么x*=φ(x*),反之,如果x*满足x*=φ(x*),那么f(x*)=0。迭代法就是求方程x=φ(x)的解的方法,为了进行迭代,先选取一个初始值近似 ,构造迭代格式为 若 ,则称此迭代为不动点迭代法。易知构造不动点的迭代公式不一定收敛,且收敛速度也受所构造的迭代公式的好坏所影响。 1.2.2不动点迭代法的Matlab编程描述 function x=BDD(x0,tol) if nargin2 tol=1.0e-5; end n=1; x=F(x0); while abs(x-x0)tol x0=x; x=F(x0); n=n+1; end n end 1.2.3程序的执行 x=BDD(2,1.0e-6) n = 9 x = 10.3356 1.3牛顿法 1.

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档