Saturday, April 28, 2012

Homework # 12

14.5





Find the gradient vector and Hessian matrix for each of the following functions
(a) f(x,y) = 2xy^2 + 3e^(xy)
(b) f(x,y,z) = x^2 + y^2 + 2z^2
(c) f(x,y) = ln(x^2 + 2xy + 3y^2)

14.6




The returned minimum value was -0.5 for the function:




Here is the matlab code:

[X,Y] = meshgrid(0:.2:8, -4:.2:8);

f_xy = @(x,y) (x - 3).^2 + (y - 2).^2

df_xy_dx = @(x,y) 2*(x-3);

df_xy_dy = @(x,y) 2*(y-2);




x_0 = 0;
y_0 = 0;

g_h = @(h) f_xy(x_0+df_xy_dx(x_0,y_0)*h,y_0+df_xy_dy(x_0,y_0)*h)

figure(1);
h = -1:0.001:0;
hold off;
plot(h,g_h(h))

[gmin,hi] = min(g_h(h));
hold on 
plot(h(hi),gmin,'k*');

x_1 = x_0 + df_xy_dx(x_0,y_0)*h(hi)
y_1 = y_0 + df_xy_dy(x_0,y_0)*h(hi)






14.8

    This is the Matlab code we went over in class that shows the inital step along with two more steps to find the minimum for the given function

[X,Y] = meshgrid(-4:.2:8, -4:.2:8);
f_xy = @(x,y) -8*x+x.^2+12*y+4*y.^2-2.*x.*y
df_xy_dx = @(x,y) -8 + 2*x-x.*y;
df_xy_dy = @(x,y) 12+8*y-2*x;

figure(1)
hold off
surfc(X,Y,f_xy(X,Y))
hold on

x_0 = 0;
y_0 = 0;

g_h = @(h) f_xy(x_0+df_xy_dx(x_0,y_0)*h,y_0+df_xy_dy(x_0,y_0)*h)

figure(2);
h = -4:0.001:4;
hold off;
plot(h,g_h(h))

[gmin,hi] = min(g_h(h));
hold on 
plot(h(hi),gmin,'k*');

x_1 = x_0 + df_xy_dx(x_0,y_0)*h(hi)
y_1 = y_0 + df_xy_dy(x_0,y_0)*h(hi)

figure(1)
plot3(x_0,y_0,f_xy(x_0,y_0),'w*')
plot3(x_1,y_1,f_xy(x_1,y_1),'y*')

g_h = @(h) f_xy(x_1+df_xy_dx(x_1,y_1)*h,y_1+df_xy_dy(x_1,y_1)*h)

figure(3);
h = -4:0.001:4;
hold off;
plot(h,g_h(h))

[gmin,hi] = min(g_h(h));
hold on 
plot(h(hi),gmin,'k*');

x_2 = x_1 + df_xy_dx(x_1,y_1)*h(hi)
y_2 = y_1 + df_xy_dy(x_1,y_1)*h(hi)

figure(1)
plot3(x_1,y_1,f_xy(x_1,y_1),'y*')
plot3(x_2,y_2,f_xy(x_2,y_2),'W*')

g_h = @(h) f_xy(x_2+df_xy_dx(x_2,y_2)*h,y_2+df_xy_dy(x_2,y_2)*h)

figure(4);
h = -4:0.001:4;
hold off;
plot(h,g_h(h))

[gmin,hi] = min(g_h(h));
hold on 
plot(h(hi),gmin,'k*');

x_3 = x_2 + df_xy_dx(x_2,y_2)*h(hi)
y_3 = y_2 + df_xy_dy(x_2,y_2)*h(hi)

figure(1)
plot3(x_2,y_2,f_xy(x_2,y_2),'W*')
plot3(x_3,y_3,f_xy(x_3,y_3),'y*')





No comments:

Post a Comment