Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
qr
QR decomposição
Seqüência de Chamamento
[Q,R]=qr(X [,"e"]) [Q,R,E]=qr(X [,"e"]) [Q,R,rk,E]=qr(X [,tol])
Parâmetros
- X
matriz de reais ou complexos
- tol
número real não-negativo
- Q
matriz quadrada ortogonal ou unitária
- R
matriz com as mesmas dimensões de
X
- E
matriz de permutação
- rk
inteiro (posto QR de
X
)
Descrição
- [Q,R] = qr(X)
pproduz uma matriz triangular superior
R
de mesma dimensão queX
e uma matriz ortogonal (unitária no caso de matriz de complexos)Q
tais queX = Q*R
.[Q,R] = qr(X,"e")
produz um "economia de tamanho": SeX
é m-por-n com m > n, então, apenas as primeiras n colunas deQ
são computadas assim como as primeiras n linhas deR
.De
Q*R = X
, segue que a k-ésima coluna da matrizX
, é expressa como combinação linear das k primeiras colunas deQ
(com coeficientesR(1,k), ..., R(k,k)
). As k primeiras colunas deQ
formam uma base ortogonal para o subespaço gerado pelas k priemiras colunas deX
. Se a colunak
deX
(i.e.X(:,k)
) é uma combinação linear dasp
primeiras colunas deX
, então, as entradas deR(p+1,k), ..., R(k,k)
são zeros. Neste caso,R
é trapezoidal superior. SeX
tem postork
, as linhasR(rk+1,:), R(rk+2,:), ...
são zeros.- [Q,R,E] = qr(X)
produz uma matriz de permutação (de colunas)
E
, uma matriz triangular superiorR
com elementos na diagonal decrescentes e uma matriz ortogonal (ou unitaria)Q
tais queX*E = Q*R
. Serk
é o posto deX
, asrk
primeiras entradas ao longo da diagonal deR
, i.e.R(1,1), R(2,2), ..., R(rk,rk)
são todas diferentes de zero.[Q,R,E] = qr(X,"e")
produz uma "economia de tamanho": SeX
ié m-por-n com m > n, então, apenas as n primeiras colunas deQ
são computadas tanto quanto as n priemiras linhas deR
.- [Q,R,rk,E] = qr(X ,tol)
retorna
rk
= estimativa do posto deX
i.e.rk
é o número elementos da diagonal deR
que são maiores que um dado limiartol
.- [Q,R,rk,E] = qr(X)
retorna
rk
= estimativa do posto deX
i.e.rk
é o número de elementos da diagonal deR
que são maiores quetol=R(1,1)*%eps*max(size(R))
. Vejarankqr
para uma fatoração QR que revela o posto usando o número de condicionamento deR
.
Exemplos
// fatoração QR, caso genérico // X é alta (posto cheio) X=rand(5,2);[Q,R]=qr(X); [Q'*X R] //X é gorda (posto cheio) X=rand(2,3);[Q,R]=qr(X); [Q'*X R] //coluna 4 de X é uma combinação linear das colunas 1 e 2: X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) //X tem posto 2, linhas 3 a $ de R são zero: X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R //Avaliando o posto rk: pivotação por colunas ==> rk primeiras //As entradas diagonais de R são não-nulas: 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)) (span="gerado")
Funções Usadas
A decomposição qr é baseada nas rotinas de Lapack DGEQRF, DGEQPF, DORGQR para as matrizes de reais ZGEQRF, ZGEQPF, ZORGQR para as matrizes de complexos.
Report an issue | ||
<< lu | Factorization | rankqr >> |