Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.1.0 - Français


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 — rang
  • svd — décomposition en valeurs singulières
  • rowcomp — compression de lignes, image
  • colcomp — compression de colonnes, noyau

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 >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jun 17 17:52:27 CEST 2024