#### Previous topic

scipy.optimize.least_squares

#### Next topic

scipy.optimize.lsq_linear

# scipy.optimize.nnls

`scipy.optimize.``nnls`(A, b)

  Solve `argmin_x || Ax - b ||_2` for `x>=0`. This is a wrapper for a FORTRAN non-negative least squares solver.

  Parameters:

  A : ndarray

  > Matrix `A` as shown above.

  b : ndarray

  > Right-hand side vector.

  Returns:

  x : ndarray

  > Solution vector.

  rnorm : float

  > The residual, `|| Ax-b ||_2`.

  Notes

  The FORTRAN code was published in the book below. The algorithm is an active set method. It solves the KKT (Karush-Kuhn-Tucker) conditions for the non-negative least squares problem.

  References

  Lawson C., Hanson R.J., (1987) Solving Least Squares Problems, SIAM