多元函数的极值

用MATLAB函数计算多元函数的极值和条件极值。[大谦MATLAB,dqmatlab点com]

求多元函数的极值

求函数 \(f(x,y)=4(x-y)-{x}^{2}-{y}^{2}\) 的极值。

解 在命令窗口中输入下面的命令行:

code.matlab
>> syms x y;
>> f=4*x-4*y-x*x-y*y;
>> fx=diff(f,x);
>> fy=diff(f,y);
>> [x0 y0]=solve(fx,fy)
	x0 =
		2
	y0 =
		-2
>> fv=inline(f);
>> z0=fv(x0,y0)
	z0 =
		8

所以函数在(2,-2)处取得极值,极大值为8。

条件极值

求表面积为 \({a}^{2}\) 而体积是最大的长方体的体积。

解 设长方体的三条边长为x、y和z,则问题就是在条件 \(\phi(x,y,z)=2xy+2yz+2xz-{a}^{2}=0\) 下,求函数 \(V=xyz\) \((x>0,y>0,z>0)\) 的最大值,构造函数

\[F(x,y,z)=xyz+\lambda(2xy+2yz+2xz-{a}^{2})\]

求其对x、y和 z的偏导数,并使之为零,联立求解。

在命令窗口中输入下面的命令行:

code.matlab
>> syms x y z lamda a;
>> f=x*y*z+lamda*(2*y*z+2*z*x+2*x*y-a*a);
>> fx=diff(f,x);
>> fy=diff(f,y);
>> fz=diff(f,z);
>> fl=diff(f,lamda);
>> [lamda x y z]=solve(fx,fy,fz,fl)
lamda =
  (2^(1/2)*3^(1/2)*a)/24
 -(2^(1/2)*3^(1/2)*a)/24
x =
 -(2^(1/2)*3^(1/2)*a)/6
  (2^(1/2)*3^(1/2)*a)/6
y =
 -(2^(1/2)*3^(1/2)*a)/6
  (2^(1/2)*3^(1/2)*a)/6
z =
 -(2^(1/2)*3^(1/2)*a)/6
  (2^(1/2)*3^(1/2)*a)/6
>> v=x.*y.*z
v =
 -(2^(1/2)*3^(1/2)*a^3)/36
  (2^(1/2)*3^(1/2)*a^3)/36

去掉负值

\[x=y=z=\frac{\sqrt{6}}{6}a\]

则最大体积为

\[v=\frac{\sqrt{6}}{36}{a}^{3}\]