QR-Zerlegung Rechner

Zahlenformat
Lösungskommentare
Ohne Beschreibung (nur Antwort)

a

b

c

d

x

y

z

clear

i

ab
x2
xn

Randomize

313131313135151515151583137
2
2510
=Lösen

  Wie man QR-Zerlegung mit Givens-Rotationen berechnet

Wende eine Folge von 2×2-Ebenen-Rotationen an, um subdiagonale Einträge einen nach dem anderen zu Null zu machen. Jede Givens-Rotation wird durch die zwei Einträge bestimmt, auf die sie wirkt. Das kumulative Produkt der Rotationen ist Q, und die rotierte Matrix ist R.

  Givens-Rotationen — gelöstes Beispiel (3×3)

Schreibe die Ausgangsmatrix
A
:
A
=
1
1
0
1
0
1
0
1
1
QR
Zerlegung ist eine Darstellung der Matrix
A
in der Form:
A
=
Q
*
R
;
Matrix
Q
ist eine orthonormale Matrix;
Matrix
R
ist eine obere Dreiecksmatrix;
Wir können Givens-Rotationen verwenden, um alle Elemente unterhalb der Hauptdiagonale der Matrix
A
zu Null zu machen;
Diese Methode ist iterativ und in einer Iteration wird ein Element zu Null gemacht;
In der letzten Iteration, wenn alle Elemente unterhalb der Hauptdiagonale zu Null gemacht wurden, erhalten wir die Matrix
R
;
Während der Berechnung der Matrix
R
berechnen wir in jeder Iteration die Matrix
G
, um die Elemente unterhalb der Hauptdiagonale zu Null zu machen;
Wir können die Matrix
Q
berechnen, indem wir alle transponierten Matrizen
G
miteinander multiplizieren;
Wir werden die Elemente in der Reihenfolge von oben nach unten und von links nach rechts zu Null machen;
In jeder Iteration müssen wir die folgenden Variablen definieren:
a
ist das Element der Matrix Aₖ₋₁, das sich auf der Hauptdiagonale in derselben Spalte befindet wie das Element, das wir zu Null machen wollen
a
=
a
0
k - 1
0
i,i
;
b
ist das Element der Matrix Aₖ₋₁, das wir zu Null machen wollen
b
=
a
0
k - 1
0
j,i
;
// wobei
j
ist die Nummer der Zeile, in der sich das Element befindet, das wir zu Null machen wollen
i
ist die Nummer der Spalte, in der sich das Element befindet, das wir zu Null machen wollen
k
ist die Iterationsnummer
Aₖ₋₁
ist die Matrix, die in der vorherigen Iteration berechnet wurde
Als Nächstes müssen wir die folgenden Werte berechnen:
r
=
a
2
0
+
b
2
0
;
c
=
a
r
;
s
= -
b
r
;
Jetzt können wir die Matrix
G
konstruieren:
1)
Die Basis der Matrix G ist eine Einheitsmatrix der Größe n mal n
// wobei
n
ist die Anzahl der Zeilen der Matrix A
2)
Element unter Index [i,i] ist gleich c
g
0
i,i
=
c
;
3)
Element unter Index [j,j] ist gleich c
g
0
j,j
=
c
;
4)
Element unter Index [j,i] ist gleich s
g
0
j,i
=
s
;
5)
Element unter Index [i,j] ist gleich -s
g
0
i,j
=
-s
;
Nachdem wir die Matrix
G
konstruiert haben, können wir sie von links mit der Matrix
A
0
k - 1
multiplizieren, und wir erhalten die Matrix
A
0
k
;
In diesem Schritt werden wir das Element unter Index
j,i
zu Null machen;
Wir werden auch die Matrix
Q
0
k - 1
mit der Matrix
G
T
0
multiplizieren und die Matrix
Q
0
k
erhalten;
2
Iteration 1
Bei der ersten Iteration ist die Matrix
A
0
0
gleich der ursprünglichen Matrix
A
:
A
0
0
=
1
1
0
1
0
1
0
1
1
Schreiben Sie die Anfangsmatrix
Q
0
0
, die gleich der Einheitsmatrix ist:
Q
0
0
=
1
0
0
0
1
0
0
0
1
i
=
1
;
j
=
2
;
a
=
a
0
k - 1
0
i,i
=
a
0
0
0
1,1
=
1
;
b
=
a
0
k - 1
0
j,i
=
a
0
0
0
2,1
=
1
;
r
=
a
2
0
+
b
2
0
=
1
2
0
+
1
2
0
=
1
41
100
;
c
=
a
r
=
1
1
41
100
=
71
100
;
s
= -
b
r
= -
1
1
41
100
=
-
71
100
;
G
=
c
s
0
-s
c
0
0
0
1
=
71
100
-
71
100
0
71
100
71
100
0
0
0
1
;
Matrix
A
0
1
A
0
1
=
G
0
·
A
0
0
=
71
100
-
71
100
0
71
100
71
100
0
0
0
1
·
1
1
0
1
0
1
0
1
1
=
1
41
100
0
0
71
100
-
71
100
1
71
100
71
100
1
Matrix
G
T
0
G
T
0
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
Matrix
Q
0
1
Q
0
1
=
Q
0
0
·
G
T
0
=
1
0
0
0
1
0
0
0
1
·
71
100
71
100
0
-
71
100
71
100
0
0
0
1
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
3
Iteration 2
i
=
2
;
j
=
3
;
a
=
a
0
k - 1
0
i,i
=
a
0
1
0
2,2
=
-
71
100
;
b
=
a
0
k - 1
0
j,i
=
a
0
1
0
3,2
=
1
;
r
=
a
2
0
+
b
2
0
=
-
71
100
2
0
+
1
2
0
=
1
11
50
;
c
=
a
r
=
-
71
100
1
11
50
=
-
29
50
;
s
= -
b
r
= -
1
1
11
50
=
-
41
50
;
G
=
1
0
0
0
c
s
0
-s
c
=
1
0
0
0
-
29
50
-
41
50
0
41
50
-
29
50
;
Matrix
A
0
2
A
0
2
=
G
0
·
A
0
1
=
1
0
0
0
-
29
50
-
41
50
0
41
50
-
29
50
·
1
41
100
0
0
71
100
-
71
100
1
71
100
71
100
1
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Matrix
G
T
0
G
T
0
=
1
0
0
0
-
29
50
41
50
0
-
41
50
-
29
50
Matrix
Q
0
2
Q
0
2
=
Q
0
1
·
G
T
0
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
·
1
0
0
0
-
29
50
41
50
0
-
41
50
-
29
50
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
4
Matrix Q, R
Q
=
Q
0
2
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
R
=
A
0
2
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Answer
A = Q · R
Q
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
R
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Größe3×3MethodeGivens-Rotation

  Berechnungsmethoden

  Quellen