Examples Friday, March 14: Lagrange Multipliers for f(x,y,z)

Contents

(a)

We want to build a box where the edges have length x,y,z. We want to have x+y+z=12. What is the largest volume V=x*y*z which we can achieve?

In other words, we want to find the maximum of the function f(x,y,z)=x*y*z, subject to the constraint x+y+z=12.

Answer: The maximum volume of the box is 64, for the values (x,y,z)=(4,4,4).

syms x y z lambda real
f = x*y*z;
g = x + y + z - 12;          %  we define g(x,y) so that the constraint is g(x,y)=0
fx = diff(f,x)
fy = diff(f,y)
fz = diff(f,z)
gx = diff(g,x)
gy = diff(g,y)
gz = diff(g,z)
% We obtain a system of 4 equations for 4 unknowns x,y,z,lambda
s = solve(fx-lambda*gx,fy-lambda*gy,fz-lambda*gz,g,x,y,z,lambda);  % solve the system
[s.x,s.y,s.z]                  % s.x, s.y, s.z are vectors with x,y,z values
                               % here we get four solutions
fs = subs(f,{x,y,z},{s.x,s.y,s.z})  % plug each solution in function f
                               % fs is vector of four function values
% Matlab can't find max/min of symbolic values, so we need "double" to convert to machine numbers
fsd = double(fs);
fmax = max(fsd)                % maximum
fmin = min(fsd)                % minimum
fx =
y*z
fy =
x*z
fz =
x*y
gx =
1
gy =
1
gz =
1
ans =
[ 12,  0,  0]
[  0,  0, 12]
[  0, 12,  0]
[  4,  4,  4]
fs =
  0
  0
  0
 64
fmax =
    64
fmin =
     0

(b)

Make a plot of the level sets (surfaces) of the function f.

Make a second plot which also shows the plane x+y+z=12, together with the location of the maximum.

Note that the plane is tangent to the level set f(x,y,z)=64 at the location (4,4,4) of the maximum.

figure(1)
ezisosurf(f,[0 5 0 5 0 5],[12,24,36,48,64]);  % plot surfaces for f=12,24,36,48,64
colorbar;
alpha(0.9); nice3d;
view(-145,30); defaultlighting;

figure(2)
ezisosurf(f,[0 5 0 5 0 5],[12,24,36,48,64]); hold on
plane([4,4,4],[1,1,1],2,2)                    % surface g=0 is plane
colorbar; hold off;
nice3d; axis([0 5 0 5 0 5]);
view(-145,30); defaultlighting;