QR update mit Zeile anhängen (Golub's)

23/09/2009 - 10:29 von Olaf | Report spam
Hi,

z.Zt. beschàftige ich mich mit der QR Zerlegung nach Golub's Matrix
Computations, konkret mit dem unteren Anfügen einer Zeile an die Matrix
A in R^(m x n). Das Bsp. mit dem Anfügen oben habe ich soweit verstanden.

A1 = Q1 * R1

mit

R1 = J1 * ... * Jn * H wobei H=[w^T; R0]

und

Q1 = diag(1,Q0) * J1 * ... * Jn

Mittels Try&Error klappt es soweit den Vektor unten anzufügen,
allerdings ist mir der analytische Weg nicht so ganz klar. Irgendwie
würde ich erwarten, die Permuationsmatrix irgendwo beidseitig anzuwenden.

Im Golub wird die Perm.matrix wie folgt gebildet:


P = [
0 I_{m-k};
I_{k} 0
]

wobei k die 'Update' Stelle ist (konkret bei mir am Ende) - ich hàtte
etwas anderes erwartet, oder ist diese eine ganz spezielle?


Was bedeutet ide Aussage 'upon completion diag(1,P^T)*Q1 is the desired
orthogonal factor' Unten befindet sich ein kleines ML script dafür.

Thanks,
Olaf


8<
% QR update; w on bottom
A0=rand(3,3)
[m,n]=size(A0);
[Q0,R0]=qr(A0);
w=rand(3,1);
k=m; % bottom
A1=[A0;w']
[m,n]=size(A1);

P=eye(m,m);
p=[k+1, find([1:m] ~= (k+1))];
P = P(p,:)
P*A1 - [w';A0]

H = [w'; R0]
R1 = H;
J = eye(m,m);
for k=1:n
Jk = eye(m,m);
i = k;
j = k+1;
Jk(i:j,i:j) = givens(R1(i,i),R1(j,i))';
R1 = Jk'*R1
J = J* Jk;
end

Q1 = eye(m,m);
Q1(2:end,2:end) = Q0;
Q1 = P'*Q1 * J;

A1 - Q1 * R1

8
 

Lesen sie die antworten

#1 Christopher Creutzig
27/09/2009 - 20:35 | Warnen spam
Olaf wrote:

z.Zt. beschàftige ich mich mit der QR Zerlegung nach Golub's Matrix
Computations, konkret mit dem unteren Anfügen einer Zeile an die Matrix
A in R^(m x n). Das Bsp. mit dem Anfügen oben habe ich soweit verstanden.


Im Golub wird die Perm.matrix wie folgt gebildet:


P = [
0 I_{m-k};
I_{k} 0
]

wobei k die 'Update' Stelle ist (konkret bei mir am Ende) - ich hàtte
etwas anderes erwartet, oder ist diese eine ganz spezielle?



Wenn Du diese Permutationsmatrix auf die Matrix anwendest, die durch
das Anfügen der Zeile k unten an A antsteht, bekommst Du doch direkt die
Matrix, die durch Anfügen der Zeile k *oben* an A entsteht, oder habe
ich die Notation falsch verstanden?

Für zuverlàssige Statistiken sind bislang noch
nicht ausreichend viele Universen beobachtet worden.
[Hans Crauel zur Zuverlàssigkeit von Klimamodellen]

Ähnliche fragen