数值分析作学习总结.doc

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

摘 要 在科学工作中经常出现这类问题,我们关注求解非线性方程或非线性方程组——求x使得f(x)=0或求得X= 使得F(X)=0。这些方程中,至少一个变量以任意的非线性方程形式出现。 在实变量变量的实值函数这种最简单的情况下,提出的一般问题是:已知函数f:R→R,求x的解使得f(X)=0这里主要讨论解决这类问题的一般方法和过程。在许多应用中可以发现非线性方程的例子。例如在光的衍射理论中,我们需要用到方程: X-tanX=0 在行星轨道的计算中我们需要开普勒方程: X-asinX=b 其中a和b任意取值。 在科学研究和科学计算中常常碰到以上的非线性方程求解问题。非线性方程的解一般不能解析求出。所以数值解法显得非常重要,而数值解法在实际中的实现则更为重要。本文将介绍几种数值解法以及Matlab中的实现程序。 为研究非线性方程数值解,给出了二分法、简单迭代法和牛顿迭代法的Matlab 程序,并进行了近似计算。结果表明,牛顿迭代法收敛最快。 关键词:非线性方程;Matlab程序;二分法;迭代法;简单迭代法;弦截法。 非线性方程数值解法 1 二分法 设f (x)在[a,b]连续,假定f (a)<0,f (b)>0,取中点 ,检查f (x0)符号。若f (x0)=0,则x0就是一个根;若f (x0)>0,记a为a1,x0为b1,则得有根区间[a1,b1];若f (x0)<0,记x0为a1,b为b1,则得有根区间[a1,b1]。后两种情况都得到有根区间[a1,b1],它的长度为原区间的一半。对[a1,b1],令 ,再用同样的方法,可得新的有根区间[a2,b2],它的长度为[a1,b1]的一半,如此反复进行下去,其中每一个区间是前一区间的一半。有 这就是方程的根。而 即为方程的近似根,且有 估计误差 下面用二分法求 在区间[1,2]上的根.因为二分法只能求单根,首先可以搜索函数(2.2)在区间[1,2]的根的情况。在Matlab命令窗中输入[2]: x=1∶0.01∶2; y=x^3+4*x^2-10; plot(x,y) 图1为f (x)在区间[1,2]的图像。由图1可以看出,式(2)在区间[1,2]间有惟一的一个大于1.35而小于1.4 的单根。 ● Matlab 实现 先建立erfen.m function y=erfen(fun,a,b,esp) if nargin<4 esp=1e-4;end if feval (fun,a)*feval (fun,b)<0 n=1; c=(a+b)/2; while c>esp if feval (fun,a)*feval(fun,c)<0 b=c;c=(a+b)/2; elseif feval (fun,c)*feval (fun,b)<0 a=c;c=(a+b)/2; else y=c;esp=10000; end n=n+1; end format long y=c; elseif feval (fun,a)==0 y=a; elseif feval (fun,b)==0 y=b; else disp ('may not be a root'); end n 再建立fc.m 函数文件 function y=fc(x); y= x^3+4*x^2-10; 最后在Matlab 命令窗中输入: erfen('fc',1,2,0.0001) n= 50 ans= 1.36523001341410 即迭代50次计算结果为1.36523001341410,精度已经非常高。如果希望精度达到 只需要迭代13次结果是1.365173390。二分法优点是计算简单,收敛性有保证;缺点是收敛不快,不能求复根及重根。 2 简单迭代法 将函数f (x)=0非线性方程变为同解方程:x=φ(x),其中函数φ(x)为连续函数。然后构造迭代格式 并选取初值Xo。根据初值Xo及迭代格式 (3)可产生迭代序列{}[3]。 下面用简单迭代法计算式(2)。 由式(2)可以得到下列等价方程 但第一个方程是发散的,第二个方程不适定,只有后面两个方程具有收敛性。用第4 个方程计算如下。 ● MATLAB 实现 先建立iterate.m function y=iterate (x) x1=g(x);

文档评论(0)

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

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

1亿VIP精品文档

相关文档