用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}\]