多元函数的极值三

实验六 多元函数的极值

【实验目的】

1. 多元函数偏导数的求法。 2. 多元函数自由极值的求法 3. 多元函数条件极值的求法.

4. 学习掌握MATLAB 软件有关的命令。

【实验内容】

求函数32824-+-=y xy x z 的极值点和极值

【实验准备】

1.计算多元函数的自由极值

对于多元函数的自由极值问题,根据多元函数极值的必要和充分条件,可分为以下几个步骤:

步骤1.定义多元函数),(y x f z =

步骤2.求解正规方程0),(,0),(==y x f y x f y x ,得到驻点

步骤3.对于每一个驻点),(00y x ,求出二阶偏导数,,,2222

2y

z

C y x z B x z A ??=???=??= 步骤4. 对于每一个驻点),(00y x ,计算判别式2

B A

C -,如果02

>-B AC ,则该驻点是

极值点,当0>A 为极小值, 0

=-B AC ,判别法失效,需进一步判断;

如果02

<-B AC ,则该驻点不是极值点.

2.计算二元函数在区域D 内的最大值和最小值

设函数),(y x f z =在有界区域D 上连续,则),(y x f 在D 上必定有最大值和最小值。求),(y x f 在D 上的最大值和最小值的一般步骤为:

步骤1. 计算),(y x f 在D 内所有驻点处的函数值;

步骤2. 计算),(y x f 在D 的各个边界线上的最大值和最小值;

步骤3. 将上述各函数值进行比较,最终确定出在D 内的最大值和最小值。 3.函数求偏导数的MATLAB 命令

MATLAB 中主要用diff 求函数的偏导数,用jacobian 求Jacobian 矩阵。

可以用help diff, help jacobian 查阅有关这些命令的详细信息

【实验方法与步骤】

练习1 求函数32824-+-=y xy x z 的极值点和极值.首先用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 即

.48,843y x y

z y x x z +-=??-=??再求解正规方程,求得各驻点的坐标。一般方程组的符号解用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; 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

由判别法可知)2,4(--P 和)2,4(Q 都是函数的极小值点,而点Q(0,0)不是极值点,实际上,

)2,4(--P 和)2,4(Q 是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍

点。

>>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

图6.2 等值线图

由图6.2可见,随着图形灰度的逐渐变浅,函数值逐渐减小,图形中有两个明显的极小值点-

P和)2,4(

Q.根据提梯度与等高线之间的关系,梯度的方向是等高线的法方向,且指(-

,4

)2

Q周围没有等高线环绕,不向函数增加的方向.由此可知,极值点应该有等高线环绕,而点)0,0(

是极值点,是鞍点.

练习2 求函数xy z =在条件1=+y x 下的极值..构造Lagrange 函数

)1(),(-++=y x xy y x L λ

求Lagrange 函数的自由极值.先求L 关于λ,,y x 的一阶偏导数

>>clear; syms x y k >>l=x*y+k*(x+y-1); >>diff(l,x) >>diff(l,y) >>diff(l,k)

,1,,-+=??+=??+=??y x L x y L y x L λ

λλ再解正规方程 >>clear; syms x y k

>>[x,y,k]=solve('y+k=0','x+k=0','x+y-1=0','x','y','k')

得,2

1

,21,21-===

λy x 进过判断,此点为函数的极大值点,此时函数达到最大值.

练习3 抛物面2

2y x z +=被平面1=++z y x 截成一个椭圆,求这个椭圆到原点的最

长与最短距离.

这个问题实际上就是求函数

222),,(z y x z y x f ++=

在条件2

2y x z +=及1=++z y x 下的最大值和最小值问题.构造Lagrange 函数

)1()(),,(22222-+++-++++=z y x z y x z y x z y x L μλ

求Lagrange 函数的自由极值.先求L 关于μλ,,,,z y x 的一阶偏导数

>>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)

μλμλμλ+-=??++=??++=??z z

L y y y L x x x L 2,22,22

1,22-++=??-+=??z y x L z y x L μ

λ 再解正规方程

>>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')

.32,2

3

1,33117,3353 =±-==±-=±

-=z y x μλ 上面就是Lagrange 函数的稳定点,求所求的条件极值点必在其中取到。由于所求问题存在最大值与最小值(因为函数f 在有界闭集}1,:),,{(22=++=+z y x z y x z y x ,上连续,从而存在最大值与最小值),故由

359.)32,2

3

1,231(

=±-±-f 求得的两个函数值,可得椭圆到原点的最长距离为359+,最短距离为359-。

练习4 求函数72422+--+=y x y x z 在上半圆0,1622≥≤+y y x 上的最大值和最小值。

首先画出等高线进行观测,相应的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')

结果如图6.3

观测图6.3可看出,在区域D 内部有唯一的驻点,大约位于)1,2(在该点处汉书趣的最小值。在圆弧与直线的交点处取得最大值,大约位于)2,4(-。下面通过计算加以验证。

求函数在区域D 内的驻点,计算相应的函数值。求z 关于x,y 的偏导数

>>clear; syms x y; >>z=x^2+y^2-4*x-2*y+7; >>diff(z,x) >>diff(z,y)

结果得

,22,42-=??-=??y y

z

x x z 解正规方程 >>clear; [x,y]=solve('2*x-4=0','2*y-2=0','x','y')

得驻点为(2,1),相应的函数值为2。

求函数在直线边界44,0≤≤-=x y 上的最大值和最小值。将0=y 代入原函数,则二元函数变为一元函数

.44,742≤≤-+-=x x x z

首先观测此函数图形,相应的MATLAB 程序代码为:

>>x=-4:0.01:4; y=x.^2-4*x+7; >>plot(x,y);

>>xlabel('x'),ylabel('z')

结果如图6.4所示

由图6.4可看出,当4-=x 时函数取得最大值,2=x 时函数取得最小值。下面用计算验证。对函数求导

>>clear; syms x ; >>z=x^2-4*x+7; diff(z,x) 得

42-=x dx

dz

,可知驻点为2=x ,而边界点为4±=x ,计算着三个点上的函数值可得当4-=x 时函数取得最大值39,2=x 时函数取得最小值3。

求函数在圆弧边界线上0,1622

≥≤+y y x

的最大值和最小值。此边界线可用参数方程

π≤≤==t t y t x 0,sin 4,cos 4

表示。则二元函数变为一元函数

23sin 8cos 16+--=t t z

首先观测此函数图形,相应的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可看出,当5.0≈t 时函数取得最小值,π=x 时函数取得最大值。下面用计算验证。对函数求导

>>clear; syms t ;

>>z=-16*cos(t)-8*sin(t)+23; diff(z,t) 得

t t dt

dz

cos 8sin 18-=,解正规方程 >>clear;

>>t=solve('16*sin(t)-8*cos(t)=0','t') >>numeric(t) %求出t 的数值

得4636,02

1

arctan

≈=t ,边界点为π,0=t ,计算着三个点上的函数值可得当4636.0=t 时函数取得最小值0.5111,)0,4(,=-==y x t π时函数取得最小值39。

综上所述,在点(2,1)处函数取得最小值2,在点(-4,0)处函数取得最大值39。

【练习与思考】

1. 求144

4

+-+=xy y x z 的极值,并对图形进行观测。

2. 求函数()2

2

2,y x y x f +=在圆周12

2

=+y x 的最大值和最小值。

3. 在球面12

22=++z y x 求出与点(3,1,-1)距离最近和最远点。

4. 求函数z y x z y x f 32),,(++=在平面1=+-z y x 与柱面12

2=+y x 的交线上

的最大值。 5. 求函数2

2y x z +=在三条直线1,1,1=+==y x y x 所围区域上的最大值和最小

值。

相关文档
最新文档