1
<?xml version="1.0" encoding="ISO-8859-1"?>
3
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4
* Copyright (C) 2008 - INRIA
6
* This file must be used under the terms of the CeCILL.
7
* This source file is licensed as described in the file COPYING, which
8
* you should have received as part of this distribution. The terms
9
* are also available at
10
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
13
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="qr" xml:lang="en">
16
<refpurpose>QR decomposi��o</refpurpose>
19
<title> Seq��ncia de Chamamento </title>
20
<synopsis>[Q,R]=qr(X [,"e"])
22
[Q,R,rk,E]=qr(X [,tol])
26
<title>Par�metros </title>
31
<para>matriz de reais ou complexos</para>
37
<para>n�mero real n�o-negativo</para>
43
<para>matriz quadrada ortogonal ou unit�ria</para>
50
matriz com as mesmas dimens�es de <literal>X</literal>
57
<para>matriz de permuta��o </para>
64
inteiro (posto QR de <literal>X</literal>)
71
<title>Descri��o</title>
74
<term>[Q,R] = qr(X)</term>
77
pproduz uma matriz triangular superior <literal>R</literal> de
78
mesma dimens�o que <literal>X</literal> e uma matriz ortogonal
79
(unit�ria no caso de matriz de complexos) <literal>Q</literal> tais
80
que <literal>X = Q*R</literal>. <literal>[Q,R] = qr(X,"e")</literal>
81
produz um "economia de tamanho": Se <literal>X</literal> � m-por-n
82
com m > n, ent�o, apenas as primeiras n colunas de
83
<literal>Q</literal> s�o computadas assim como as primeiras n linhas
84
de <literal>R</literal>.
87
De <literal>Q*R = X</literal> , segue que a k-�sima coluna da
88
matriz <literal>X</literal>, � expressa como combina��o linear das k
89
primeiras colunas de <literal>Q</literal> (com coeficientes
90
<literal> R(1,k), ..., R(k,k) </literal>). As k primeiras colunas de
91
<literal>Q</literal> formam uma base ortogonal para o subespa�o
92
gerado pelas k priemiras colunas de <literal>X</literal>. Se a
93
coluna <literal>k</literal> de <literal>X</literal> (i.e.
94
<literal>X(:,k)</literal> ) � uma combina��o linear das
95
<literal>p</literal> primeiras colunas de <literal>X</literal>,
96
ent�o, as entradas de <literal>R(p+1,k), ..., R(k,k)</literal> s�o
97
zeros. Neste caso, <literal>R</literal> � trapezoidal superior. Se
98
<literal>X</literal> tem posto <literal>rk</literal>, as linhas
99
<literal>R(rk+1,:), R(rk+2,:), ...</literal> s�o zeros.
104
<term>[Q,R,E] = qr(X)</term>
106
<para>produz uma matriz de permuta��o (de colunas)
107
<literal>E</literal>, uma matriz triangular superior
108
<literal>R</literal> com elementos na diagonal decrescentes e uma
109
matriz ortogonal (ou unitaria) <literal>Q</literal> tais que
110
<literal>X*E = Q*R</literal>. Se <literal>rk</literal> � o posto de
111
<literal>X</literal>, as <literal>rk</literal> primeiras entradas ao
112
longo da diagonal de <literal>R</literal>, i.e. <literal>R(1,1),
113
R(2,2), ..., R(rk,rk)
115
s�o todas diferentes de zero.
116
<literal>[Q,R,E] = qr(X,"e")</literal> produz uma "economia de
117
tamanho": Se <literal>X</literal> i� m-por-n com m > n, ent�o,
118
apenas as n primeiras colunas de <literal>Q</literal> s�o computadas
119
tanto quanto as n priemiras linhas de <literal>R</literal>.
124
<term>[Q,R,rk,E] = qr(X ,tol)</term>
127
retorna <literal>rk</literal> = estimativa do posto de
128
<literal>X</literal> i.e. <literal>rk</literal> � o n�mero elementos
129
da diagonal de <literal>R</literal> que s�o maiores que um dado
130
limiar <literal>tol</literal>.
135
<term>[Q,R,rk,E] = qr(X)</term>
138
retorna <literal>rk</literal> = estimativa do posto de
139
<literal>X</literal> i.e. <literal>rk</literal> � o n�mero de
140
elementos da diagonal de <literal>R</literal> que s�o maiores que
141
<literal>tol=R(1,1)*%eps*max(size(R))</literal>. Veja
142
<literal>rankqr</literal> para uma fatora��o QR que revela o posto
143
usando o n�mero de condicionamento de <literal>R</literal>.
150
<title>Exemplos</title>
151
<programlisting role="example"><![CDATA[
152
// fatora��o QR, caso gen�rico
153
// X � alta (posto cheio)
154
X=rand(5,2);[Q,R]=qr(X); [Q'*X R]
156
//X � gorda (posto cheio)
157
X=rand(2,3);[Q,R]=qr(X); [Q'*X R]
159
//coluna 4 de X � uma combina��o linear das colunas 1 e 2:
160
X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4)
162
//X tem posto 2, linhas 3 a $ de R s�o zero:
163
X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R
165
//Avaliando o posto rk: pivota��o por colunas ==> rk primeiras
166
//As entradas diagonais de R s�o n�o-nulas:
167
A=rand(5,2)*rand(2,5);
168
[Q,R,rk,E] = qr(A,1.d-10);
170
svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk)) (span="gerado")
174
<title> Ver Tamb�m</title>
175
<simplelist type="inline">
177
<link linkend="rankqr">rankqr</link>
180
<link linkend="rank">rank</link>
183
<link linkend="svd">svd</link>
186
<link linkend="rowcomp">rowcomp</link>
189
<link linkend="colcomp">colcomp</link>
194
<title> Fun��es Usadas</title>
195
<para>A decomposi��o qr � baseada nas rotinas de Lapack DGEQRF, DGEQPF,
196
DORGQR para as matrizes de reais ZGEQRF, ZGEQPF, ZORGQR para as matrizes