2024年5月1日发(作者:)

分析实验mg

实验三

【实验目的】

1.掌握MATLAB软件有关的命令。

2.多元函数自由极值的求法

3.多元函数条件极值的求法.

多元函数的极值

【实验准备】

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

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

骤:

步骤1.定义多元函数

z

=

f

(

x

,

y

)

步骤2.求解正规方程

f

x

(

x

,

y

)=0,

f

y

(

x

,

y

)=0

,得到驻点

2

z

2

z

2

z

步骤3.对于每一个驻点

(

x

0

,

y

0

)

,求出二阶偏导数

A

=,

B

=,

C

=

2

,

2

x

y

x

y

步骤4.对于每一个驻点

(

x

0

,

y

0

)

,计算判别式

AC

B

2

,如果

AC

B

2

>0

,则该驻点是

极值点,当

A

>0

为极小值,

A

<0

为极大值;,如果

AC

B

=0

,判别法失效,需进一步判断;

如果

AC

B

2

<0

,则该驻点不是极值点.

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

设函数

z

=

f

(

x

,

y

)

在有界区域

D

上连续,则

f

(

x

,

y

)

D

上必定有最大值和最小值。

f

(

x

,

y

)

D

上的最大值和最小值的一般步骤为:

步骤1.计算

f

(

x

,

y

)

D

内所有驻点处的函数值;

步骤2.计算

f

(

x

,

y

)

D

的各个边界线上的最大值和最小值;

步骤3.将上述各函数值进行比较,最终确定出在

D

内的最大值和最小值。

3.函数求偏导数的MATLAB命令

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

2

1

分析实验mg

diff(f,x,n)求函数f关于自变量x的n阶导数。

jacobian(f,x)求向量函数f关于自变量x(x也为向量)的jacobian矩阵。

可以用helpdiff,helpjacobian查阅有关这些命令的详细信息

【实验内容】

例1:求函数z=sin(x)sin(y)sin(x+y)在0

Matlab程序:

%定义二元函数

clc;clear;

symsxy;

z=sin(x)*sin(y)*sin(x+y);

ezsurf(x,y,z,[0,pi/2,0,pi/2]);

%求解驻点

dzx=diff(z,x)

dzy=diff(z,y)

[xx,yy]=solve('cos(x)*sin(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0',...

'sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0','x','y')

%对于定义域内的驻点求解二阶偏导函数

A=diff(z,x,2);

B=diff(diff(z,x),y);

C=diff(z,y,2);

D=A*C-B^2;

%判别极大值点

D1=subs(subs(D,'x',xx(1)),'y',yy(1))

A1=subs(subs(A,'x',xx(1)),'y',yy(1))

D2=subs(subs(D,'x',xx(2)),'y',yy(2))

A2=subs(subs(A,'x',xx(2)),'y',yy(2))

%极大值点和极大值

[xx(2)yy(2)]

JDZ=subs(subs(z,'x',xx(2)),'y',yy(2))

程序运行结果

ans=

[1/3*pi,1/3*pi]

JDZ=

3/8*3^(1/2)

0

理论分析知:当X=pi/3y=pi/3z有极大值3/8*3^(1/2)

2

分析实验mg

例2函数

z

=

x

4

−8

xy

+2

y

2

−3

的极值点和极值

求函数

z

=

x

−8

xy

+2

y

−3

的极值点和极值.首先用diff命令求z关于x,y的偏导数

>>clear;symsxy;

>>z=x^4-8*x*y+2*y^2-3;

>>diff(z,x)

>>diff(z,y)

42

结果为

ans=4*x^3-8*y

ans=-8*x+4*y

z

z

=4

x

3

−8

y

,=−8

x

+4

y

.

再求解正规方程,求得各驻点的坐标。一般方程组的符

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).下面再求判别式中的二阶偏导数:

>>

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

由判别法可知

P

(−4,−2)

Q

(4,2)

都是函数的极小值点,而点Q(0,0)不是极值点,实际上,

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

结果如图1

3

分析实验mg

图1函数曲面图

可在图2种不容易观测极值点与鞍点,这是因为z的取值范围为[-500,100],是一幅远景图,局部

信息丢失较多,观测不到图像细节.可以通过画等值线来观测极值.

>>contour(X,Y,Z,600)

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

结果如图6.2

图2等值线图

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

P

(−4,−2)

Q

(4,2)

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

向函数增加的方向.由此可知,极值点应该有等高线环绕,而点

Q

(0,0)

周围没有等高线环绕,不

是极值点,是鞍点.

例3函数

z

=

xy

在条件

x

+

y

=1

下的极值..构造Lagrange函数

L

(

x

,

y

)=

xy

+

λ

(

x

+

y

−1)

4

分析实验mg

求Lagrange函数的自由极值.先求

L

关于

x

,

y

,

λ

的一阶偏导数

>>clear;symsxyk

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

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

x

=

111

,

y

=,

λ

=−,

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

222

例4物面

z

=

x

2

+

y

2

被平面

x

+

y

+

z

=1

截成一个椭圆,求这个椭圆到原点的最长与

最短距离.

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

f

(

x

,

y

,

z

)=

x

2

+

y

2

+

z

2

在条件

z

=

x

2

+

y

2

x

+

y

+

z

=1

下的最大值和最小值问题.构造Lagrange函数

L

(

x

,

y

,

z

)=

x

2

+

y

2

+

z

2

+

λ

(

x

2

+

y

2

z

)+

µ

(

x

+

y

+

z

−1)

求Lagrange函数的自由极值.先求

L

关于

x

,

y

,

z

,

λ

,

µ

的一阶偏导数

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

L

L

L

=2

x

+2

+

µ

,=2

y

+2

+

µ

,=2

z

λ

+

µ

x

y

z

L

L

=

x

2

+

y

2

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

5

分析实验mg

λ

=−3±

511−1±3

3,

µ

=−7±3,

x

=

y

=,

z

=2∓3.

332

上面就是Lagrange函数的稳定点,求所求的条件极值点必在其中取到。由于所求问题存在

最大值与最小值(因为函数

f

在有界闭集

{(

x

,

y

,

z

):

x

+

y

=

z

,

x

+

y

+

z

=1}

,上连续,

从而存在最大值与最小值),故由

22

f

(

−1±3−1±3

,,2∓3.)=9∓53

22

求得的两个函数值,可得椭圆到原点的最长距离为

9+53

,最短距离为

9−53

例5函数

z

=

x

+

y

−4

x

−2

y

+7

在上半圆

x

+

y

≤16,

y

≥0

上的最大值和最小

值。

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

2222

结果如图3

4

2

0

y

-2

-4

-4-2024

3等值线

观测图3可看出,在区域

D

内部有唯一的驻点,大约位于

(2,1)

在该点处汉书趣的最小

值。在圆弧与直线的交点处取得最大值,大约位于

(−4,2)

。下面通过计算加以验证。

求函数在区域

D

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

>>clear;symsxy;

>>z=x^2+y^2-4*x-2*y+7;

>>diff(z,x)

>>diff(z,y)

6

分析实验mg

结果得

z

z

=2

x

−4,=2

y

−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

代入原函数,则二

元函数变为一元函数

z

=

x

2

−4

x

+7,−4≤

x

≤4.

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

>>x=-4:0.01:4;y=x.^2-4*x+7;

>>plot(x,y);

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

结果如图4所示

40

35

30

25

20

z

15

10

5

0

-4-3-2-101234

图4函数图

由图4可看出,当

x

=−4

时函数取得最大值,

x

=2

时函数取得最小值。下面用计算

验证。对函数求导

>>clear;symsx;

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

dz

=2

x

−4

,可知驻点为

x

=2

,而边界点为

x

=±4

,计算着三个点上的函数值可得当

dx

x

=−4

时函数取得最大值39,

x

=2

时函数取得最小值3。

求函数在圆弧边界线上

x

+

2

y

2

≤16,

y

≥0

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

x

=4cos

t

,

y

=4sin

t

,0≤

t

π

表示。

则二元函数变为一元函数

z

=−16cos

t

−8sin

t

+23

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

>>t=0:0.01*pi:pi;z=-16*cos(t)-8*sin(t)+23;

>>plot(t,z);

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

结果如图5所示

7

分析实验mg

40

35

30

25

z

20

15

10

5

00.511.522.533.5

图5函数图

由图6.5可看出,当

t

≈0.5

时函数取得最小值,

x

=

π

时函数取得最大值。下面用计算

验证。对函数求导

>>clear;symst;

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

dz

=18sin

t

−8cos

t

,解正规方程

dt

>>clear;

>>t=solve('16*sin(t)-8*cos(t)=0','t')

>>numeric(t)%求出t的数值

t

=arctan

1

≈0,4636

,边界点为

t

=0,

π

,计算着三个点上的函数值可得当

t

=0.4636

2

函数取得最小值0.5111,

t

=

π

,(

x

=−4,

y

=0)

时函数取得最小值39。

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

【练习与思考】

1.求

z

=

x

4

+

y

4

−4

xy

+1

的极值,并对图形进行观测。

2.求函数

f

(

x

,

y

)

=

x

+2

y

在圆周

x

+

y

=1

的最大值和最小值。

2222

3.在球面

x

+

y

+

z

=1

求出与点(3,1,-1)距离最近和最远点。

4.求函数

f

(

x

,

y

,

z

)=

x

+2

y

+3

z

在平面

x

y

+

z

=1

与柱面

x

+

y

=1

的交线上

的最大值。

5.求函数

z

=

x

+

y

在三条直线

x

=1,

y

=1,

x

+

y

=1

所围区域上的最大值和最小

值。

22

22

222

8