实验四多元函数的极值课件_第1页
实验四多元函数的极值课件_第2页
实验四多元函数的极值课件_第3页
实验四多元函数的极值课件_第4页
实验四多元函数的极值课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验4 多元函数的极值实验目的 了解多元函数偏导数的求法 了解多元函数极值的求法 了解多元函数条件极值的求法 了解多元函数插值的方法 学习、掌握MATLAB软件有关的命令实验内容1、求函数 的极值点和极值。2、求函数 在条件下 的极值。3、已知曲面上一些点(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),将这些点用二元函数插值的方法画出完整的曲面。4、求图像的极值点,并通过这些极值点对图像进行插值。实验准备1、计算多元函数的极值 对于多元函数的极值问题,根据多元函数极值的必要条件和充分

2、条件,可分为以下几个步骤:(2)求解正规方程 得到驻点;(1)定义多元函数 ; 2. 计算二元函数在区域D内的最大值和最小值 设函数z=f(x,y)在有界区域D上连续,则f(x,y)在D上必定有最大值和最小值。求f(x,y)在D上的最大 值和最小值的一般步骤为:计算f(x,y)在D内所有驻点处的函数值;b) 计算f(x,y)在D的各个边界线上的最大值和最小值;c) 将上述各函数值进行比较,最终确定出在D内的最大值和最小值。求函数偏导数的MATLAB命令 MATLAB中主要用diff求函数的偏导数。diff(f,x,n) 求函数f关于自变量x的n阶导数。实验方法与步骤练习1、求函数 的极值点和极

3、值。练习1、求函数 的极值点和极值。clear;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命令,当方程组不存在符号解时,solve将给出数值解。求解正规方程的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)下面再求判

4、别式中的二阶偏导数:clear;syms x y;z=x4-8*x*y+2*y2-3;A=diff(z,x,2)B=diff(diff(z,x),y)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) dis

5、p(极小值点,极小值是) fmin=x4-8*x*y+2*y2-3 elseif and(p0,A0) disp(极大值点,极大值是) fmax=x4-8*x*y+2*y2-3 elseif (p0) disp(不是极值点) end end由判别法可知 (-2,-4)和 (2,4)都是函数的极小值点,而点 (0,0)不是极值点。练习2、求函数 在条件 下的极大值。构造Lagrange函数求Lagrange函数的极值。先求 关于 的一阶偏导数,相应的matlab代码为Ex4_5clear;syms x y k;L=x*y+k*(x+y-1);Lx=diff(L,x)Ly=diff(L,y)Lk=

6、diff(L,k)运行得到Lx =y+kLy =x+k Lk =x+y-1解正规方程,clear;x1,y1,k1=solve(y+k=0,x+k=0,x+y-1=0,x, y, k); 所以,极大值点为(1/2,1/2),极大值点为1/4 练习3 抛物面 被平面 截成了一个椭圆,求这个椭圆到原点的最长距离与最短距离。 在条件 及 下的最大值和最小值。构造Lagrange函数求Lagrange函数的极值。先求 关于 的一阶偏导数,相应的matlab代码为这个问题实际上就是求函数Ex4_6clear;syms x y z u v;l=x2+y2+z2+u*(x2+y2-z)+v*(x+y+z-1

7、);diff(l,x)diff(l,y)diff(l,z)diff(l,u)diff(l,v)再解正规方程得Ex4_7即得Lagrange函数的驻点,所求的条件极值点必在其中得到。由于所求问题存在最大值与最小值(因为函数f在有界闭集上连续,从而存在最大值与最小值),故由可得椭圆到原点的最长距离为 ,最短距离为 。得练习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),将这些点用二元函数插值的方法画出完整的曲面。首先看这些原始数据的柄图数据是残缺不全的,需要用插值的方

8、法画出完整的曲面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)是一维插值函数,其中x,y是已存在的数据,xi是要插入其中的数据点。method是:nearnest(最近点插值)、 linear(线性插值)、cubic(三次分段插值)

9、、 spline(三次样条插值),缺省是linear。interp2(x,y,z,xi,yi,method) 或interp1(x,y,z,xi,yi)是二维插值函数,其中x,y是已有二维数据,z是由x,y决定的数值,xi,yi是已知的一对数值,通过插值来找到相应的zi值。参数method有:nearest、 bilinear、bicubic、 spline。griddata(x,y,z,xi,yi,method) 或griddata(x,y,z,xi,yi)也是二维插值函数,与interp2相似,不同之处在于:Interp2严格要求x,y单调;而griddate可以处理不规则数据 对上面数据

10、用插值的方法画出完整的曲面,相应的matlab程序代码如下:xi=0:0.2:3;yi=2:0.2:4; %选定x,y的范围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的所有局部极小值点,B是二值图

11、像问题:为什么要求图像的极值点?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:col;x1,y1=meshgrid(xr,yr);u=g

12、riddata(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(Ima,2);height=size(Im

13、a,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;动画效果动画生成的步骤创建帧矩阵 moviein对动画中的每一帧生成图形,并把它们放到帧矩阵中 getframe从帧矩阵中回放动画moviein、 getframe、movie指令x=-8:0.5:8; XX,YY=meshgrid(x);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,10) %演示动画10次数学实验的大门刚刚打开,里面的世界很精彩,愿你在这个五彩缤纷的世界里获得知识、获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论