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
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.
| Report an issue | ||
| << polar | Factorisation | rankqr >> |