Solving weighted least squares problem with linear constraints

7 views (last 30 days)
I am trying to solve a weighted least squares problem with both linear inequality and linear equality constraints. Which Matlab function should I use?

Accepted Answer

Torsten
Torsten on 2 Jul 2015
help quadprog
Best wishes
Torsten.
  1 Comment
maagen
maagen on 2 Jul 2015
Thanks Torsten! I guess I just need to rewrite my weighted least squares problem in quadratic form...

Sign in to comment.

More Answers (1)

John D'Errico
John D'Errico on 2 Jul 2015
No need to rewrite the problem into a form that quadprog can solve. Use lsqlin (optimization toolbox also). It does exactly what you wish.
  2 Comments
maagen
maagen on 2 Jul 2015
Ah, yeah, I just need to redefine |Cx-d|||^2 as |Qx-e|||^2 where Q=W^½C, e=W^½d, and W^½ is the matrix square root of my weighting matrix, right?
John D'Errico
John D'Errico on 2 Jul 2015
Yes. Of course, if the weights are just a vector w, then diag(sqrt(w)) will suffice to build the multiplier. And if you have a big problem, then I would either make the W matrix a sparse one for faster multiplies, or I would use bsxfun to scale the rows of C. These are all minor issues unless you have a big problem or you are solving many such problems.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!