1、实验实验4 多元函数的极值多元函数的极值实验目的实验目的v 了解多元函数偏导数的求法了解多元函数偏导数的求法v 了解多元函数极值的求法了解多元函数极值的求法v 了解多元函数条件极值的求法了解多元函数条件极值的求法v 了解多元函数插值的方法了解多元函数插值的方法v 学习、掌握学习、掌握MATLAB软件有关的命令软件有关的命令实验内容实验内容1、求函数、求函数 的极值点和极值。的极值点和极值。42823zxxyy2、求函数、求函数 在条件下在条件下 的极值。的极值。zxy1xy3、已知曲面上一些点、已知曲面上一些点(2,2,80),(3,2,82),(4,2,84)(0,3,79),(2,3,61
2、),(3,3,65),(0,4,84),(1,4,84),(4,4,86),将这些点用二元函数插值的方法画出完,将这些点用二元函数插值的方法画出完整的曲面。整的曲面。4、求图像的极值点,并通过这些极值点对图像、求图像的极值点,并通过这些极值点对图像进行插值。进行插值。实验准备实验准备1、计算多元函数的极值计算多元函数的极值 对于多元函数的极值问题,根据多元对于多元函数的极值问题,根据多元函数极值的必要条件和充分条件,可分函数极值的必要条件和充分条件,可分为以下几个步骤:为以下几个步骤:(2)求解正规方程)求解正规方程 得到驻点;得到驻点;00 ),(,),(yxfyxfyx(1)定义多元函数)
3、定义多元函数 ;),(yxfz ;,),(3在在驻驻点点处处的的值值求求出出二二阶阶偏偏导导数数)对对于于每每一一个个驻驻点点(2222200yzCyxzBxzAyx 无无法法判判别别不不是是极极值值点点极极大大值值极极小小值值是是极极值值点点如如果果。计计算算判判别别式式)对对于于每每一一个个驻驻点点(0,BAC0,BAC0A0A0,BACBAC),(4222200yx 2.计算二元函数在区域计算二元函数在区域D内的最大值和最小值内的最大值和最小值 设函数设函数z=f(x,y)在有界区域在有界区域D上连续,则上连续,则f(x,y)在在D上必定有最大值和最小值。求上必定有最大值和最小值。求f(
4、x,y)在在D上的最大上的最大 值和最小值的一般步骤为:值和最小值的一般步骤为:a)计算计算f(x,y)在在D内所有驻点处的函数值;内所有驻点处的函数值;b)计算计算f(x,y)在在D的各个边界线上的最大值和最的各个边界线上的最大值和最小值;小值;c)将上述各函数值进行比较,最终确定出在将上述各函数值进行比较,最终确定出在D内的最大值和最小值。内的最大值和最小值。3.求函数偏导数的求函数偏导数的MATLAB命令命令 MATLAB中主要用中主要用diff求函数的偏导数。求函数的偏导数。diff(f,x,n)求函数求函数f关于自变量关于自变量x的的n阶导数。阶导数。实验方法与步骤实验方法与步骤练习
5、练习1、求函数、求函数 的极值点和极值。的极值点和极值。42823zxxyy练习练习1、求函数、求函数 的极值点和极值。的极值点和极值。42823zxxyyclear;syms x y zx zy;z=x4-8*x*y+2*y2-3;zx=diff(z,x);zy=diff(z,y);首先用首先用diff命令求命令求z关于关于x,y的偏导数的偏导数Ex4_1结果为结果为zx=4*x3-8*y,zy=-8*x+4*y其次,求解正规方程,得到驻点的坐标其次,求解正规方程,得到驻点的坐标一般方程组的符号解用一般方程组的符号解用solve命令,当方程命令,当方程组不存在符号解时,组不存在符号解时,so
6、lve将给出数值解。将给出数值解。求解正规方程的求解正规方程的matlab代码为代码为:clear;x1,y1=solve(4*x3-8*y=0,-8*x+4*y=0,x,y);Ex4_2得到三个驻点,分别为得到三个驻点,分别为(-2,-4),(0,0),(2,4)下面再求判别式中的二阶偏导数下面再求判别式中的二阶偏导数:clear;clear;symssyms x y;x y;z=x4-8z=x4-8*x x*y+2y+2*y2-3;y2-3;A=diff(z,x,2)A=diff(z,x,2)B=diff(diff(z,x),y)B=diff(diff(z,x),y)C=diff(z,y,
7、2)C=diff(z,y,2)运行结果为:运行结果为:A=12*x2B=-8C=4Ex4_3最后,对于点(最后,对于点(-2,-4),(),(0,0)和()和(2,4)分别判别是否是极值点分别判别是否是极值点Ex4_4clear;N=input(please input points number,N=);for i=1:Nx=input(x=);y=input(y=);A=12*x2;B=-8;C=4;p=A*C-B*B;if p=0 disp(无法判别无法判别)elseif and(p0,A0)disp(极小值点极小值点,极小值是极小值是)fmin=x4-8*x*y+2*y2-3 else
8、if and(p0,A0)disp(极大值点极大值点,极大值是极大值是)fmax=x4-8*x*y+2*y2-3 elseif(p0)disp(不是极值点不是极值点)end end由判别法可知由判别法可知(-2,-4)和和(2,4)都是函数的极小值点,都是函数的极小值点,而点而点(0,0)不是极值点。不是极值点。练习练习2、求函数、求函数 在条件在条件 下的极下的极大值。大值。zxy1xy构造构造Lagrange函数函数(,)(1)L x yxyxy求求Lagrange函数的极值。先求函数的极值。先求 关关于于 的一阶偏导数,相应的的一阶偏导数,相应的matlab代代码为码为),(yxL,yx
9、Ex4_5clear;clear;symssyms x y k;x y k;L=xL=x*y+ky+k*(x+y-1);(x+y-1);Lx=diff(L,xLx=diff(L,x)Ly=diff(L,yLy=diff(L,y)Lk=diff(L,kLk=diff(L,k)运行得到运行得到Lx=y+kLy=x+k Lk=x+y-1解正规方程,解正规方程,clear;clear;x1,y1,k1=solve(y+kx1,y1,k1=solve(y+k=0,x+k=0,=0,x+k=0,x+y-1=0 x+y-1=0,x,y,k);x,y,k);111,222xy所以,极大值点为(所以,极大值点为
10、(1/2,1/2),极大值点为),极大值点为1/4 练习练习3 抛物面抛物面 被平面被平面 截成了一个截成了一个椭圆,求这个椭圆到原点的最长距离与最短距离。椭圆,求这个椭圆到原点的最长距离与最短距离。22zxy1xy z 222(,)f x y zxyz在条件在条件 及及 下的最大值和最小值。下的最大值和最小值。构造构造Lagrange函数函数22zxy1xyz222(,)()(1)L x y zx y zxyzx y z 求求Lagrange函数的极值。先求函数的极值。先求 关关于于 的一阶偏导数,相应的的一阶偏导数,相应的matlab代代码为码为(,)L x y z,x y z 这个问题实
11、际上就是求函数这个问题实际上就是求函数Ex4_6clear;clear;symssyms x y z u v;x y z u v;l=x2+y2+z2+ul=x2+y2+z2+u*(x2+y2-z)+v(x2+y2-z)+v*(x+y+z-1);(x+y+z-1);diff(l,x)diff(l,x)diff(l,y)diff(l,y)diff(l,z)diff(l,z)diff(l,u)diff(l,u)diff(l,v)diff(l,v)再解正规方程再解正规方程22,22,2lllxxyyzxyz得得Ex4_7122 zyxvlzyxul即得Lagrange函数的驻点,所求的条件极值点必在
12、其中得到。由于所求问题存在最大值与最小值(因为函数f在有界闭集上连续,从而存在最大值与最小值),故由可得椭圆到原点的最长距离为 ,最短距离为 。22(,):,1x y zxyz xyz1313(,23)9 5 322f 95 395 35111333,73,23332xyz 得得练习练习4 已知曲面上一些点已知曲面上一些点(2,2,80),(3,2,82),(4,2,84)(0,3,79),(2,3,61),(3,3,65),(0,4,84),(1,4,84),(4,4,86),将这些点用二元函数插值的,将这些点用二元函数插值的方法画出完整的曲面。方法画出完整的曲面。首先看这些首先看这些原始数
13、据的原始数据的柄图柄图数据是残缺数据是残缺不全的,需不全的,需要用插值的要用插值的方法画出完方法画出完整的曲面整的曲面clear;x=2,3,4,0,2,3,0,1,4;y=2,2,2,3,3,3,4,4,4;z=80,82,84,79,61,65,84,84,86;stem3(x,y,z);%画柄图命令画柄图命令title(Raw data);xlabel(x),ylabel(y),zlabel(z)Ex4_8画柄图的画柄图的MATLAB命令命令插值的插值的MATLAB命令命令interp1(x,y,xi,method)或或interp1(x,y,xi)是是一维插值函数,其中一维插值函数,其
14、中x,y是已存在的数据,是已存在的数据,xi是要插入其中的数据点。是要插入其中的数据点。method是:是:nearnest(最近点插值最近点插值)、linear(线性插值线性插值)、cubic(三次分段插值三次分段插值)、spline(三次样条插三次样条插值值),缺省是,缺省是linear。interp2(x,y,z,xi,yi,method)或或interp1(x,y,z,xi,yi)是二维插值函数,其中是二维插值函数,其中x,y是已有二维数据,是已有二维数据,z是由是由x,y决定的数值,决定的数值,xi,yi是已知的一对数值,通过插值来找到相应的是已知的一对数值,通过插值来找到相应的zi
15、值。参数值。参数method有:有:nearest、bilinear、bicubic、spline。griddata(x,y,z,xi,yi,method)或或griddata(x,y,z,xi,yi)也是二维插值函数,与也是二维插值函数,与interp2相似,不同之处在于:相似,不同之处在于:Interp2严格要求严格要求x,y单调;而单调;而griddate可以处理不规则数据可以处理不规则数据 对上面数据用插值的方法画出完整的曲面,相应对上面数据用插值的方法画出完整的曲面,相应的的matlab程序代码如下:程序代码如下:xi=0:0.2:3;yi=2:0.2:4;%选定选定x,y的范围的范
16、围X,Y=meshgrid(xi,yi);%产生网格向量产生网格向量X,YZ=griddata(x,y,z,X,Y,cubic);%cubic采用三角形三次插值采用三角形三次插值mesh(X,Y,Z);title(Griddata);xlabel(x),ylabel(y),zlabel(z)Ex4_9练习练习5 求图像的极值点,并通过这些极值点求图像的极值点,并通过这些极值点对图像进行插值。对图像进行插值。B=imregionalmax(A),求,求A的所有局部极的所有局部极大值点,大值点,B是二值图像是二值图像B=imregionalmin(A),求,求A的所有局部极的所有局部极小值点,小值
17、点,B是二值图像是二值图像问题:为什么要求图像的极值点?问题:为什么要求图像的极值点?Ex4_12clear all;I=imread(horseriding.bmp);I=double(I);row,col=size(I);t1=clock;%*Imax=imregionalmax(I);Imin=imregionalmin(I);Imax=double(Imax);Imin=double(Imin);Nmax,xmax,ymax,zmax=extremanum(I,Imax);Nmin,xmin,ymin,zmin=extremanum(I,Imin);%*xr=1:row;yr=1:co
18、l;x1,y1=meshgrid(xr,yr);u=griddata(xmax,ymax,zmax,x1,y1,cubic);v=griddata(xmin,ymin,zmin,x1,y1,cubic);%-display-figure(1);subplot(221);imshow(uint8(I);axis off subplot(222);imshow(uint8(u);axis off subplot(223);imshow(uint8(v);axis off%*t=etime(clock,t1)function Num,x,y,z=extremanum(I,Ima)width=size
19、(Ima,2);height=size(Ima,1);k=1;for h=1:height for w=1:width if Ima(h,w)=1 x(k)=h;y(k)=w;z(k)=I(h,w);k=k+1;end endendNum=k-1;动画效果动画效果动画生成的步骤动画生成的步骤1.创建帧矩阵创建帧矩阵 moviein2.对动画中的每一帧生成图形,并把它们对动画中的每一帧生成图形,并把它们放到帧矩阵中放到帧矩阵中 getframe3.从帧矩阵中回放动画从帧矩阵中回放动画 moviein、getframe、movie指令指令 x=-8:0.5:8;XX,YY=meshgrid(x);
20、r=sqrt(XX.2+YY.2)+eps;Z=sin(r)./r;surf(Z);%画出祯画出祯 theAxes=axis;%保存坐标值,使得所有帧都在同保存坐标值,使得所有帧都在同一坐标系中一坐标系中 fmat=moviein(20);%创建动画矩阵,保存创建动画矩阵,保存20祯祯 for j=1:20;%循环创建动画数据循环创建动画数据 surf(sin(2*pi*j/20)*Z,Z)%画出每一画出每一 步的曲面步的曲面 axis(theAxes)%使用相同的坐标系使用相同的坐标系 fmat(:,j)=getframe;%拷贝祯到矩阵拷贝祯到矩阵fmat中中 end movie(fmat
21、,10)%演示动画演示动画10次次数学实验的大门刚刚打开,数学实验的大门刚刚打开,里面的世界很精彩,愿你在里面的世界很精彩,愿你在这个五彩缤纷的世界里获得这个五彩缤纷的世界里获得知识、获得愉悦、获得对数知识、获得愉悦、获得对数学学科的新的认识!学学科的新的认识!上机练习上机练习1.求 的极值,并对图形进行观察。2.求出球面 上与点(3,1,-1)距离最近和最远点。4441zxyxy2221xyz3.在一丘陵地带测量高程,在一丘陵地带测量高程,x和和y方向每隔方向每隔100米测一个点,得高程见表米测一个点,得高程见表4-2,试拟合一曲面,试拟合一曲面,确定合适的模型,并由此找出最高点和该点确定合适的模型,并由此找出最高点和该点的高程。的高程。表表4-2 高程数据高程数据 y x100200300400100200300400636698680662697712674626624630598552478478412334