- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章非线性方程组()的数值解法
2.1 方程(组)的根及其MATLAB命令
2.1.2 求解方程(组)的solve命令
求方程f(x)=q(x)的根可以用MATLAB命令:
x=solve(方程f(x)=q(x),待求符号变量x)
求方程组fi(x1,…,xn)=qi(x1,…,xn) (i=1,2,…,n)的根可以用MATLAB命令:
E1=sym(方程f1(x1,…,xn)=q1(x1,…,xn));
…………………………………………………….
En=sym(方程fn(x1,…,xn)=qn(x1,…,xn));
[x1,x2,…,xn]=solve(E1,E2,…,En, x1,…,xn)
2.1.4 求解方程(组)的fsolve命令
fsolve的调用格式: X=fsolve(F,X0)
2.2 搜索根的方法及其MATLAB程序
2.2.1 作图法及其MATLAB程序
作函数在区间 [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的绝对值越小,图形越精确.
作函数在区间 [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.2.2 逐步搜索法及其MATLAB程序
逐步搜索法的MATLAB主程序
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);n=(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
例2.2.4 用逐步搜索法的MATLAB程序分别求方程和在区间上的根的近似值,要求精度是0.000 1.
解 将逐步搜索法的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
2.3 二分法及其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)); %程序中调用的fun.m 为函数
if ya* yb0,
disp(注意:ya*yb0,请重新调整区间端点a和b.), return
end
max1=-1+ceil((log(b-a)- log(abto
文档评论(0)