2第一部分的2-6讲函数的等高线

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

33第二讲函数的等高线、梯度线及有关的作图问题——鲨鱼袭击目标的前进途径等高线和梯度线有广泛的实际应用,例如在地理学中绘制地貌图,在气象学中绘制气象图等等.本实验通过鲨鱼袭击目标这一例子介绍二元函数的等高线和梯度线的绘制,最后介绍用等高线来做一元隐函数的图形及微分方程的积分曲线.2.1等高线的绘制二元函数),(yxfz在空间表示的是一张曲面,这个曲面与平面cz的交线在xoy面上的投影曲线cyxf),(称为函数),(yxfz的一条等高线,我们可以用Matlab作出等高线的图形.等高线的作图命令为“Contour”,最基本格式为Contour[二元函数,{自变量1,自变量1最小值,自变量1最大值},{自变量2,自变量2最小值,自变量2最大值}]例1作出)(22yxxez在区间32,22yx上的等高线.解[X,Y]=meshgrid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.^2-Y.^2);[C,h]=contour(X,Y,Z);set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)colormapcool运行后见图(2.1).2.2矢量场图矢量场图(又称速度图)是指由指令quiver实现的.它主要用于描写函数),(yxfz在点),(yx的梯度大小和方向。其一般的调用格式为:quiver(X,Y,DZX,DZY)例2作出函数)(22yxxez的等高线和矢量场.解[X,Y]=meshgrid(-2:.2:2,-1:.2:2);Z=X.*exp(-X.^2-Y.^2);34[DX,DY]=gradient(Z,.2,.2);%求二元函数矩阵Z的梯度指令,0.2为x、y方向上的计算步长.DX,DY是yzxz,.[C,h]=contour(X,Y,Z);holdonquiver(X,Y,DX,DY)colormaphsvholdoff运行后见图(2.2).图(2.1)等高线及其标注图(2.2)等高线和矢量场2.3梯度线的描绘35设L为平面曲线,如果L上任意一点处的切线与函数),(yxfz在该店处的梯度位于同一直线上,则称L为),(yxfz的梯度线。现在来讨论如何作出函数),(yxfz的梯度线。下面我们一等步长的折线段来近似模拟函数的梯度线。设步长为,从点0P(00,yx)出发,沿梯度方向前进得到点),(111yxP,即),(),(),(0020020001yxfyxfyxfxxyxx),(),(),(0020020001yxfyxfyxfyyyxy,再从),(111yxP出发沿梯度线向前进得到点),(222yxP,依次得到一列点,利用plot做出此点集的图形,即得梯度线的图形.例3.作出函数22yxz的梯度线.clearallt=cputime;symsxyS=sym(x^2-y^2);Sx=diff(S,'x');Sy=diff(S,'y');x0=1;y0=1;lamda=0.01;i=1;sx(1)=x0;sy(1)=y0;fori=2:400fx=subs(Sx,{x,y},{sx(i-1),sy(i-1)});fy=subs(Sy,{x,y},{sx(i-1),sy(i-1)});sx(i)=sx(i-1)+lamda*fx./sqrt(fx.^2+fy.^2);sy(i)=sy(i-1)+lamda*fy./sqrt(fx.^2+fy.^2);36endplot(sx,sy)cputime-t运行后见图(2.3).图(2.3)梯度线2.4鲨鱼袭击目标的前进途径海洋生物学家发现,当鲨鱼在海水中察觉到血液的存在时,就会沿着血液浓度增加得最快的方向前进去寻找目标.根据在海水中世纪测试的结果,如果以流血目标处作为原点在海面上建立直角坐标系,则在海面上点P(x,y)处的血液浓度近似等于42210/)2(),(yxeyxf(x,y的单位为m,f(x,y)单位的百万分之一)键入[x,y]=meshgrid(-1:.05:1,-1:.05:1);z=exp((-x.^2-2*y.^2)/10^4);[C,h]=contour(x,y,z);holdon运行后,作为函数的等高线,得到图(2.4).由题设条件和梯度的性质可知,鲨鱼袭击目标的前进途径即为),(yxf的梯度线,下面作出),(yxf的梯度线,有前面梯度线的绘制可知,37图(2.4)42210/)2(),(yxeyxf的等高线symsxyS=sym(exp((-x.^2-2*y.^2)/10^4));;Sx=diff(S,'x');Sy=diff(S,'y');x0=1;y0=1;lamda=0.01;i=1;sx(1)=x0;sy(1)=y0;fori=2:400fx=subs(Sx,{x,y},{sx(i-1),sy(i-1)});fy=subs(Sy,{x,y},{sx(i-1),sy(i-1)});sx(i)=sx(i-1)+lamda*fx./sqrt(fx.^2+fy.^2);sy(i)=sy(i-1)+lamda*fy./sqrt(fx.^2+fy.^2);endplot(sx,sy)holdon得到图(2.5):38图(2.5)鲨鱼袭击目标的前进途径再运用holdon命令把等高线和梯度线在同一坐标系中显示,得图(6).图(2.6)等高线和梯度线函数的梯度线在实际中有广泛的应用,例如在温度场总热量的流动也是沿着梯度线方向的.习题1.一块长方形的金属板,四个顶点的坐标是(1,1),(5,1),(1,3),(5,3).在坐标原点处有一个火焰,它使金属板受热.假定板上任意一点处的温度与该点到原点的距离成反比.在(3,2)处有一个青蛙,问这只青蛙应沿什么方向爬行才能最快到达较凉快的地点?(应沿由热变冷变化最骤烈的方向(即梯度方向)爬行)39第三讲函数的极值、最值及有关的最优化问题——水轮机最优化问题最优化概念反映了人类实践活动中十分普遍的现象,即要在尽可能节省人力、物力和时间前提下,争取获得在可能范围内的最佳效果,因此,最优化问题成为现代数学的一个重要课题,涉及统筹、线性规划一排序不等式等内容。3.1多元函数的偏导数1.调用格式一:diff('多元函数','自变量',n)其中,n为所求偏导数的阶数.例1已知yxz2cos2,求xyzxz2,和22yz.解打开M文件编辑窗口,在其中输入下面命令集:pzpx=diff('x^2*cos(2*y)','x')p2zpypx=diff(pzpx,'y')p2zpy2=diff('x^2*cos(2*y)','y',2)取名为exa9保存,再在命令窗口中输入命令exa9,程序运行结果如下:pzpx=2*x*cos(2*y)p2zpypx=-4*x*sin(2*y)p2zpy2=-4*x^2*cos(2*y)即)2sin(4),2cos(22yxxyzyxxz,)2cos(4222yxyz.2.调用格式二:symsxyz…diff(f,自变量,n)例2已知)5sin(32zyx,求zyxuyxuxu32,,解在命令行中依次输入:40symsxyzu=sin(x^2-y^3+5*z);ux=diff(u,x);uxy=diff(ux,y);uxyz=diff(uxy,z);uz3=diff(u,z,3);ux,uxyz,uz3运行结果如下:ux=2*cos(x^2-y^3+5*z)*xuxyz=30*cos(x^2-y^3+5*z)*y^2*xuz3=-125*cos(x^2-y^3+5*z)3.2隐函数的导数在Matlab中没有直接求隐函数导数的命令,但可调用Maple中求隐函数导数的命令,调用格式如下:maple('implicitdiff(f(u,x,y,z,…,)=0,u,x)')例3求由多元方程x2+y2+z2=xyz所确定的隐函数xz解在命令行中输入:pzpx=maple('implicitdiff(x^2+y^2+z^2-x*y*z=0,z,x)')运行结果是:pzpx=(2*x-y*z)/(-2*z+x*y)即xyzxyz3.3一元函数的极(或最)值例1求xefxsin2在80x中的最小值与最大值主程序为:f='2*exp(-x).*sin(x)';fplot(f,[0,8]);%作图语句41[xmin,ymin]=fminbnd(f,0,8)f1='-2*exp(-x).*sin(x)';[xmax,zmin]=fminbnd(f1,0,8)ymax=-zmin运行结果:xmin=3.9270ymin=-0.0279xmax=0.7854ymax=0.64483.4多元函数的极(或最)值在Matlab中同样有求多元函数的极(或最)小值的函数,但由于多元函数的形式比较复杂,不同情况用到不同的Matlab函数.若要求多元函数u在某一区域的极(或最)大值,可转化为求u在该区域内的极(或最)小值.1.非线性无约束情形求极(或最)小值点或极(或最)小值的调用格式是:[x,fval]=fminsearch(‘f’,x0)%fminsearch是不能设定约束范围的f是被最小化的目标函数名,x0是求解的初始值向量.例4求二元函数2331042),(yxyxyxyxf的最值点和最值.解打开M文件编辑窗口,在其中输入下面命令集:%必须对自变量进行转化x=x(1),y=x(2)[Xmin,fmin]=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2',[0,0]);[Xmax,Fmin]=fminsearch('-2*x(1)^3-4*x(1)*x(2)^3+10*x(1)*x(2)-x(2)^2',[0,0]);fmax=-Fmin;Xmin,fminXmax,fmax取名为exa10保存,再在命令窗口中输入命令exa10,程序运行结果如下:Xmin=1.00160.8335fmin=-3.3241Xmax=-1.00001.0000fmax=5.0000422.非线性有约束情形非线性有约束优化问题的数学模型如下:ubxlbbeqxAeqbxAxceqxcxM,,,0)(,0)(),inf(式中,lbbeqbx,,,和ub是向量,A和Aeq是矩阵,)(xc和)(xceq为函数,返回量.)(),(xcxf和)(xceq可以是非线性函数.求极(或最)小值点或极(或最)小值的调用格式如下:[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,lb,ub,nonlcon)nonlcon参数计算非线性不等式约束c(x)=0和非线性等式约束ceq(x)=0.例5求表面积为26m的体积最大的长方体体积.解设长方体的长、宽、高分别为x1、x2、x3,则f(x)=-x(1)*x(2)*x(3),S.tx(1)*x(2)+x(2)*x(3)+x(3)*x(1)-3=0,x(i)0,i=1,2,3.⑴建立函数文件fun1打开M文件编辑窗口,在其中输入下面命令集:functionF=fun1(x)%函数文件必须是function开头F=-x(1)*x(2)*x(3);单击“保存”按钮,自动取名为fun1,再击保存.⑵建立非线性约束函数文件yceqfunction[c,ceq1]=yceq1(x)c=x(1)*x(2)+x(2)*x(3)+x(3)*x(1)-3;ceq1=[];保存方法同上,自动取名为yceq1,再击保存.⑶编制主程序:打开M文件编辑窗口,在其中输入下面命令集:x0=[3;3;3];%给长宽高一个初值A=[];b=[];Aeq=[];beq=[];lb=[0,0,0];ub=[];[xmax,fmin]=fmincon('fun1',x0,A,b,Aeq,beq,lb,ub,'yceq1');%函数要

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功