Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los objetivos de esta prctica son de clculo simblico con MATLAB para:
1) Determinar el gradiente (jacobiana) de una funcin escalar (vectorial).
2) Aplicacin al clculo de extremos de una funcin escalar: determinacin de los puntos crticos y de su
carcter correspondiente en un problema de optimizacin de funciones escalares.
Vamos a usar comandos de simblico para determinar el gradiente, los puntos crticos, la Hessiana y la
clasificacin de los puntos crticos de una funcin escalar. En el caso z = f(x,y), haremos tambin la grfica
de sta en torno a los puntos crticos que hayan resultado.
Comandos bsicos a utilizar: syms jacobian
solve
subs
y eig
1.- Clculo del gradiente, de la hessiana y de las derivadas parciales de una funcin escalar en forma simblica.
Ejemplo 1.- Sea la funcin escalar: f (x, y) = sen(xy) + cos(xy2) .
a) Calcular su gradiente y su matriz hessiana ;
b) Comprobar el resultado obtenido hallando sus derivadas parciales sucesivas de orden 1 y .2 con el comando diff.
c) Determinar los puntos (x,y) en los que se anula el gradiente de f puntos crticos de f).
d) Hallar el gradiente y la hessiana de f en los puntos (0, 0) y (1,-1)
a)
>> syms x y ; f=sin(x*y)+cos(x*y^2); Gf=jacobian(f) %Gf = Gradiente de f
Gf = [ y*cos(x*y) - y^2*sin(x*y^2), x*cos(x*y) - 2*x*y*sin(x*y^2)]
>> Hf=jacobian(Gf)
Hf=
[
% Hf = Hessiana de f
-y^4*cos(x*y^2)-y^2*sin(x*y),cos(x*y)-2*y*sin(x*y^2)-x*y*sin(x*y)-2*x*y^3* cos(x*y^2)]
[cos(x*y)-2*y*sin(x*y^2)-x*y*sin(x*y)-2*x*y^3*cos(x*y^2), -2*x*sin(x*y^2)-x^2*sin(x*y)-4*x^2*y^2*cos(x*y^2)]
b) % NOTA: Tambin podramos determinar las derivadas parciales sucesivas de una funcin
escalar utilizando el comando diff.
>> syms x y ; f=sin(x*y)+cos(x*y^2);
>> fx=diff(f,x,1), fy=diff(f,y,1),fxx=diff(f,x,2),fyy=diff(f,y,2), fxy=diff(fx,y,1)
fx =
y*cos(x*y) - y^2*sin(x*y^2)
fxx =-y^4*cos(x*y^2)-y^2*sin(x*y)
fy = x*cos(x*y) - 2*x*y*sin(x*y^2)
fyy=-2*x*sin(x*y^2)-x^2*sin(x*y)-4*x^2*y^2*cos(x*y^2)
c)
>> [a,b]=solve(Gf(1),Gf(2))
a = 0
b = 0
d)
>>
Gf0=subs(Gf,{x,y},{0,0}), Hf0=subs(Hf,{x,y},{0,0}),
0
0
Hf0 =
Gf1=subs(Gf,{x,y},{1,1}), Hf1=subs(Hf,{x,y},{1,1}),
Gf1 = -0.3012
-1.1426
Gf0 =
0
1
Hf1 =
1
0
>>
-1.3818
-3.0647
-3.0647
-4.6856
y representarla grficamente
hf=jacobian(gf)
gf =
[ 2*x-4-y, 2*y-1-x]
hf =
[ 2, -1]
[ -1, 2]
>> [a,b]=solve('2*x-4-y=0','2*y-1-x=0')
a=
b=
>> ezmesh(f)
>> sol=solve('2*x-4-y=0','2*y-1-x=0')
x: [1x1 sym]
y: [1x1 sym]
>> sol.x
ans =
3
>> sol.y
ans =
2
a=
[ 0]
[ 1]
[ -1]
b=
[ 0]
[ 1/2]
[ 1/2]
>> hf=jacobian(gf)
hf =
[ 12*x^2+4*y+4*z-8,
[
4*x,
[
4*x,
4*x,
-6,
2,
c=
[ 0]
[ 1/2]
[ 1/2]
4*x]
2]
-6]
>> hf1=subs(hf,{x,y,z},{0,0,0})
hf1 =
-8 0 0
0 -6 2
0 2 -6
>> eig(hf1)
ans =
-8
-8
-4
% la forma cuadrtica asociada a hf1 es definida negativa
por lo que en el punto crtico (0,0,0) hay un mximo
relativo
Ejemplo 4.- Estudiar los extremos de la funcin: f(x,y)= x2 + x.y + y2 condicionados a que x2 + y2 1
Como f(x,y) es continua y diferenciable en el conjunto D={(x,y) / x2 + y2 1 } es un compacto, sabemos a priori que habr extremos absolutos.
Para determinar-los bastar con hallar los posibles extremos relativos de f(x,y) en D y los posibles extremos relativos condicionados a que estn
en la frontera de D. Entre todos los puntos crticos resultantes bastar con evaluar en ellos la funcin f(x,y) para poder decidir donde se encuentra
el mximo y el mnimo absolutos de f en D.
El clculo de los puntos crtico en el interior de C se deja al alumno como ejercicio previo con MATLAB.
Los puntos crticos en la frontera los obtendremos resolviendo el problema: extremos de f(x,y)= x2 + x.y + y2 condicionados a que x2 + y2 = 1
a=
[ -3/2]
[ -3/2]
[ -1/2]
[ -1/2]
b=
[1/2*2^(1/2)]
[-1/2*2^(1/2)]
[ 1/2*2^(1/2)]
[1/2*2^(1/2)]
c=
[1/2*2^(1/2)]
[-1/2*2^(1/2)]
[1/2*2^(1/2)]
[-1/2*2^(1/2)]
EJERCICIOS.-
1) Hallar los extremos de los siguientes campos escalares de dos variables y en los casos a),b) y c)
representar grficamente la superficie que les corresponde:
a) f(x,y) = x3 + y3 - 3x 3y + 5
;
b) f(x,y) = x2 + y2 + x 2y xy + 1
c) f(x,y) = x2y + xy2 - 3xy
;
d) f(x,y,z) = 2x2 + 2y2 + z2 2xy + yz 7y 4z
2) Determinar el punto de la superficie z = x2 + y2 ms cercano al punto (2,3,1).