CAL_1819_Practica5

206 days ago by sevillad1819

 Práctica 5 de Cálculo: derivadas y optimización en varias variables

 

Límite de entrega de esta práctica: ver tarea en Moodle o calendario de la asignatura. Hasta una semana de retraso: vale hasta el 50%. Más de una semana de retraso: no cuenta para la nota.

Instrucciones:

  1. Haz una copia de la hoja pública y renómbrala: si tu correo es usuario@alumnos.unex.es añade al final del título _usuario, por ejemplo AJO_1516_Practica2_sevillad.
    • Para cambiar el nombre pulsa en el título de la hoja (arriba del todo, entre el logo de Sage y el menú "Archivo...")
  2. Comparte la hoja de trabajo con el usuario sevillad1819 mediante el botón Compartir de arriba a la derecha.
  3. Trabaja la práctica.
  4. Cuando hayas terminado, haz una copia en un único fichero PDF y ponlo en el campus virtual. Esa será la versión que se evaluará. La hoja no se considera entregada si no se ha compartido (punto 2).
    • Para generar el PDF lo más sencillo es usar el botón Imprimir de arriba e imprimir la nueva página a fichero.
    • Una alternativa es hacer capturas de pantalla (JPG, PNG...) de la hoja a imprimir, y convertirlas a PDF uniendo después los distintos ficheros generados.

 

Derivadas

Vamos a ver cómo podemos calcular derivadas en varias variables y cosas relacionadas con ellas. Tomemos la función $f(x,y)=xy$.

 

f(x,y) = x*y f.diff(x); f.diff(y) 
       
(x, y) |--> y
(x, y) |--> x
(x, y) |--> y
(x, y) |--> x

Podemos calcular directamente el gradiente y el hesiano.

f.gradient() 
       
(x, y) |--> (y, x)
(x, y) |--> (y, x)
f.hessian() 
       
[(x, y) |--> 0 (x, y) |--> 1]
[(x, y) |--> 1 (x, y) |--> 0]
[(x, y) |--> 0 (x, y) |--> 1]
[(x, y) |--> 1 (x, y) |--> 0]

Y desde luego también derivadas de orden superior. Aquí están las cuatro derivadas segundas.

f.diff(x,2); f.diff(y,2); f.diff(x,y); f.diff(y,x) 
       
(x, y) |--> 0
(x, y) |--> 0
(x, y) |--> 1
(x, y) |--> 1
(x, y) |--> 0
(x, y) |--> 0
(x, y) |--> 1
(x, y) |--> 1

Busquemos los puntos críticos.

solve([f.diff(x)==0,f.diff(y)==0],x,y) 
       
[[x == 0, y == 0]]
[[x == 0, y == 0]]

El único punto crítico es el (0,0). El hessiano nos indica qué tipo de punto es.

H = f.hessian()(0,0) H; det(H) 
       
[0 1]
[1 0]
-1
[0 1]
[1 0]
-1

Como el determinante del hessiano es negativo, el (0,0) es un punto de silla. Lo dibujamos. Recuerda que puedes hacer que la gráfica siguiente sea interactiva pulsando en ella.

plot3d(f(x,y),(x,-2,2),(y,-2,2))+point3d((0,0,0),size=10,color='black') 
       
hs_err_pid57985.log

Otro ejemplo:

var('x,y') f(x,y) = x^3+3*x^2-9*x+y^3-12*y solve([f.diff(x)==0,f.diff(y)==0],x,y) 
       
[[x == -3, y == -2], [x == 1, y == -2], [x == -3, y == 2], [x == 1, y ==
2]]
[[x == -3, y == -2], [x == 1, y == -2], [x == -3, y == 2], [x == 1, y == 2]]
H = f.hessian() show(H) 
       

                                
                            

                                
pcrit = [(-3,-2),(-3,2),(1,-2),(1,2)] for p in pcrit: Hp = H(x=p[0],y=p[1]) Hp; det(Hp) print 
       
[-12   0]
[  0 -12]
144

[-12   0]
[  0  12]
-144

[ 12   0]
[  0 -12]
-144

[12  0]
[ 0 12]
144
[-12   0]
[  0 -12]
144

[-12   0]
[  0  12]
-144

[ 12   0]
[  0 -12]
-144

[12  0]
[ 0 12]
144

Pintemos el máximo en verde, el mínimo en rojo y los puntos de silla en negro.

plot3d(f(x,y),(x,-4,4),(y,-4,4))+points((-3,-2,f(-3,-2)),color='green',size=10)+points((1,2,f(1,2)),color='red',size=10)+points((-3,2,f(-3,2)),color='black',size=10)+points((1,-2,f(1,-2)),color='black',size=10) 
       
hs_err_pid10292.log
 
       

Ejercicio 21 (4 puntos). Calcula (sólo calcular) los puntos críticos de la función $f(x,y)=xy \dfrac{x^2-y^2}{x^2+y^2}$. Luego dibuja la gráfica de $f$ marcando los puntos como arriba.

 
       
 
       

Ejercicio 22 (4 puntos). Calcula y estudia los puntos críticos de $f(x,y)=4x^2e^y-2x^4-e^{4y}$.

 
       
 
       

Optimización

Calculemos los máximos y mínimos de $f(x,y)=xy$ en el círculo $x^2+y^2\leq2$.

  • Puntos críticos de $f$. Los calculamos antes, solo hay uno: $(0,0)$.
  • Puntos críticos en el borde del círculo, que tiene ecuación $x^2+y^2=2$. Los encontramos a través de los puntos críticos del lagrangiano $L(x,y,l)$.
var('l') var('l') g(x,y) = x^2+y^2-2 L(x,y,l) = f(x,y)-l*g(x,y) solve([L.diff(x)==0,L.diff(y)==0,L.diff(l)==0],x,y,l) 
       
[[x == 1, y == 1, l == (1/2)], [x == -1, y == -1, l == (1/2)], [x == 1,
y == -1, l == (-1/2)], [x == -1, y == 1, l == (-1/2)]]
[[x == 1, y == 1, l == (1/2)], [x == -1, y == -1, l == (1/2)], [x == 1, y == -1, l == (-1/2)], [x == -1, y == 1, l == (-1/2)]]
  • Comparamos los valores de $f$ en el punto $(0,0)$ del principio y los puntos Los puntos que hemos obtenido son $(1,1)$, $(-1,-1)$, $(1,-1)$ y $(-1,1)$  del borde.
f(0,0); f(1,1); f(-1,-1); f(1,-1); f(-1,1) 
       
0
1
1
-1
-1
0
1
1
-1
-1

El valor máximo es $1$, y los puntos son el $(1,1)$ y el $(-1,-1)$. El valor mínimo es $-1$, y se alcanza en $(1,-1)$ y $(-1,1)$. A continuación, dos representaciones gráficas del problema donde se ve la solución.

var('z') plot3d(f(x,y),(x,-2,2),(y,-2,2))+implicit_plot3d(x^2+y^2==2,(x,-2,2),(y,-2,2),(z,-2,2),color='yellow',opacity=0.6)+points((1,1,f(1,1)),color='red',size=10)+points((-1,-1,f(-1,-1)),color='red',size=10)+points((-1,1,f(-1,1)),color='black',size=10)+points((1,-1,f(1,-1)),color='black',size=10) 
       
hs_err_pid58684.log
contour_plot(f,(x,-2,2),(y,-2,2),fill=False,labels=True,contours=40,figsize=5) +implicit_plot(g,(x,-2,2),(y,-2,2)) 
       
 
       

Ejercicio 23 (4 puntos). Busca gráficamente los valores extremos de la función $xy^2$ en la región intersección del círculo unidad (el de centro el origen y radio 1) y el círculo de centro $(3,0)$ y radio 3: estima la solución lo más exactamente que puedas usando curvas de nivel como en el ejemplo de arriba.

 
       
 
       

Ejercicio 24 (8 puntos). Resuelve el problema de optimización del ejercicio anterior usando el método visto en clase y el ejemplo de arriba (puntos críticos y lagrangiano).