Nom

qr — factorisation QR

Séquence d'appel

[Q,R]=qr(X [,"e"])
[Q,R,E]=qr(X [,"e"])
[Q,R,rk,E]=qr(X [,tol])

Paramètres

X

matrice réelle ou complexe

tol

nombre réel positif

Q

matrice carrée unitaire

R

matrice de même dimensions que X

E

matrice de permutation

rk

entier (rang de X)

Description

[Q,R] = qr(X) renvoie une matrice triangulaire supérieure R de même dimensions que X et une matrice carrée othogonale (unitaire dans le cas complexe) Q telles que X = Q*R. [Q,R] = qr(X,"e") renvoie une decomposition de taille réduite: si X est une matrice m x n avec m > n alors seulement les n premières colonnes de Q sont calculées ainsi que les n premières lignes de R.

Il découle de Q*R = X que la kième colonne de X peut s'exprimer comme une combinaison linéaire des k premieres colonnes de Q (avec les coefficients R(1,k), ..., R(k,k). Les k premieres colonnes de Q forment une base orthogonale du sous espace généré par les Les k premieres colonnes de X. Si la colonne k de X est une combinaison linéaire des p premiéres colonnes de X alors les éléments R(p+1,k), ..., R(k,k) sont nuls. Dans cette situation R est une matrice trapézoidale supérieure. Si X est de rang rk alors les lignes R(rk+1,:), R(rk+2,:), ... sont nulles.

[Q,R,E] = qr(X) renvoie une matrice de permutations (de colonnes) E, une matrice triangulaire supérieure R dont les éléments diagonaux sont classés par ordre décroissant et une matrice unitaire Q telles que X*E = Q*R. si rk est le rang de X les rk premiers éléménts diagonaux de R sont tous non nuls. [Q,R,E] = qr(X,"e") renvoie une decomposition de taille réduite: si X est une matrice m x n avec m > n alors seulement les n premières colonnes de Q sont calculées ainsi que les n premières lignes de R.

[Q,R,rk,E] = qr(X [,tol])renvoie de plus rk =rang estimé de X. Plus précisément, rk est le nombre d'éléments diagonaux de R supérieurs à tol. La valeur par défaut de tol est R(1,1)*%eps*max(size(R))

renvoie rk = rang estimé de X. Ici, rk est le nombre d'éléments diagonaux de R supérieurs à R(1,1)*%eps*max(size(R).

Exemples

 
// QR factorization, generic case
// X is tall (full rank)
X=rand(5,2);[Q,R]=qr(X); [Q'*X R]

//X is fat (full rank)
X=rand(2,3);[Q,R]=qr(X); [Q'*X R]

//Column 4 of X is a linear combination of columns 1 and 2:
X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4)

//X has rank 2, rows 3 to $ of R are zero:
X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R

//Evaluating the rank rk: column pivoting ==> rk first
//diagonal entries of R are non zero :
A=rand(5,2)*rand(2,5);
[Q,R,rk,E] = qr(A,1.d-10);
norm(Q'*A-R)
svd([A,Q(:,1:rk)])    //span(A) =span(Q(:,1:rk))
 

Voir Aussi

rank , svd , rowcomp , colcomp

Fonctions Utilisées

La décomposition QR est basée sur les routines Lapack DGEQRF, DGEQPF, DORGQR pour les matrices réelles et ZGEQRF, ZGEQPF, ZORGQR pour le cas complexe.