Unconstrained Optimization

Find the maxima of the following function

\[f(x,y)=x^4 −x^2y+y^2 −3y+4\]

Step I

Defining variable and function.

x, y = sp.var('x,y',real=True);
f = x**4 - x**2*y + y**2 - 3*y +4
f

$\displaystyle x^{4} - x^{2} y + y^{2} - 3 y + 4$

Step II

Finding gradiant of the function.

gradf = [sp.diff(f,c) for c in [x,y]] # gradient of Lagrangian w.r.t. (x,y)

$\displaystyle 4 x^{3} - 2 x y$

$\displaystyle - x^{2} + 2 y - 3$

Step III

Finding the criticlal points by setting the gradient equal to $0$. Critical points is obtained using

stationary_points = sp.solve(gradf, [x, y], dict=True) # solve the KKT equations
stationary_points 
$x$ $y$ Obj
$-1$ $2$ $1$
$0$ $\frac{3}{2}$ $\frac{7}{4}$
$1$ $2$ $1$

Step IV

Computing the sign of the Hessian at each of the critical points. The Hessian is computed as

H = sp.hessian(f, (x,y))
H

$\displaystyle \left[\begin{matrix}12 x^{2} - 2 y & - 2 x\- 2 x & 2\end{matrix}\right]$

The Eigenvalues of Hessina Matrix will determine weather a point is maxima or minima

def sign(A):
    d = A.eigenvals().keys()
    if any(x >= 0 for x in d):
        if any(x <= 0 for x in d):
            return "None"
        else:
            return "Minima"
    else:
        return "Maxima"
$x$ $y$ Obj Hessian
$-1$ $2$ $1$ Minima
$0$ $\frac{3}{2}$ $\frac{7}{4}$ None
$1$ $2$ $1$ Minima

Conclusion: The points $(-1,2)$ and $(1,2)$ are the local minima(which is also global) of the given function.