Householder-Transformation < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:03 Mi 20.02.2008 | Autor: | steffenk |
Aufgabe | Transformiere folgende Matrix mittels Householder-Transformation auf obere Dreiecksgestalt:
A= [mm] \pmat{ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 1 \\ 0 & 0 & 1} [/mm] |
Hallo,
irgendwie glückt mir das ganze nicht. Versuche das stur nach Algorithmus durchzuziehen.
Ich bestimme die Householder-Matrix: [mm] H(\vektor{0 \\ 0 \\ 1 \\ 0} [/mm] + sgn(0) * [mm] \parallel \vektor{0 \\ 0 \\ 1 \\ 0} \parallel) [/mm] = [mm] H(\vektor{0 \\ 0 \\ 1 \\ 0}) [/mm] = [mm] \pmat{ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1} [/mm]
Diese muss multipliziert werden mit der Matrix A. Es ergibt sich:
[mm] H(\vektor{0 \\ 0 \\ 1 \\ 0}) [/mm] * [mm] \pmat{ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 1 \\ 0 & 0 & 1} [/mm] = [mm] \pmat{ * & * & * \\ * & * & * \\ -1 & * & * \\ * & * & *}
[/mm]
Müsste ich nun nicht statt der -1 eine 0 vorfinden?
Vielleicht findet ja jemand meinen Fehler.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:52 Do 21.02.2008 | Autor: | alex42 |
Hallo steffenk,
Ist völlig richtig, dass die -1 eine Null sein sollte; das ist ja Sinn und Zweck der Householder-Zerlegung.
Ich glaube, der Fehler steckt in dem Vektor, aus dem du die Householder-Matrix bestimmst:
Berechnet wird dieser Vektor ja folgendermaßen:
mit x = [mm] \vektor{0 \\ 0 \\ 1 \\ 0}
[/mm]
v = x - sgn(0)* [mm] \parallel [/mm] x [mm] \parallel [/mm] * [mm] e_1,
[/mm]
wobei [mm] e_1 [/mm] der erste Einheitsvektor ist. Dann berechnest du H(v).
Für dieses v bekomme ich (anders als du) v = [mm] \vektor{1 \\ 0 \\ 1 \\ 0}, [/mm] ich schätze, hier hast du dich verrechnet, denn mit diesem Vektor funktioniert der Schritt.
Viele Grüße,
Alex
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:29 Do 21.02.2008 | Autor: | steffenk |
Hallo, danke für deine Hilfe.
Allerdings gilt doch:
sgn(0) = 0
[mm] \Rightarrow [/mm] v = x - sgn(0)* $ [mm] \parallel [/mm] $ x $ [mm] \parallel [/mm] $ * $ [mm] e_1, [/mm] $ = x
Oder habe ich etwas übersehen?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:03 Do 21.02.2008 | Autor: | alex42 |
Hi,
wenn ich mich recht entsinne ist die signum-Funktion definiert als
[mm] sgn(x)=\begin{cases} 1, & \mbox{für } x \ge 0 \\-1 , & \mbox{für } x < 0 \end{cases}
[/mm]
insbesondere ist sie immer ungleich Null, da sie ja nur das Vorzeichen liefert (und bei Null halt 1). Ich denke, da lag dein Fehler :)
Wenn ich mir die Formel, die ich geschrieben habe, so ansehe, muss es glaube ich
v = x + [mm] sgn(x_1) [/mm] * [mm] \parallel [/mm] x [mm] \parallel [/mm] * [mm] e_1
[/mm]
heißen.
Viele Grüße,
Alex
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:19 Fr 22.02.2008 | Autor: | steffenk |
Jetzt habe ich nochmal hier nachgeschaut:
http://mathworld.wolfram.com/Sign.html
dort steht auch sgn(0) = 0.
v = x + $ [mm] sgn(x_1) [/mm] $ * $ [mm] \parallel [/mm] $ x $ [mm] \parallel [/mm] $ * $ [mm] e_1 [/mm] $ , ist wie du sagst korrekt.
Ich denke das ganze fällt mit der sgn() funktion, je nachdem wie die im householder algorithmus definiert ist.
Dennoch danke für deine Hilfe.
|
|
|
|