Question is quite straight forward. I have an overdetermined system I am attempting to use SciPy LSQR (or LSMR) to solve. However, I cannot find anywhere in the docs on how to set restraints for the minimization.

E.G. Let’s say this is the output:

The matrix A has 469 rows and 3 columns damp = 0.00000000000000e+00 atol = 1.00e-06 conlim = 1.00e+08 btol = 1.00e-06 maxiter = 3 itn x(1) norm r norm Ar compatible LS norm A cond A 0 0.00000e+00 1.150e-01 2.291e-02 1.0e+00 1.7e+00 1 3.33741e-01 9.411e-03 5.359e-05 8.2e-02 2.8e-02 2.0e-01 5.0e+00 2 2.73042e-01 8.440e-03 3.281e-06 7.3e-02 1.9e-03 2.0e-01 7.8e+01 3 -1.70218e-01 8.332e-03 3.197e-12 7.2e-02 1.9e-09 2.0e-01 4.1e+02 LSMR finished The least-squares solution is good enough, given atol istop = 2 normr = 8.3e-03 normA = 2.0e-01 normAr = 3.2e-12 itn = 3 condA = 4.1e+02 normx = 8.7e-01 3 -1.70218e-01 8.332e-03 3.197e-12 7.2e-02 1.9e-09 2.0e-01 4.1e+02

We can see the solution arrive to `-0.1`

, which is great. However, I’d like to set bounds such that `x(1) >= 0`

. Therefore, the iteration would stop when `x(1) = 0.27`

. I cannot find anywhere on the documentation: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.lsqr.html regarding how to do this.

Any help would greatly be appreciated!

## Advertisement

## Answer

The functions `lsqr`

and `lsmr`

in `scipy.sparse.linalg`

do not have options for adding constraints. You might be able to use `scipy.optimize.lsq_linear`

instead.