多元函数的极值
实验六 多元函数的极值
【实验目的】
1( 多元函数偏导数的求法。
2( 多元函数自由极值的求法
3( 多元函数条件极值的求法.
4( 学习掌握MATLAB软件有关的命令。 【实验内容】
42z,x,8xy,2y,3求函数的极值点和极值 【实验准备】
1(计算多元函数的自由极值
对于多元函数的自由极值问
,根据多元函数极值的必要和充分条件,可分为以下几个步骤:
步骤1.定义多元函数z,f(x,y)
步骤2.求解正规方程,得到驻点 f(x,y),0,f(x,y),0xy
222,z,z,z(x,y)步骤3.对于每一个驻点,求出二阶偏导数A,B,C,,,,0022,x,y,x,y
22(x,y)步骤4. 对于每一个驻点,计算判别式,如果,则该驻点是AC,BAC,B,000
1
2极值点,当为极小值, 为极大值;,如果,判别法失效,需进一步判断; AC,B,0A,0A,0
2如果,则该驻点不是极值点. AC,B,0
2(计算二元函数在区域D内的最大值和最小值
DD设函数在有界区域上连续,则在上必定有最大值和最小值。z,f(x,y)f(x,y)
D求在上的最大值和最小值的一般步骤为: f(x,y)
D步骤1. 计算在内所有驻点处的函数值; f(x,y)
D步骤2. 计算在的各个边界线上的最大值和最小值; f(x,y)
D步骤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查阅有关这些命令的详细信息 【实验方法与步骤】
42z,x,8xy,2y,3 练习1 求函数的极值点和极值.首先用diff命令求z关于x,y的偏导数
>>clear; syms x y;
>>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
,z,z3,4x,8y,,,8x,4y.即再求解正规方程,求得各驻点的坐标。一般方程组的符,x,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).下面再求判别式中的二阶偏导数:
2
>>clear; syms x y;
>>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)不是极值点,实际上,P(,4,,2)Q(4,2)
和是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍P(,4,,2)Q(4,2)
点。
>>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.2种不容易观测极值点与鞍点,这是因为z的取值范围为[-500,100],是一幅远景图,
局部信息丢失较多,观测不到图像细节.可以通过画等值线来观测极值.
>>contour(X,Y,Z, 600)
>>xlabel('x'),ylabel('y') 结果如图6.2
3
图6.2 等值线图
由图6.2可见,随着图形灰度的逐渐变浅,函数值逐渐减小,图形中有两个明显的极小值点
和.根据提梯度与等高线之间的关系,梯度的方向是等高线的法方向,且指P(,4,,2)Q(4,2)
向函数增加的方向.由此可知,极值点应该有等高线环绕,而点周围没有等高线环绕,不Q(0,0)是极值点,是鞍点.
z,xy练习, 求函数在条件下的极值..构造Lagrange函数x,y,1
L(x,y),xy,,(x,y,1)
L求Lagrange函数的自由极值.先求关于x,y,,的一阶偏导数
>>clear; syms x y k
>>l=x*y+k*(x+y-1);
>>diff(l,x)
>>diff(l,y)
>>diff(l,k)
,L,L,L,,,y,,,x,,,x,y,1,得再解正规方程 ,,x,y,
>>clear; syms x y k
>>[x,y,k]=solve('y+k=0','x+k=0','x+y-1=0','x','y','k')
111得进过判断,此点为函数的极大值点,此时函数达到最大值.x,,y,,,,,,222
22z,x,y练习3 抛物面被平面x,y,z,1截成一个椭圆,求这个椭圆到原点的最长与最短距离.
4
这个问题实际上就是求函数
222f(x,y,z),x,y,z
22z,x,y在条件及下的最大值和最小值问题.构造Lagrange函数x,y,z,1
22222L(x,y,z),x,y,z,,(x,y,z),,(x,y,z,1)
L求Lagrange函数的自由极值.先求关于的一阶偏导数 x,y,z,,,,
>>clear; syms x y z u v
>>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)
得
,L,L,L,2x,2x,,,2y,2y,,,2z,,,,,,,, ,x,y,z
,L,L22,x,y,z,,x,y,z,1 ,,,,
再解正规方程
>>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',
'x^2+y^2-z=0','x+y+z-1=0','x','y','z','u','v') 得
511,1,3,,,3,3,,,,7,3,x,y,,z,2,3. 332
上面就是Lagrange函数的稳定点,求所求的条件极值点必在其中取到。由于所求问题存在
22{(x,y,z):x,y,z,x,y,z,1}最大值与最小值(因为函数f在有界闭集,上连续,从而存在最大值与最小值),故由
,1,3,1,3f(,,2,3.),9,53 22
9,539,53求得的两个函数值,可得椭圆到原点的最长距离为,最短距离为。
2222z,x,y,4x,2y,7x,y,16,y,0练习4 求函数在上半圆上的最大值和
5
最小值。
首先画出等高线进行观测,相应的MATLAB程序代码为:
>>clear;
>>x=-4:0.1:4; y=-4:0.1:4;
>>[X,Y]=meshgrid(x,y);
>>Z=X.^2+Y.^2-4*X-2*Y+7;
>>contour(X,Y,Z,100)
>>xlabel('x'),ylabel('y') 4
结果如图6.3
2
0
y
-2
-4
-4-2024
图6.3 等值线 x
D观测图6.3可看出,在区域内部有唯一的驻点,大约位于在该点处汉书趣的最(2,1)小值。在圆弧与直线的交点处取得最大值,大约位于。下面通过计算加以验证。(,4,2)
D求函数在区域内的驻点,计算相应的函数值。求z关于x,y的偏导数
>>clear; syms x y;
>>z=x^2+y^2-4*x-2*y+7;
>>diff(z,x)
>>diff(z,y)
,z,z,2x,4,,2y,2,结果得解正规方程 ,x,y
>>clear; [x,y]=solve('2*x-4=0','2*y-2=0','x','y')
得驻点为(2,1),相应的函数值为2。
求函数在直线边界y,0,,4,x,4上的最大值和最小值。将y,0代入原函数,则二
元函数变为一元函数
2z,x,4x,7,,4,x,4. 首先观测此函数图形,相应的MATLAB程序代码为:
>>x=-4:0.01:4; y=x.^2-4*x+7;
>>plot(x,y);
>>xlabel('x'),ylabel('z')
结果如图6.4所示
6
40
35
30
25
20
15z
10
5
0-4-3-2-101234
x
图6.4 函数图
由图6.4可看出,当时函数取得最大值,时函数取得最小值。下面用计算x,,4x,2
验证。对函数求导
>>clear; syms x ;
>>z=x^2-4*x+7; diff(z,x)
dz得,可知驻点为,而边界点为,计算着三个点上的函数值可得当,2x,4x,2x,,4dx
时函数取得最大值39,时函数取得最小值3。 x,,4x,2
22x,y,16,y,0求函数在圆弧边界线上的最大值和最小值。此边界线可用参数方程
x,4cost,y,4sint,0,t,,
示。则二元函数变为一元函数
z,,16cost,8sint,23
首先观测此函数图形,相应的MATLAB程序代码为: >>t=0:0.01*pi:pi; z=-16*cos(t)-8*sin(t)+23; >>plot(t,z);
>>xlabel('t'),ylabel('z') 40
结果如图6.5所示
35
30
25
20z
15
10
500.511.522.533.5
t
图6.5 函数图 由图6.5可看出,当时函数取得最小值,x,,时函数取得最大值。下面用计算t,0.5
7
验证。对函数求导
>>clear; syms t ;
>>z=-16*cos(t)-8*sin(t)+23; diff(z,t) dz得,解正规方程 ,18sint,8costdt
>>clear;
>>t=solve('16*sin(t)-8*cos(t)=0','t')
>>numeric(t) %求出t的数值
1得,边界点为,计算着三个点上的函数值可得当时t,0,,t,arctan,0,4636t,0.46362
函数取得最小值0.5111,时函数取得最小值39。 t,,,(x,,4,y,0)
综上所述,在点(2,1)处函数取得最小值2,在点(-4,0)处函数取得最大值39。
【练习与思考】
44z,x,y,4xy,11. 求的极值,并对图形进行观测。
2222,,fx,y,x,2yx,y,12. 求函数在圆周的最大值和最小值。 222x,y,z,13. 在球面求出与点(3,1,-1)距离最近和最远点。
22x,y,14. 求函数在平面与柱面的交线上f(x,y,z),x,2y,3zx,y,z,1
的最大值。
22z,x,y5. 求函数在三条直线所围区域上的最大值和最小x,1,y,1,x,y,1
值。
8