# scipy.optimize.OptimizeResult

class scipy.optimize.OptimizeResult

  Represents the optimization result.

  Notes

  Depending on the specific solver being used, `OptimizeResult` may not have all attributes listed here, and they may have additional attributes not listed here. Since this class is essentially a subclass of dict with attribute accessors, one can see which attributes are available using the `OptimizeResult.keys` method.

  Attributes:
    x ndarray

      The solution of the optimization.

    success bool

      Whether or not the optimizer exited successfully.

    status int

      Termination status of the optimizer. Its value depends on the underlying solver. Refer to message for details.

    message str

      Description of the cause of the termination.

    fun, jac, hess: ndarray

      Values of objective function, its Jacobian and its Hessian (if available). The Hessians may be approximations, see the documentation of the function in question.

    hess_inv object

      Inverse of the objective function’s Hessian; may be an approximation. Not available for all solvers. The type of this attribute may be either np.ndarray or scipy.sparse.linalg.LinearOperator.

    nfev, njev, nhev int

      Number of evaluations of the objective functions and of its Jacobian and Hessian.

    nit int

      Number of iterations performed by the optimizer.

    maxcv float

      The maximum constraint violation.

  Methods

  `__getitem__` | x.__getitem__(y) <==> x[y]
  `__len__`(/) | Return len(self).
  `clear`() |
  `copy`() |
  `fromkeys`(iterable[, value]) | Create a new dictionary with keys from iterable and values set to value.
  `get`(key[, default]) | Return the value for key if key is in the dictionary, else default.
  `items`() |
  `keys`() |
  `pop`(key[, default]) | If key is not found, default is returned if given, otherwise KeyError is raised
  `popitem`(/) | Remove and return a (key, value) pair as a 2-tuple.
  `setdefault`(key[, default]) | Insert key with a value of default if key is not in the dictionary.
  `update`([E, ]**F) | If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
  `values`() |