Entrada destacada

Juego del Caos cambiando el dado al orden del Genoma

martes, 10 de abril de 2018

Optimización sin restricciones de funciones escalares sobre el plano



Colaboración del Profesor Nicolás Marciales

Dada una función escalar sobre el plano f(x,y) se determinan y clasifican sus puntos críticos como extremos locales, para esto definimos la función criticos[ ]

criticos[f_] := 
 Module[{a, h, det}, 
  hessiana[f] := {{D[f, x, x], D[f, x, y]}, {D[f, y, x], D[f, y, y]}};
   a = NSolve[{D[f, x] == 0, D[f, y] == 0}, {x, y}, Reals];
  det = Det[hessiana[f] /. a[[1]]];
  For[i = 1, i <= Length[a], i++, det = Det[hessiana[f] /. a[[i]]]; 
   h = hessiana[f] /. a[[i]];
   If[det < 0, Print[{x, y} /. a[[i]], "  Punto de silla."], 
    If[h[[1]][[1]] > 0, Print[{x, y} /. a[[i]], "  Mínimo."], 
     Print[{x, y} /. a[[i]], "  Máximo."]]]
   ]]

Veamos un ejemplo

criticos[y^3 + 3 x^2 y - 6 x^2 - 6 y^2 + 2 ]

{2.,2.}  Punto de silla.
{0.,4.}  Mínimo.
{-2.,2.}  Punto de silla.
{0.,0.}  Máximo.

Gráficamente, de rojo los puntos de silla, amarillo el máximo local y de verde el mínimo local:

f[x_, y_] := y^3 + 3 x^2 y - 6 x^2 - 6 y^2 + 2 
Show[Plot3D[f[x, y] , {x, -5, 5}, {y, -5, 5}], 
 Graphics3D[{PointSize[0.03], {Red, 
    Point[{{2, 2, f[2, 2]}, {-2, 2, f[-2, 2]}}]}, {Green, 
    Point[{0, 4, f[0, 4]}]}, {Yellow, Point[{0, 0, f[0, 0]}]}}]]


en curvas de nivel

Show[ContourPlot[f[x, y], {x, -5, 5}, {y, -5, 5}], 
 Graphics[{PointSize[0.03], {Red, Point[{{2, 2}, {-2, 2}}]}, {Green, Point[{0, 4}]}, {Yellow, Point[{0, 0}]}}]]





Para aprender más sobre Mathematica ingrese aquí sitio de aprendizaje de Wolfram o en mi website ustamathematica.wixsite.com/basicas


No hay comentarios.:

Publicar un comentario