Solving weighted least squares problem with linear constraints

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

help quadprog
Best wishes
Torsten.

1 Comment

Thanks Torsten! I guess I just need to rewrite my weighted least squares problem in quadratic form...

Sign in to comment.

More Answers (1)

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

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?
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.

Asked:

on 2 Jul 2015

Commented:

on 2 Jul 2015

Community Treasure Hunt

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

Start Hunting!