Zahlenformat
Lösungskommentare
Ohne Beschreibung (nur Antwort)
a
b
c
d
x
y
z
clear
i
Randomize
3131313131351515151515≈83137
Wie man QR-Zerlegung mit Householder-Reflexionen berechnet
Konstruiere Reflektoren, die subdiagonale Einträge Spalte für Spalte zu Null machen. Jeder Reflektor wird durch den Spaltenvektor bestimmt, der reduziert wird; das Produkt der Reflektoren gibt Q (orthogonal), und die reflektierte Matrix ist R (obere Dreiecksform).
Householder-Reflexionen — gelöstes Beispiel (2×2)
Schreibe die Ausgangsmatrix
A
:
A
=
3
4
1
2
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;
Um die
QR
-Zerlegung mithilfe der Householder-Spiegelungsmethode durchzuführen, müssen die folgenden Schritte durchgeführt werden:
1)
Berechnen Sie den Householder-Spiegelungsvektor v für jede Spalte a der Matrix A2)
Für jede Spalte a der Matrix A wird die Householder-Matrix H berechnet3)
Nachdem wir die Householder-Transformation auf alle Spalten der Matrix A angewendet haben, ist die resultierende transformierte Matrix A' die obere Dreiecksmatrix R4)
Die orthogonale Matrix Q wird durch Multiplikation aller Householder-Matrizen H erhaltenUm die
QR
-Zerlegung mithilfe der Householder-Spiegelungsmethode durchzuführen, müssen die folgenden Schritte für jede Spalte
a
der Matrix
A
durchgeführt werden:
1)
Berechnen Sie die Norm ‖a‖ der Spalte a2)
Definieren Sie das Vorzeichen(s) der Spalte as
= -
sgn
(
a
[
i
])
;
// wobei
sgn(a)
= 1 falls a[i] ≥ 0, ansonsten -1a[i]
ist das i-te Element der Spalte ai
ist die Spaltennummer3)
Berechnen Sie den Householder-Spiegelungsvektorv
=
a
-
s
*
a
*
e
0
i
;
// wobei
eᵢ
ist der Standardbasisvektor, bei dem das i-te Element 1 und alle anderen Elemente 0 sindi
ist die Spaltennummer4)
Normalisieren Sie den Householder-Spiegelungsvektorv_norm
=
v
v
;
5)
Berechnen Sie die Householder-MatrixH
0
i
=
I
- 2 *
v_norm
*
v_norm
T
0
;
6)
Wenden Sie die Householder-Transformation auf die Matrix anA'
0
i
=
H
0
i
*
A'
0
i - 1
;
7)
Berechnen Sie die MatrixQ
0
i
=
Q
0
i - 1
*
H
0
i
;
2
Iteration 1Bei der ersten Iteration ist die Matrix
A'
0
0
gleich der ursprünglichen Matrix
A
:
A'
0
0
=
3
4
1
2
Schreiben Sie die Anfangsmatrix
Q
0
0
, die gleich der Einheitsmatrix ist:
Q
0
0
=
1
0
0
1
Der Vektor
a
ist gleich der
1
-ten Spalte der Matrix
A'
0
0
:
a
=
3
4
Berechnen Sie die Norm
a
der Spalte
a
:
a
=
5
;
Definieren Sie das Vorzeichen(
s
) der Spalte
a
:
s
= -
sgn
(
a
[
1
])
= -
sgn
-(
3
) = -(
1
) =
-1
;
Schreiben Sie den
1
-ten Standardbasisvektor:
e
0
1
=
1
0
Berechnen Sie den Householder-Spiegelungsvektor
:
v
=
a
-
s
*
a
*
e
0
1
=
3
4
-
-1
*
5
*
1
0
=
3
4
-
-5
0
=
8
4
;
Normalisieren Sie den Householder-Spiegelungsvektor
:
v_norm
=
v
v
=
89
100
9
20
Berechnen Sie den Householder-Spiegelungsvektor
:
H
0
1
=
I
- 2 *
v_norm
*
v_norm
T
0
=
1
0
0
1
- 2 *
89
100
9
20
*
89
100
9
20
=
=
89
100
9
20
·
89
100
9
20
=
4
5
2
5
2
5
1
5
=
1
0
0
1
- 2 *
4
5
2
5
2
5
1
5
=
=
4
5
2
5
2
5
1
5
·
2
=
4
5
*
2
2
5
*
2
2
5
*
2
1
5
*
2
=
1
3
5
4
5
4
5
2
5
=
1
0
0
1
−
1
3
5
4
5
4
5
2
5
=
1
-
1
3
5
0
-
4
5
0
-
4
5
1
-
2
5
=
-
3
5
-
4
5
-
4
5
3
5
Wenden Sie die Householder-Transformation auf die Matrix
A'
0
1
:
an
A'
0
1
=
H
0
1
·
A'
0
0
=
-
3
5
-
4
5
-
4
5
3
5
·
3
4
1
2
=
-5
0
-2
1
5
2
5
Berechnen Sie die Matrix
Q
0
1
:
Q
0
1
=
Q
0
0
·
H
0
1
=
1
0
0
1
·
-
3
5
-
4
5
-
4
5
3
5
=
-
3
5
-
4
5
-
4
5
3
5
3
Iteration 2Der Vektor
a
ist gleich der
2
-ten Spalte der Matrix
A'
0
1
:
a
=
0
2
5
Berechnen Sie die Norm
a
der Spalte
a
:
a
=
2
5
;
Definieren Sie das Vorzeichen(
s
) der Spalte
a
:
s
= -
sgn
(
a
[
2
])
= -
sgn
-(
2
5
) = -(
1
) =
-1
;
Schreiben Sie den
2
-ten Standardbasisvektor:
e
0
2
=
0
1
Berechnen Sie den Householder-Spiegelungsvektor
:
v
=
a
-
s
*
a
*
e
0
2
=
0
2
5
-
-1
*
2
5
*
0
1
=
0
2
5
-
0
-
2
5
=
0
4
5
;
Normalisieren Sie den Householder-Spiegelungsvektor
:
v_norm
=
v
v
=
0
1
Berechnen Sie den Householder-Spiegelungsvektor
:
H
0
2
=
I
- 2 *
v_norm
*
v_norm
T
0
=
1
0
0
1
- 2 *
0
1
*
0
1
=
=
0
1
·
0
1
=
0
0
0
1
=
1
0
0
1
- 2 *
0
0
0
1
=
=
0
0
0
1
·
2
=
0
*
2
0
*
2
0
*
2
1
*
2
=
0
0
0
2
=
1
0
0
1
−
0
0
0
2
=
1
-
0
0
-
0
0
-
0
1
-
2
=
1
0
0
-1
Wenden Sie die Householder-Transformation auf die Matrix
A'
0
2
:
an
A'
0
2
=
H
0
2
·
A'
0
1
=
1
0
0
-1
·
-5
0
-2
1
5
2
5
=
-5
0
-2
1
5
-
2
5
Berechnen Sie die Matrix
Q
0
2
:
Q
0
2
=
Q
0
1
·
H
0
2
=
-
3
5
-
4
5
-
4
5
3
5
·
1
0
0
-1
=
-
3
5
-
4
5
4
5
-
3
5
4
Matrix Q, RQ
=
Q
0
2
=
-
3
5
-
4
5
4
5
-
3
5
R
=
A'
0
2
=
-5
0
-2
1
5
-
2
5
Answer
A = Q · RQ
=
-
3
5
-
4
5
4
5
-
3
5
R
=
-5
0
-2
1
5
-
2
5
Größe2×2MethodeHouseholder-Reflexionen