Universidad Externado de Colombia

Optimización

Puntos críticos

De manera análoga a lo que sucede en una variable, los candidatos a ser mínimos o máximos de una función son aquellos conocidos como puntos críticos los cuales se pueden definir como sigue:

La pareja ordenada $(x_0,y_0)$ es un punto crítico de $f(x,y)$ si: $$f_x(x_0,y_0)=0\ \text{ y } \ f_y(x_0,y_0)=0.$$

Ejemplo

Halle los puntos críticos de $f(x,y)=x^2+y^2.$

R. Para hallar los puntos críticos lo primero que debe hacerse es hallar las derivadas parciales de primer orden de la función $f$.

$f_x(x,y)=2x$

$f_y(x,y)=2y$

El siguiente paso es igualar ambas ecuaciones a cero:

$$\left\{ \begin{array}{l} 2x=0\\ 2y=0 \end{array} \right.$$

al despejar obtenemos un único punto crítico $x=0$ y $y=0$, es decir, la pareja ordenada $(0,0)$ es el punto crítico de la función.

Ejercicios

Halle los puntos críticos de las funciones:

  1. $f(x,y)=x^2+2y^2-2x-2y+1$
  2. $g(x,y)=x^2+4xy+y^2$
  3. $h(x,y)=-x^4-32x+y^3-12y+7$
from sympy import * 
from sympy.plotting import * 
init_printing(use_latex=True)  
x = symbols("x")
y = symbols("y")
f=x**2+2*y**2-2*x-2*y+1
f
$$x^{2} - 2 x + 2 y^{2} - 2 y + 1$$
dfx=diff(f,x)
dfx
$$2 x - 2$$
dfy=diff(f,y)
dfy
$$4 y - 2$$
solve([dfx,dfy],[x,y])
$$\left \{ x : 1, \quad y : \frac{1}{2}\right \}$$
g=x**2+4*x*y+y**2
solve([diff(g,x),diff(g,y)],[x,y])
$$\left \{ x : 0, \quad y : 0\right \}$$
h=-x**4-32*x+y**3-12*y+7
solve([diff(h,x),diff(h,y)],[x,y])
$$\left [ \left ( -2, \quad -2\right ), \quad \left ( -2, \quad 2\right ), \quad \left ( 1 - \sqrt{3} i, \quad -2\right ), \quad \left ( 1 - \sqrt{3} i, \quad 2\right ), \quad \left ( 1 + \sqrt{3} i, \quad -2\right ), \quad \left ( 1 + \sqrt{3} i, \quad 2\right )\right ]$$

Criterio

Al igual que en una variable, se hará indispensable hallar las derivadas de segundo orden de $f(x,y)$, es decir, se deben hallar las siguientes funciones: $$\left. \begin{array}{ll} f_{xx}(x,y)& f_{yx}(x,y)\\ f_{xy}(x,y)& f_{yy}(x,y) \end{array} \right.$$ Para así definir la función Discriminante $$D(x,y)=f_{xx}f_{yy}-(f_{xy})^2.$$

Para determinar si el punto crítico $(x_0,y_0)$ es máximo, mínimo o de silla, se deben tener en cuenta las siguientes condiciones:

  1. Si $D(x_0,y_0) > 0$ y $f_{xx}(x_0,y_0) > 0$, entonces $(x_0,y_0)$ es un mínimo.
  2. Si $D(x_0,y_0) > 0$ y $f_{xx}(x_0,y_0) < 0$, entonces $(x_0,y_0)$ es un máximo.
  3. Si $D(x_0,y_0) < 0$, entonces $(x_0,y_0)$ es un punto de silla.
  4. Si $D(x_0,y_0) = 0$, entonces no se puede concluir nada.

Ejemplo

Clasifique los puntos críticos de la función $$f(x,y)=x^2+y^2$$

R: Según el ejemplo anterior tenemos que el único punto crítico de la función es $(0,0)$, de modo que se deben ahora hallar las derivadas de segundo orden de $f$ $$\left. \begin{array}{ll} f_{xx}(x,y)=2& f_{yx}(x,y)=0\\ f_{xy}(x,y)=0& f_{yy}(x,y)=0 \end{array} \right.$$ de modo que $$D(x,y)=(2)(2)-(0)(0)=4$$ Así que al remplazar en el punto crítico se tiene que: $$D(0,0)=4>0.$$ Por lo que hay que evaluar la segunda derivada respecto a $x$ de $f$ $$f_{xx}(0,0)=2>0.$$ por lo tanto el punto que se tiene es un mínimo

plot3d(x**2+y**2, (x, -5, 5), (y, -5, 5))
<sympy.plotting.plot.Plot at 0x7f988904d160>

Ejemplo

Hallar los máximos y mínimos locales de $$ F(x,y) = 2x^2 + 4xy + 4y^2 + 4x - 4y. $$

Solución:

Primero hallamos los puntos críticos de $F$. Esto es, encontramos las derivadas parciales de primer orden, se igualan a cero y se resuleve el sistema de ecuaciones.

$F_x = 4x + 4y + 4$, y $F_y = 4x +8y -4.$

Ahora se resuelve el sistema $$\left\{ \begin{array}{l} 4x+4y+4=0\\ 4x+8y-4=0 \end{array} \right.$$ (Recuerde que puede usar el comando solve para ralizar este proceso de la siguiente manera: solve([4x+4y+4,4x+8y-4],[x,y]) ).

La solución de este sistema de ecuaciones es $x = -3, y= 2$.

Concluimos este paso diciendo que $(-3,2)$ es un punto crítico de $F$.

Ahora calculamos las derivadas de segundo orden de $F$

$$F_{xx} = 4, \ \ F_{yy} = 8, \ \ F_{xy} = 4.$$

Luego de halladas las derivadas de segundo orden, se debe hallar el Discriminante de $F$.

$$D(x,y)=4(8)-4(4)=16.$$

Ahora se evalúan los puntos críticos obtenidos.

$$D(-3,2)=16.$$

Como el resultado es positivo, debe tenerse en cuenta el valor de $F_{xx}$ en el punto crítico, es decir

$$F_{xx}(-3,2)=16$$

Como también es positivo podemos afirmar que el punto crítico es un mínimo.

Ejemplo

Hallar los máximos y mínimos locales de $$ f (x, y) = -\frac{1}{3}x^3 + 4xy - 2y^2 + 1$$

Solución:

Primero hallamos los puntos críticos de $F$. Esto es, encontramos las derivadas parciales de primer orden, se igualan a cero y se resuleve el sistema de ecuaciones.

$f_x = -x^2 + 4y$, y $f_y = 4x - 4y.$

Ahora se resuelve el sistema $$\left\{ \begin{array}{l} -x^2 + 4y = 0, \\ 4x - 4y = 0. \end{array} \right.$$

Las soluciones de este sistema de ecuaciones son: $(0,0)$ y $(4,4)$, de modo que $f$ tiene dos puntos críticos.

Ahora calculamos las derivadas de segundo orden de $f$

$$f_{xx}(x,y) = -2x, \ \ \ f_{yy}(x,y) = -4, \ \ \ f_{xy}(x,y) = 4.$$

Así que el Discriminante de $f$ viene dado por la expresión

$$D(x,y)=(-2x)(-4)-4(4)=8x-16.$$

Ahora se evalúan los puntos críticos obtenidos.

$$D(0,0) = -16.$$

Como el resultado es negativo, el punto crítico es un punto de silla.

Para el otro punto crítico se tiene que $$ D(4,4) = 16.$$

así que debe tenerse en cuenta el valor de $f_{xx}$ en el punto crítico, $$F_{xx}(4,4)=-2(4)=-8$$

Como también es negativo podemos afirmar que el punto crítico es un máximo.

Ejercicios

Clasifique los puntos críticos de los ejercicios anteriores

def optimiza(f):
    dfx=diff(f,x)
    dfy=diff(f,y)
    print("f_x=",dfx)
    print("f_y=",dfy)
    pc=solve([dfx,dfy],[x,y])
    PC=[]
    for i in range(len(pc)):
        if len(pc)>2:
            if im(pc[i][0])==0:
                PC.append(pc[i])
        else:
            pc1 = solve([dfx,dfy],[x,y], dict=True)
          #  print(pc)
          #  print(pc[0][x])
            if im(pc1[0][x])==0:
                PC.append(pc1[0][x])
    print("Los puntos críticos son:",PC)
    dfxx=diff(dfx,x)
    dfxy=diff(dfx,y)
    dfyy=diff(dfy,y)
    print("f_xx=",dfxx)
    print("f_xy=",dfxy)
    print("f_yy=",dfyy)
    D=dfxx*dfyy-(dfxy)**2
    print("D=",D)
    if len(pc)>2:
        for i in range(len(PC)):
            if D.subs([(x,PC[i][0]),(y,PC[i][1])])>0:
                if dfxx.subs([(x,PC[i][0]),(y,PC[i][1])])>0:
                    print("El punto:",PC[i],"es mínimo.")
                if dfxx.subs([(x,PC[i][0]),(y,PC[i][1])])<0:
                    print("El punto:",PC[i],"es máximo.")
            if D.subs([(x,PC[i][0]),(y,PC[i][1])])<0:
                print("El punto:",PC[i],"es de silla.")
            if D.subs([(x,PC[i][0]),(y,PC[i][1])])==0:
                print("El criterio no decide")
    else:
            if D.subs([(x,PC[0]),(y,PC[1])])>0:
                if dfxx.subs([(x,PC[0]),(y,PC[1])])>0:
                    print("El punto: (",PC[0],",",PC[1],") es mínimo.")
                if dfxx.subs([(x,PC[0]),(y,PC[1])])<0:
                    print("El punto:(",PC[0],",",PC[1],") es máximo.")
            if D.subs([(x,PC[0]),(y,PC[1])])<0:
                print("El punto:(",PC[0],",",PC[1],") es de silla.")
            if D.subs([(x,PC[0]),(y,PC[1])])==0:
                print("El criterio no decide")
optimiza(h)
f_x= -4*x**3 - 32
f_y= 3*y**2 - 12
Los puntos críticos son: [(-2, -2), (-2, 2)]
f_xx= -12*x**2
f_xy= 0
f_yy= 6*y
D= -72*x**2*y
El punto: (-2, -2) es máximo.
El punto: (-2, 2) es de silla.
optimiza(g)
f_x= 2*x + 4*y
f_y= 4*x + 2*y
Los puntos críticos son: [0, 0]
f_xx= 2
f_xy= 4
f_yy= 2
D= -12
El punto:( 0 , 0 ) es de silla.

$f(x,y)=x^2+2y^2-2x-2y+1$