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?

 Akzeptierte Antwort

Torsten
Torsten am 2 Jul. 2015

1 Stimme

help quadprog
Best wishes
Torsten.

1 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

John D'Errico
John D'Errico am 2 Jul. 2015

1 Stimme

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 Kommentare

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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by