Zahlenformat
Lösungskommentare
Ohne Beschreibung (nur Antwort)
a
b
c
d
x
y
z
clear
i
Randomize
3131313131351515151515≈83137
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 wollena
=
a
0
k - 1
0
i,i
;
b
ist das Element der Matrix Aₖ₋₁, das wir zu Null machen wollenb
=
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 wolleni
ist die Nummer der Spalte, in der sich das Element befindet, das wir zu Null machen wollenk
ist die IterationsnummerAₖ₋₁
ist die Matrix, die in der vorherigen Iteration berechnet wurdeAls 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 A2)
Element unter Index [i,i] ist gleich cg
0
i,i
=
c
;
3)
Element unter Index [j,j] ist gleich cg
0
j,j
=
c
;
4)
Element unter Index [j,i] ist gleich sg
0
j,i
=
s
;
5)
Element unter Index [i,j] ist gleich -sg
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 1Bei 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 2i
=
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, RQ
=
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 · RQ
=
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