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
k
iè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 >> |