Solving weighted least squares problem with linear constraints

6 visualizzazioni (ultimi 30 giorni)
I am trying to solve a weighted least squares problem with both linear inequality and linear equality constraints. Which Matlab function should I use?

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

John D'Errico
John D'Errico il 2 Lug 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 Commenti
maagen
maagen il 2 Lug 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 il 2 Lug 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.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by