非线性方程求根.docVIP

  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文档。上传文档
查看更多
非线性方程求根非线性方程求根

非线性方程求根 系 别 专 业 学 号 姓 名 非线性方程求根 摘 要 随着科学技术,生产力经济的发展,在科学与工程计算中存在着大量方程求根问题,例如贷款购房问题,工厂的最佳订货问题等都需要求解一类非线性方程的根,而本文就针对这些求根问题提出了解决方案,本文利用牛顿迭代法来结决方程的求根问题. 首先根据实际问题列出数学模型,确定变量,给出各个条件及相关函数;然后对建立的模型进行具体分析和研究,选择合适的求解方法;编写函数的程序,用计算机求出方程的解,通过所求解分析具体情况. 关键词:非线性方程,牛顿迭代法,Matlab 1 绪 论 非线性方程求根的背景 牛顿迭代法是牛顿在17世纪提出的一种求解方程.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要. 而在各种科学和工程计算中往往要用到非线性方程组的求解,而牛顿法又是最基础的迭代法,在各种计算力学、控制工程等领域中发挥了不可代替的作用.而在数值计算中,非线性方程组的求解同样具有重要意义. 随着计算机技术的成熟和高速发展,对于非线性方程求根问题出现了大量的数学软件(如MATLAB,Matheamatica,Maple,SAS,SPSSD等),计算机已经成为工程师应用数学解决工程问题的主要运算工具.同时,工程专业的学生对数学教育的需求重点正在从手工演绎和运算能力的培养转变到结合计算机软件进行建模、求解和论证能力的培养.本文采用Matlab作为软件平台,介绍了非线性方程求根的内容. 非线性方程求根的目的 为了推动科学的进步,能够很简便的完成各种工程计算,非线性方程组的求解方法以其独有的方法解决了各种计算.非线性方程组的求解正是为了这个目的才广泛被人们应用,此文也将给出非线性方程组求解的实际应用. 非线性方程求根的内容 解非线性方程的主要算法是迭代法,如fsolve、二分法、牛顿迭代法等.迭代法是从已知的解的初始近似值 (简称初值)开始,利用某种迭代格式 求得一近似值序列逐步逼近于所求的解α(称为不动点).这一方法是否成功取决于三个因素,首先应与同解,其次初值的选取是否合适,一般要与真解靠近,最后也是最关键的是迭代序列是否收敛,为了保证收敛性,在真解附近应有 否则迭代序列可能发散. 最基本的迭代法是Newton迭代法,其迭代格式为 . 从几何上说为用在出切线代替求得的解,所以也称为切线法,当初值与真值足够靠近,Newton迭代法收敛.对于单根,Newton法收敛速度很快;对于重根,收敛较慢. 牛顿迭代法的大概算法为: 给定初始值,为根的容许误差,为的容许误差,为迭代次数的容许值. ① 如果或迭代次数大于,则算法失败,结束;否则执行② ② 计算 ③ 若或,则输出,程序结束;否则执行④ ④ 令,转向① 下面给出了Newton迭代法的计算程序. function x=newton(fname,dfname,x0,e) %用途:Newton迭代法解非线性方程f(x)=0 %格式:x=nanewton( fname,dfname,x0,e) x返回数值解,%fname和dfname分别表示f(x)及其导函数f(x),x0为迭代初值,e精度要求(默认为1e-4)if nargin4,e=1e-4; %精度默认为1e-4end x=x0;x0=x+2*e; %使while成立,进入while后x0得到赋值 while abs(x0-x)e x0=x;x=x0-feval(fname,x0)/feval(dfname,x0); End 2 牛顿迭代法的实现及应用 Newton迭代法具体例子的实现 用Newton迭代法解方程 在1.5附近的根. 解:当时,,即恒正,所以根在[0,2].我们先用图解法找初值,在用Newton法程序newton.m求解. fun= inline(x^3+x^2-3*x-3);就是定义一个内置函数,本质上说跟function干的是一样的事,只不过它可以直接内嵌在命令行里,不用另外单独定义function.fplot(fun,[0,2]); grid on; 图 2.的由图可知方程有唯一正根在[1.6,1.8]之间,我们取初值1.5代入Newton程序中. dfun=inline(3*x^2+2*x-3);format long; newton(fun,dfun,1.5,1e-4); format short; ans = 1.73205080756888 而用Matlab本身的函数fzero求出来的结果为: format long;fzero(inline(x^3+x^2-3*x-3),

文档评论(0)

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

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

1亿VIP精品文档

相关文档