About qr decomposition function : qr

5 vues (au cours des 30 derniers jours)
JONGIN PARK
JONGIN PARK le 17 Déc 2014
Commenté : Titus Edelhofer le 17 Déc 2014
X = qr(A) return a matrix X such that triu(X) is the upper triangualr factor R .
Could tell me how to calculate X ? (what is the algorithm to calculate X ?)
Also, why triu(X) is equal to R ?
  4 commentaires
Matt J
Matt J le 17 Déc 2014
Whoops, that's right. I forgot how that calling syntax worked. However, like the OP, I find it non-intuitive that qr() would return an output of that form. If triu(X) is R, then what is useful about the lower triangular part of the output? Why not just return R instead of forcing the user to call triu(X)?
Titus Edelhofer
Titus Edelhofer le 17 Déc 2014
Good question. The example at the bottom of the doc makes exactly this distinction between sparse and full:
if issparse(A)
R = qr(A);
else
R = triu(qr(A));
end
The values in the lower triangle describe the elementary reflectors for computing the qr decomposition, although I admit I'm not sure what you can use them for ;-).
Titus

Connectez-vous pour commenter.

Réponses (1)

Titus Edelhofer
Titus Edelhofer le 17 Déc 2014
Hi,
regarding the algorithm: the help for qr states
% X = QR(A) and X = QR(A,0) return the output of LAPACK's *GEQRF routine. % TRIU(X) is the upper triangular factor R.
So take a look at the GEQRF documentation about the algorithm. It looks as if the algorithm is based on Householder reflections.
Titus

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by