资源描述:
《MATlab求零点》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、5.6.2一元函数的零点5.6.2.2任意一元函数零点的精确解【*例5.6.2.2-1】通过求的零点,综合叙述相关指令的用法。(1)构造一个内联函数对象被解函数以为自变量,和为参数。假如在fzero中直接采用字符串表示被解函数,容易出错。因此先构造内联函数如下:y=inline('sin(t)^2*exp(-a*t)-b*abs(t)','t','a','b');%<1> (2)作图法观察函数零点分布a=0.1;b=0.5;t=-10:0.01:10;% 对自变量采样,采样步长不宜太大。y_char=ve
2、ctorize(y);%为避免循环,把y改写成适合数组运算形式。<4>Y=feval(y_char,t,a,b);%在采样点上计算函数值。clf,plot(t,Y,'r');holdon,plot(t,zeros(size(t)),'k');%画坐标横轴xlabel('t');ylabel('y(t)'),holdoff图5.6.2.2-1函数零点分布观察图(3)利用zoom和ginput指令获得零点的初始近似值(在MATLAB指令窗中进行)zoomon%在MATLAB指令窗中运行,获局部放大图[tt,y
3、y]=ginput(5);zoomoff%在MATLAB指令窗中运行,用鼠标获5个零点猜测值。图5.6.2.2-2局部放大和利用鼠标取值图tt% 显示所得零点初始猜测值(该指令可在Notebook中运行)。tt= -2.0032-0.5415-0.00720.58761.6561(4)求靠近tt(4)的精确零点[t4,y4,exitflag]=fzero(y,tt(4),[],a,b)%<11> Zerofoundintheinterval:[0.57094,0.60418]. t4=0。5993y4=0
4、exitflag=1(5)求在tt(3)附近的精确零点从理论分析可知,是函数的一个零点。但即便是以十分靠近该零点的为搜索的初始值,也找不到,而却找到了另一个零点。原因是曲线没有穿越横轴。请看下面指令的运行结果。[t3,y3,exitflag]=fzero(y,tt(3),[],a,b) Zerofoundintheinterval:[0.58266,-0.59706]. t3=-0.5198y3=0exitflag=1(6)观察fzero所采用的options缺省设置,并更改控制计算精度的相对误差设置。o
5、p=optimset('fzero')% 提取fzero所采用的options缺省设置op= ActiveConstrTol:[]......Display:'final'......TolX:2.2204e-016TypicalX:[]op=optimset('tolx',0.01);% 把终止计算的相对误差阈值设置得较大op.TolX%观察新设置值。注意TolX字母的大小写。ans= 0.0100(7)利用新设置的选项参数重新求tt(4)附近的零点,以便比较。[t4n,y4n,exitflag]=fz
6、ero(y,tt(4),op,a,b)% 采用新的op设置参数。Zerofoundintheinterval:[0.57094,0.60418]. t4n=0。6042y4n=0。0017exitflag=1〖说明〗1、本例是采用内联函数形式求取函数零点的。2、若采用如下M函数文件(该文件必须放在搜索路径上)[y_M.m]functiony=y_M(t,a,b)y=sin(t).^2.*exp(-a*t)-b*abs(t);则相应的求零点指令是[t4m,y4m,exitflag]=fzero('y_M',
7、tt(4),[],a,b)•若直接用字符串表达函数,则应把被解函数自变量t改成x,参数a、b改成P1、P2。相应的具体指令如下P1=0.1;P2=0.5;y_C='sin(x).^2.*exp(-P1*x)-P2*abs(x)';[t4c,y4c,exitflag]=fzero(y_C,tt(4),[],P1,P2)5.6.3多元函数的零点【例5.6.3-1】求解二元函数方程组的零点。(1)从三维坐标初步观察两函数图形相交情况x=-2:0.05:2;y=x;[X,Y]=meshgrid(x,y);% 产生
8、x-y平面上网点坐标F1=sin(X-Y);F2=cos(X+Y);F0=zeros(size(X));surf(X,Y,F1),xlabel('x'),ylabel('y'),view([-31,62]),holdon,surf(X,Y,F2),surf(X,Y,F0),shadinginterp,holdoff图5.6.3-0两函数的三维相交图(2)在某区域观察两函数0等位线的交点情况clear; x=-2:0.5:2;y