预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验六多元函数的极值 【实验目的】 多元函数偏导数的求法。 多元函数自由极值的求法 多元函数条件极值的求法. 学习掌握MATLAB软件有关的命令。 【实验内容】 求函数的极值点和极值 【实验准备】 1.计算多元函数的自由极值 对于多元函数的自由极值问题,根据多元函数极值的必要和充分条件,可分为以下几个步骤: 步骤1.定义多元函数 步骤2.求解正规方程,得到驻点 步骤3.对于每一个驻点,求出二阶偏导数 步骤4.对于每一个驻点,计算判别式,如果,则该驻点是极值点,当为极小值,为极大值;,如果,判别法失效,需进一步判断;如果,则该驻点不是极值点. 2.计算二元函数在区域D内的最大值和最小值 设函数在有界区域上连续,则在上必定有最大值和最小值。求在上的最大值和最小值的一般步骤为: 步骤1.计算在内所有驻点处的函数值; 步骤2.计算在的各个边界线上的最大值和最小值; 步骤3.将上述各函数值进行比较,最终确定出在内的最大值和最小值。 3.函数求偏导数的MATLAB命令 MATLAB中主要用diff求函数的偏导数,用jacobian求Jacobian矩阵。 diff(f,x,n)求函数f关于自变量x的n阶导数。 jacobian(f,x)求向量函数f关于自变量x(x也为向量)的jacobian矩阵。 可以用helpdiff,helpjacobian查阅有关这些命令的详细信息 【实验方法与步骤】 练习1求函数的极值点和极值.首先用diff命令求z关于x,y的偏导数 >>clear;symsxy; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans=4*x^3-8*y ans=-8*x+4*y 即再求解正规方程,求得各驻点的坐标。一般方程组的符号解用solve命令,当方程组不存在符号解时,solve将给出数值解。求解正规方程的MATLAB代码为: >>clear; >>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y') 结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,4).下面再求判别式中的二阶偏导数: >>clear;symsxy; >>z=x^4-8*x*y+2*y^2-3; >>A=diff(z,x,2) >>B=diff(diff(z,x),y) >>C=diff(z,y,2) 结果为 A=2*x^2 B=-8 C=4 由判别法可知和都是函数的极小值点,而点Q(0,0)不是极值点,实际上,和是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍点。 >>clear; >>x=-5:0.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('x'),ylabel('y') 结果如图6.2 图6.2等值线图 由图6.2可见,随着图形灰度的逐渐变浅,函数值逐渐减小,图形中有两个明显的极小值点和.根据提梯度与等高线之间的关系,梯度的方向是等高线的法方向,且指向函数增加的方向.由此可知,极值点应该有等高线环绕,而点周围没有等高线环绕,不是极值点,是鞍点. 练习2求函数在条件下的极值..构造Lagrange函数 求Lagrange函数的自由极值.先求关于的一阶偏导数 >>clear;symsxyk >>l=x*y+k*(x+y-1); >>diff(l,x) >>diff(l,y) >>diff(l,k) 得再解正规方程 >>clear;symsxyk >>[x,y,k]=solve('y+k=0','x+k=0','x+y-1=0','x','y','k') 得进过判断,此点为函数的极大值点,此时函数达到最大值. 练习3抛物面被平面截成一个椭圆,求这个椭圆到原点的最长与最短距离. 这个问题实际上就是求函数 在条件及下的最大值和最小值问题.构造Lagrange函数 求Lagrange函数的自由极值.先求关于的一阶偏导数 >>clear;symsxyzuv >>l=x^2+y^2+z^2+u*(x^2+y^2-z)+v*(x+y+z-1); >>diff(l,x) >>diff(l,y) >>diff(l,z) >>diff(l,u) >>diff(l,v) 得 再解正规方