实验指导书_非线性方程(组)数值解法.docVIP

实验指导书_非线性方程(组)数值解法.doc

  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软件 说明:与方程求根有关的MATLAB函数另见MATLAB学习资料 一、搜索根的方法及其MATLAB程序 求解非线性方程根的近似值时,首先需要判断方程有没有根?如果有根,有几个根?如果有根,需要搜索根所在的区间或确定根的初始近似值(简称初始值).搜索根的近似位置的常用方法有三种:作图法、逐步搜索法和二分法等,使用这些方法的前提是高等数学中的零点定理. 1.作图法及其MATLAB程序 (1)作函数在区间 [a,b] 的图形的MATLAB程序一 x=a:h:b; % h是步长 y=f(x); plot(x,y) grid, gtext(y=f(x)) 说明: ①此程序在MATLAB的工作区输入,运行后即可出现函数的图形.此图形与轴交点的横坐标即为所要求的根的近似值. ②区间[a,b] 的两个端点的距离 b-a 和步长h的绝对值越小,图形越精确. (2)作函数在区间 [a,b] 的图形的MATLAB程序二 将化为,其中是两个相等的简单函数 x=a:h:b; y1=h(x); y2=g(x); plot(x, y1, x, y2) grid,gtext( y1=h(x),y2=g(x)) 说明:此程序在MATLAB的工作区输入,运行后即可出现函数和的图形.两图形交点的横坐标即为所要求的根的近似值. 2.逐步搜索法及其MATLAB程序 逐步搜索法也称试算法.它是求方程根的近似值位置的一种常用的方法. 逐步搜索法依赖于寻找连续函数满足与异号的区间.一旦找到区间,无论区间多大,通过某种方法总会找到一个根. MATLAB的库函数中没有逐步搜索法的程序,现根据逐步搜索法的计算步骤和它的收敛判定准则编写其MATLAB程序如下,命名为zhubuss.m. 输入输出说明:a和b的值,tol, k=(b-a)/h+1, 方程根的近似值r. function [k,r]=zhubuss(a,b,h,tol) % 输入的量: % a和b是闭区间[a,b]的左、右端点; %h是步长; % tol是预先给定的精度. % 运行后输出的量: % k是搜索点的个数; % r是方程在[a,b]上的实根的近似值,tol; X=a:h:b; Y=funs(X); %f(x)的M文件,对应名称为funs.m的函数文件 n=fix((b-a)/h)+1; m=0; X(n+1)=X(n); Y(n+1)=Y(n); for k=2:n X(k)=a+k*h; Y(k)=funs(X(k)); %程序中调用的funs.m为函数 sk=Y(k)*Y(k-1); if sk=0, m=m+1; r(m)=X(k); end xielv=(Y(k+1)-Y(k))*(Y(k)-Y(k-1)); if (abs(Y(k))tol)( xielv=0) m=m+1;r(m)=X(k); end end 例1 用逐步搜索法的MATLAB程序分别求方程和在区间上的根的近似值,要求精度是0.0001. 解? 将逐步搜索法的MATLAB程序保存名为zhubuss.m的M文件. 建立M文件funs.m function y=funs(x) ??????? ?? ?y=2.*x.^3+2.*x.^2-3.*x-3 在MATLAB工作窗口输入如下程序 [k,r]=zhubuss(-2,2,0.001,0.0001) 运行后输出的结果 k =4001 r = -1.2240?? -1.0000?? -1.0000?? -0.9990??? 1.2250 即搜索点的个数为k =4 001,其中有5个是方程 的近似根,即r = -1.224 0,-1.000 0,-1.000 0,-0.999 0,1.225 0,其精度为0.000 1. 在程序中将y=2.*x.^3+2.*x.^2-3.*x-3用y=sin(cos(2.*x.^3)) 代替,可得到方程在区间 上的根的近似值如下 r =? -1.9190?? -1.7640?? -1.5770?? -1.3300?? -0.9220??? 0.9230??? 1.3310 1.5780??? 1.7650??? 1.9200 ? ?二分法及其MATLAB程序 ? 二分法的MATLAB程序 二分法的MATLAB主程序function [k,x,wuca,yx]=erfen(a,b,abtol) a(1)=a; b(1)=b; ya=fun(a(1)); yb=fun(b(1));

文档评论(0)

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

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

1亿VIP精品文档

相关文档