Optimize

minimize a bowl; print x.

minimize walks downhill. Start near the bowl. Print x and fun.

Goal

Minimize (x-3)^2 + (y+1)^2 from (0,0).

from scipy.optimize import minimize
def f(v):
    x, y = v
    return (x - 3) ** 2 + (y + 1) ** 2
res = minimize(f, [0.0, 0.0])
print(res.x.round(4))
print('fun', round(res.fun, 6))
from scipy.optimize import minimize_scalar
res = minimize_scalar(lambda x: (x - 5) ** 2)
print(res.x, res.fun)
from scipy.optimize import root
sol = root(lambda x: x ** 2 - 2, 1.0)
print(sol.x)
from scipy.optimize import minimize
def f(v):
    return np.sum(v ** 2)
print(minimize(f, [1.0, -2.0, 3.0]).x.round(6))