- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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
说明: = 1 \* GB2 ⑴ 此程序在MATLAB的工作区输入,运行后即可出现函数的图形.此图形与轴交点的横坐标即为所要求的根的近似值.
= 2 \* GB2 ⑵ 区间[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(ktol( xielv=0
m=m+1。r(m=X(k。
end
end
例2.2.4 用逐步搜索法的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 =4001,其中有5个是方程的近似根,即r = -1.2240,-1.0000,-1.0000,-0.9990,1.2250,其精度为0.0001.
在程序中将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(abtol/ log(2。 % ceil是向方向取整
for k=1: max1+1
a。ya=fun(a。 b。yb=fun(b。 x=(a+b/2。
yx=fun(x。 wuca=
文档评论(0)