- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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));
您可能关注的文档
最近下载
- 储能技术-全套PPT课件.pptx
- 高中高考备考经验课件.pptx VIP
- 黄精种植项目可行性研究报告写作范文.doc VIP
- 项目2 2.3 植物根&茎&叶的形态与结构观察(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 项目2 2.3 植物的营养器官(4)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 教学副校长在全体教师大会上发言:听好每一节课,走好专业每一步.docx
- 磁力泵试题及答案.docx VIP
- 一种利福霉素S-Na盐的合成方法.pdf VIP
- 项目2 2.3 植物的营养器官(3)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- WHO《数据完整性指南》2021(中英文对照版).docx VIP
文档评论(0)