MATLAB多元函数导数求极值或最优值_第1页
MATLAB多元函数导数求极值或最优值_第2页
MATLAB多元函数导数求极值或最优值_第3页
MATLAB多元函数导数求极值或最优值_第4页
MATLAB多元函数导数求极值或最优值_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、实验六多元函数的极值【实验目的】1 多元函数偏导数的求法。2 多元函数自由极值的求法3 多元函数条件极值的求法.4 学习掌握MATLAB软件有关的命令。【实验内容】求函数的极值点和极值【实验准备】1计算多元函数的自由极值对于多元函数的自由极值问题,根据多元函数极值的必要和充分条件,可分为以下几个步骤:步骤1.定义多元函数步骤2.求解正规方程,得到驻点步骤3.对于每一个驻点,求出二阶偏导数步骤4. 对于每一个驻点,计算判别式,如果,则该驻点是极值点,当为极小值, 为极大值;,如果,判别法失效,需进一步判断; 如果,则该驻点不是极值点.2计算二元函数在区域D内的最大值和最小值设函数在有界区域上连续

2、,则在上必定有最大值和最小值。求在上的最大值和最小值的一般步骤为:步骤1. 计算在内所有驻点处的函数值;步骤2. 计算在的各个边界线上的最大值和最小值;步骤3. 将上述各函数值进行比较,最终确定出在内的最大值和最小值。3函数求偏导数的MATLAB命令MATLAB中主要用diff求函数的偏导数,用jacobian求Jacobian矩阵。diff(f,x,n) 求函数f关于自变量x的n阶导数。jacobian(f,x)求向量函数f关于自变量x(x也为向量)的jacobian矩阵。可以用help diff, help jacobian查阅有关这些命令的详细信息【实验方法与步骤】 练习1 求函数的极值

3、点和极值.首先用diff命令求z关于x,y的偏导数>>clear; syms x y;>>z=x4-8*x*y+2*y2-3;>>diff(z,x)>>diff(z,y)结果为ans =4*x3-8*y ans =-8*x+4*y即再求解正规方程,求得各驻点的坐标。一般方程组的符号解用solve命令,当方程组不存在符号解时,solve将给出数值解。求解正规方程的MATLAB代码为:>>clear; >>x,y=solve('4*x3-8*y=0','-8*x+4*y=0','x

4、9;,'y')结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,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=2*x2B =-8 C =4由判别法可知和都是函数的极小值点,而点Q(0,0)不是极值点,实际上,和是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍点。>>clear; >>x=-5:0

5、.2:5; y=-5:0.2:5;>>X,Y=meshgrid(x,y);>>Z=X.4-8*X.*Y+2*Y.2-3;>>mesh(X,Y,Z)>>xlabel('x'),ylabel('y'),zlabel('z')结果如图6.1图6.1 函数曲面图可在图6.1种不容易观测极值点与鞍点,这是因为z的取值范围为-500,100,是一幅远景图,局部信息丢失较多,观测不到图像细节.可以通过画等值线来观测极值.>>contour(X,Y,Z, 600)>>xlabel('

6、x'),ylabel('y')结果如图6.2图6.2 等值线图由图6.2可见,随着图形灰度的逐渐变浅,函数值逐渐减小,图形中有两个明显的极小值点和.根据提梯度与等高线之间的关系,梯度的方向是等高线的法方向,且指向函数增加的方向.由此可知,极值点应该有等高线环绕,而点周围没有等高线环绕,不是极值点,是鞍点.练习 求函数在条件下的极值.构造Lagrange函数求Lagrange函数的自由极值.先求关于的一阶偏导数>>clear; syms x y k>>l=x*y+k*(x+y-1);>>diff(l,x)>>diff(l,y

7、)>>diff(l,k)得再解正规方程>>clear; syms x y k>>x,y,k=solve('y+k=0','x+k=0','x+y-1=0','x','y','k')得进过判断,此点为函数的极大值点,此时函数达到最大值.练习3 抛物面被平面截成一个椭圆,求这个椭圆到原点的最长与最短距离.这个问题实际上就是求函数在条件及下的最大值和最小值问题.构造Lagrange函数求Lagrange函数的自由极值.先求关于的一阶偏导数>>clear; s

8、yms x y z u v>>l=x2+y2+z2+u*(x2+y2-z)+v*(x+y+z-1);>>diff(l,x)>>diff(l,y)>>diff(l,z)>>diff(l,u)>>diff(l,v)得再解正规方程>>clear;>>x,y,z,u,v=solve('2*x+2*x*u+v=0','2*y+2*y*u+v=0','2*z-u+v=0','x2+y2-z=0','x+y+z-1=0','x

9、','y','z','u','v')得上面就是Lagrange函数的稳定点,求所求的条件极值点必在其中取到。由于所求问题存在最大值与最小值(因为函数在有界闭集,上连续,从而存在最大值与最小值),故由求得的两个函数值,可得椭圆到原点的最长距离为,最短距离为。练习4 求函数在上半圆上的最大值和最小值。首先画出等高线进行观测,相应的MATLAB程序代码为:>>clear; >>x=-4:0.1:4; y=-4:0.1:4;>>X,Y=meshgrid(x,y);>>Z=X.2+Y.

10、2-4*X-2*Y+7;>>contour(X,Y,Z,100)>>xlabel('x'),ylabel('y')结果如图6.3图6.3 等值线观测图6.3可看出,在区域内部有唯一的驻点,大约位于在该点处汉书趣的最小值。在圆弧与直线的交点处取得最大值,大约位于。下面通过计算加以验证。求函数在区域内的驻点,计算相应的函数值。求z关于x,y的偏导数>>clear; syms x y;>>z=x2+y2-4*x-2*y+7;>>diff(z,x)>>diff(z,y)结果得解正规方程>>

11、;clear; x,y=solve('2*x-4=0','2*y-2=0','x','y')得驻点为(2,1),相应的函数值为2。求函数在直线边界上的最大值和最小值。将代入原函数,则二元函数变为一元函数首先观测此函数图形,相应的MATLAB程序代码为:>>x=-4:0.01:4; y=x.2-4*x+7;>>plot(x,y);>>xlabel('x'),ylabel('z')结果如图6.4所示图6.4 函数图由图6.4可看出,当时函数取得最大值,时函数取得最小值

12、。下面用计算验证。对函数求导>>clear; syms x ;>>z=x2-4*x+7; diff(z,x)得,可知驻点为,而边界点为,计算着三个点上的函数值可得当时函数取得最大值39,时函数取得最小值3。求函数在圆弧边界线上的最大值和最小值。此边界线可用参数方程表示。则二元函数变为一元函数首先观测此函数图形,相应的MATLAB程序代码为:>>t=0:0.01*pi:pi; z=-16*cos(t)-8*sin(t)+23;>>plot(t,z);>>xlabel('t'),ylabel('z')结果如图6.5所示图6.5 函数图由图6.5可看出,当时函数取得最小值,时函数取得最大值。下面用计算验证。对函数求导>>clear; syms t ;>>z=-16*cos(t)-8*sin(t)+23; diff(z,t)得,解正规方程>>clear; >>t=solve('16*sin(t)-8*cos(t)=0','t')>>numeric(t) %求出t的数值得,边

温馨提示

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

评论

0/150

提交评论