deerlab.cvxnnls#

cvxnnls(AtA, Atb, tol=None, maxiter=None, x0=None)[source]#

Non-negative least-squares (NNLS) via the CVXOPT package.

Solves the problem

\min \Vert b - Ax \Vert^2

where AtA = A^TA and Atb = A^Tb using the non-linear convex programming tools from CVXOPT [1], [2].

Parameters:
AtAmatrix_like

Matrix A^TA

Atbarray_like

Vector A^Tb

tolfloat scalar

Tolerance used for deciding when elements of x are less than zero. The default is tol = max(shape(AtA))*norm(AtA,1)*eps.

maxiterinteger scalar

Maximum number of iterations. The default is maxiter = 5*max(shape(AtA))

verboseboolean

If set to True, display the iteration details during the optimization.

Returns:
xndarray

Solution vector.

References

[1]

M. Andersen, J. Dahl, and L. Vandenberghen, CVXOPT, Python Software for Convex Optimization http://cvxopt.org/

[2]

Rein, Lewe, Andrade, Kacprzak and Weber J. Magn. Reson., 295 (2018) 17–26. Global analysis of complex PELDOR time traces