Skip to main content
`Ctrl`+`K`
scipy.optimize.

# fmin_slsqp

scipy.optimize.fmin_slsqp(func, x0, eqcons=(), f_eqcons=None, ieqcons=(), f_ieqcons=None, bounds=(), fprime=None, fprime_eqcons=None, fprime_ieqcons=None, args=(), iter=100, acc=1e-06, iprint=1, disp=None, full_output=0, epsilon=np.float64(1.4901161193847656e-08), callback=None)

  Minimize a function using Sequential Least Squares Programming

  Python interface function for the SLSQP Optimization subroutine originally implemented by Dieter Kraft.

  Parameters:
    func callable f(x,*args)

      Objective function. Must return a scalar.

    x0 1-D ndarray of float

      Initial guess for the independent variable(s).

    eqcons list, optional

      A list of functions of length n such that eqcons[j](x,*args) == 0.0 in a successfully optimized problem.

    f_eqcons callable f(x,*args), optional

      Returns a 1-D array in which each element must equal 0.0 in a successfully optimized problem. If f_eqcons is specified, eqcons is ignored.

    ieqcons list, optional

      A list of functions of length n such that ieqcons[j](x,*args) >= 0.0 in a successfully optimized problem.

    f_ieqcons callable f(x,*args), optional

      Returns a 1-D ndarray in which each element must be greater or equal to 0.0 in a successfully optimized problem. If f_ieqcons is specified, ieqcons is ignored.

    bounds list, optional

      A list of tuples specifying the lower and upper bound for each independent variable [(xl0, xu0),(xl1, xu1),…] Infinite values will be interpreted as large floating values.

    fprime callable `f(x,*args)`, optional

      A function that evaluates the partial derivatives of func.

    fprime_eqcons callable `f(x,*args)`, optional

      A function of the form `f(x, *args)` that returns the m by n array of equality constraint normals. If not provided, the normals will be approximated. The array returned by fprime_eqcons should be sized as ( len(eqcons), len(x0) ).

    fprime_ieqcons callable `f(x,*args)`, optional

      A function of the form `f(x, *args)` that returns the m by n array of inequality constraint normals. If not provided, the normals will be approximated. The array returned by fprime_ieqcons should be sized as ( len(ieqcons), len(x0) ).

    args sequence, optional

      Additional arguments passed to func and fprime.

    iter int, optional

      The maximum number of iterations.

    acc float, optional

      Requested accuracy.

    iprint int, optional

      The verbosity of fmin_slsqp :

      - iprint <= 0 : Silent operation

      - iprint == 1 : Print summary upon completion (default)

      - iprint >= 2 : Print status of each iterate and summary

    disp int, optional

      Overrides the iprint interface (preferred).

    full_output bool, optional

      If False, return only the minimizer of func (default). Otherwise, output final objective function and summary information.

    epsilon float, optional

      The step size for finite-difference derivative estimates.

    callback callable, optional

      Called after each iteration, as `callback(x)`, where `x` is the current parameter vector.

  Returns:
    out ndarray of float

      The final minimizer of func.

    fx ndarray of float, if full_output is true

      The final value of the objective function.

    its int, if full_output is true

      The number of iterations.

    imode int, if full_output is true

      The exit mode from the optimizer (see below).

    smode string, if full_output is true

      Message describing the exit mode from the optimizer.

  See also

  `minimize`

    Interface to minimization algorithms for multivariate functions. See the ‘SLSQP’ method in particular.

  Notes

  Exit modes are defined as follows:

  - `-1` : Gradient evaluation required (g & a)

  - `0` : Optimization terminated successfully

  - `1` : Function evaluation required (f & c)

  - `2` : More equality constraints than independent variables

  - `3` : More than 3*n iterations in LSQ subproblem

  - `4` : Inequality constraints incompatible

  - `5` : Singular matrix E in LSQ subproblem

  - `6` : Singular matrix C in LSQ subproblem

  - `7` : Rank-deficient equality constraint subproblem HFTI

  - `8` : Positive directional derivative for linesearch

  - `9` : Iteration limit reached

  Examples

  Examples are given in the tutorial.