Lösungskommentare
Ohne Beschreibung (nur Antwort)
a
b
c
d
x
y
z
AC
i
Randomize
Zahlenformat
3131313131351515151515≈52188552198585858586
Runden auf
Nachkommastellen
10
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
517766953
1250000000
;
c
=
a
r
=
1
1
517766953
1250000000
=
1767766953
2500000000
;
s
= -
b
r
= -
1
1
517766953
1250000000
=
-
1767766953
2500000000
;
G
=
c
s
0
-s
c
0
0
0
1
=
1767766953
2500000000
-
1767766953
2500000000
0
1767766953
2500000000
1767766953
2500000000
0
0
0
1
;
Matrix
A
0
1
A
0
1
=
G
0
·
A
0
0
=
1767766953
2500000000
-
1767766953
2500000000
0
1767766953
2500000000
1767766953
2500000000
0
0
0
1
·
1
1
0
1
0
1
0
1
1
=
1
517766953
1250000000
0
0
1767766953
2500000000
-
1767766953
2500000000
1
1767766953
2500000000
1767766953
2500000000
1
Matrix
G
T
0
G
T
0
=
1767766953
2500000000
1767766953
2500000000
0
-
1767766953
2500000000
1767766953
2500000000
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
·
1767766953
2500000000
1767766953
2500000000
0
-
1767766953
2500000000
1767766953
2500000000
0
0
0
1
=
1767766953
2500000000
1767766953
2500000000
0
-
1767766953
2500000000
1767766953
2500000000
0
0
0
1
3
Iteration 2i
=
2
;
j
=
3
;
a
=
a
0
k - 1
0
i,i
=
a
0
1
0
2,2
=
-
1767766953
2500000000
;
b
=
a
0
k - 1
0
j,i
=
a
0
1
0
3,2
=
1
;
r
=
a
2
0
+
b
2
0
=
-
1767766953
2500000000
2
0
+
1
2
0
=
1
1123724357
5000000000
;
c
=
a
r
=
-
1767766953
2500000000
1
1123724357
5000000000
=
-
1443375673
2500000000
;
s
= -
b
r
= -
1
1
1123724357
5000000000
=
-
8164965809
10000000000
;
G
=
1
0
0
0
c
s
0
-s
c
=
1
0
0
0
-
1443375673
2500000000
-
8164965809
10000000000
0
8164965809
10000000000
-
1443375673
2500000000
;
Matrix
A
0
2
A
0
2
=
G
0
·
A
0
1
=
1
0
0
0
-
1443375673
2500000000
-
8164965809
10000000000
0
8164965809
10000000000
-
1443375673
2500000000
·
1
517766953
1250000000
0
0
1767766953
2500000000
-
1767766953
2500000000
1
1767766953
2500000000
1767766953
2500000000
1
=
1
517766953
1250000000
0
0
1767766953
2500000000
1
1123724357
5000000000
0
1767766953
2500000000
816496581
2000000000
-1
193375673
1250000000
Matrix
G
T
0
G
T
0
=
1
0
0
0
-
1443375673
2500000000
8164965809
10000000000
0
-
8164965809
10000000000
-
1443375673
2500000000
Matrix
Q
0
2
Q
0
2
=
Q
0
1
·
G
T
0
=
1767766953
2500000000
1767766953
2500000000
0
-
1767766953
2500000000
1767766953
2500000000
0
0
0
1
·
1
0
0
0
-
1443375673
2500000000
8164965809
10000000000
0
-
8164965809
10000000000
-
1443375673
2500000000
=
1767766953
2500000000
1767766953
2500000000
0
816496581
2000000000
-
816496581
2000000000
8164965809
10000000000
1443375673
2500000000
-
1443375673
2500000000
-
1443375673
2500000000
4
Matrix Q, RQ
=
Q
0
2
=
1767766953
2500000000
1767766953
2500000000
0
816496581
2000000000
-
816496581
2000000000
8164965809
10000000000
1443375673
2500000000
-
1443375673
2500000000
-
1443375673
2500000000
R
=
A
0
2
=
1
517766953
1250000000
0
0
1767766953
2500000000
1
1123724357
5000000000
0
1767766953
2500000000
816496581
2000000000
-1
193375673
1250000000
Answer
A = Q · RQ
=
1767766953
2500000000
1767766953
2500000000
0
816496581
2000000000
-
816496581
2000000000
8164965809
10000000000
1443375673
2500000000
-
1443375673
2500000000
-
1443375673
2500000000
R
=
1
517766953
1250000000
0
0
1767766953
2500000000
1
1123724357
5000000000
0
1767766953
2500000000
816496581
2000000000
-1
193375673
1250000000
Größe3×3MethodeGivens-Rotation