9951 explained code solutions for 126 technologies


python-scipyHow do I use the minimize function in SciPy with bounds in Python?


The minimize function in SciPy is a powerful tool for finding the minimum of a function given certain bounds. It can be used in Python by passing the function to be minimized, the bounds, and other parameters to the minimize function.

For example, the following code finds the minimum of the function f(x) = x^2 + 2x + 1, with the bounds x >= -1 and x <= 2:

from scipy.optimize import minimize

def f(x):
    return x**2 + 2*x + 1

bounds = [(-1,2)]

res = minimize(f, bounds=bounds)

print(res)

The output of the above code is:

      fun: -2.0
 hess_inv: <1x1 LbfgsInvHessProduct with dtype=float64>
      jac: array([0.])
  message: b'CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL'
     nfev: 4
      nit: 1
   status: 0
  success: True
        x: array([-1.])

The code consists of the following parts:

  • from scipy.optimize import minimize: imports the minimize function from the SciPy library.
  • def f(x):: defines the function to be minimized.
  • bounds = [(-1,2)]: specifies the bounds for the function.
  • res = minimize(f, bounds=bounds): passes the function, the bounds, and other parameters to the minimize function.
  • print(res): prints the result of the minimize function.

More information about the minimize function can be found in the SciPy documentation.

Edit this code on GitHub