MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to solve the BVLS problem for huge (2e6x2e6) matrices which are very sparse (4 elements per row). Does anybody have a recommendation for a free solver (preferably a library of routines)?

The BVLS problem is defined as:

$\underset{l \le x \le u}{\min} \lVert Ax - b \rVert_2^2$

share|cite|improve this question
Have you looked at – Steve Huntsman Jun 10 '10 at 16:08
@Steve: I just looked at it and it provides several useful papers and links. But all the implementations don't seem to discuss sparse matrix support which I truly need. – Jacob Jun 10 '10 at 16:29 – Steve Huntsman Jun 10 '10 at 16:37
@Steve: Thanks, but how do I introduce the constraints? – Jacob Jun 10 '10 at 21:33
It appears you have a QP with simple bounds. There tons of solvers out there for QPs with sparse matrix support. You might want to look into these:,,, Or just look here under quadratic programming: – Gilead Aug 13 '10 at 3:28
up vote 2 down vote accepted

This is such a well-solved problem that there are many software packages that have built in functions for this.

Here are a selection of built-in functions in different software packages that can be used:

In Matlab: lsqlin (type help lsqlin into Matlab and it tells you exactly what to type. I have just (approximately) solved your problem with random sparse matrices and it works great.)

KNITRO for Mathematica this package also solves this exact problem but I don't have this software so I can't tell you which exact function.

For a free solver I have found this: However it assumes that $A$ has full column rank. This is just because this algorithm uses the dual problem which exists when the Hessian $A^TA$ is positive definite.

share|cite|improve this answer
@Alext87:I use lsqlin for my experiments but I need a solver to integrate into a larger application (and it should be free). The matrix is not full rank, so I don't know about quadprog. – Jacob Jun 14 '10 at 14:34

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.