Diskussion:Householdertransformation
Beispiele
mmh, könnte jemand mal ein einfaches Beispiel für eine QR-Zerlegung mit Householder hinzufügen? Tausend Dank --JoergBoerg 15:33, 23. Okt 2005 (CEST)
- Es ist nicht leicht, ein gutes Beispiel zu finden, bei dem nicht schon nach einer Iteration übelste Wurzelterme auftreten.--Sandro M. Roch (Diskussion) 23:53, 14. Feb. 2018 (CET)
Mit Maple 7 kann ich leider den angegeben Quelltext nicht umsetzten. 83.129.170.34 15:27, 29. Mai 2006 (CEST)
Definition
"Die Spiegel-Hyperebene kann durch einen Einheitsvektor v (einen Vektor mit der Länge 1), der orthogonal zur Hyperebene ist, definiert werden."
Es ist meiner Meinung nach nicht erforderlich, den Begriff "Einheitsvektor" hier bereits anzuführen. Auch würde ich es für sinnvoller halten, wenn zuerst der allgemeine Fall (der in der Praxis glaub ich öfters gebraucht wird) genannt wird und dann danach lediglich erwähnt würde, dass bei einem gegebenen Einheitsvektor der Term im Nenner wegfällt... Finde einfach definitionen sollten kurz und allgemein sein. --Axel Wagner 16:28, 20. Jun. 2007 (CEST)
- Lass so stehen, ist verständlicher. Der Stoff ist schon hart genug so. -- 80.136.233.165 22:47, 15. Dez. 2007 (CET)
QR-Zerlegung
Darf der Code und die Beispiele zur QR-Zerlegung bitte in den entsprechenden Artikel verschoben werden?--LutzL 14:59, 24. Sep. 2007 (CEST)
Ist der Aufwand der QR-Zerlegung mit Householder nicht 2/3 n^3? (siehe https://www.igpm.rwth-aachen.de/Numa/NumaMB/SS12/grUebung7.pdf auf Seite 5) (nicht signierter Beitrag von 134.61.176.235 (Diskussion) 17:44, 28. Aug. 2019 (CEST))
Wo sind denn die Codes hin...
ich dachte da waren vor kurzem welche und jetzt sind sie scheinbar gelöscht? --
- Bitte signiere Deine Beitraege. Nutze die Versionsgeschichte, um Änderungen am Artikel nachzuvollziehen. Es ist nicht WP-gerecht, komplexe Quellcodes darzustellen, man nutze wikisource bzw. wikibooks dafür. Außerdem war der Code am Thema vorbei, da es hier rein um die Householder-Spiegelung geht.--LutzL 09:10, 4. Nov. 2008 (CET)
Skalarprodukt und dyadisches Produkt
Anmerkung zum Skalarprodukt: v^T v ist nur im reellen das Skalarprodukt, im Komplexen müsste es v^T* v sein (wobei * die Bildung des komplex-konjugierten beschreibt) wenn ich mich nicht täusche. -- 82.149.78.93 22:50, 25. Jan. 2011 (CET)
Sollte bei der Definition von H nicht explizit angegeben werden, dass das dyadische Produkt ist? Die Verwendung von und mit unterschiedlichen Bedeutungen scheint mir unglücklich. -- Kuenzle 08:40, 13. Aug. 2009 (CEST)
- Man kann das natürlich etwas erklären, aber v ist ein Spaltenvektor, also eine nx1-Matrix. Der transponierte Vektor ist dann eine Zeile, also 1xn. Das dyadische Produkt ist also eine (nx1)(1xn)=(nxn) Matrix, das Skalarprodukt eine (1xn)(nx1)=(1x1)-Matrix bzw. eben ein Skalar. Tensoren oder Kroneckerprodukte werden hier nicht benötigt, nur Matrizenrechnung. Dass man dyadische Produkte verwenden kann, um Tensorprodukte als Matrizen darzustellen, ist eine andere Baustelle.--LutzL 09:25, 13. Aug. 2009 (CEST)
involutorisch
- sie ist orthogonal (H − 1 = HT) und damit auch involutorisch: H2 = I.
Ist jede orthogonale Matrix involutorisch? Meiner Meinung nach nicht... -- 84.142.55.188 16:49, 2. Sep. 2009 (CEST)
- Das ist mit der Eigenschaft davor zusammen zu lesen: symmetrisch+orthogonal=>involutorisch.--LutzL 18:10, 2. Sep. 2009 (CEST)
Das macht Sinn - aber muesste irgendwie klarer da stehen. Wie weiss ich leider auch nicht so genau. -- 84.142.113.99 20:56, 2. Sep. 2009 (CEST)
- Erledigt --Digamma 16:49, 27. Mai 2010 (CEST)
widerspruch
1. "Die Spiegel-Hyperebene kann durch einen Normalenvektor v, also einen Vektor, der orthogonal zur Hyperebene ist, definiert werden"
2. "Geometrisch ist der Vektor v die Richtung einer der Winkelhalbierenden der Geraden in Richtung a und in Richtung e"
die winkelhalbierende von a und e liegt IN der ebene, die a auf e spiegelt. laut 1. soll v aber normal zur spiegelebene sein. beides geht wohl nicht. (nicht signierter Beitrag von 77.187.223.46 (Diskussion) 23:41, 19. Aug. 2010 (CEST))
- Es gibt zwei Winkelhalbierende, die "zwischen" a und e und die "zwischen" a und -e. Diese stehen senkrecht zueinander in der von a und e aufgespannten Ebene. Um a auf |a|*e zu spiegeln, braucht es die letztere. Beides sind aber Winkelhalbierende der durch die Richtungen definierten Geraden und zur Konstruktion der Spiegelungsmatrix geeignet. Außer natürlich, wenn a und e (fast) parallel sind, was dann zu mysteriösen Fehlern in den letzten Lapack-Versionen (und darauf aufbauenden Projekten wie octave und numpy) führte.--LutzL 07:51, 20. Aug. 2010 (CEST)
- Eine Frage zur Konstruktion von v: Ich finde das mit dem Mittelpunkt der Verbindungsstrecke sehr kompliziert. Man bekommt doch schon ein mögliches v, wenn man einfach den Verbindungsvektor der beiden von Null gleichweit entfernten Punkte auf den beiden Geraden nimmt (und zwar den Normalenvektor der Spiegelebene, die diese beiden Punkte aufeinander abbildet). Rechnerisch ist das natürlich kein Unterschied, ob ich die Summe der beiden Vektoren nehme oder die Differenz, aber ich finde es anschaulicher. -- Digamma 13:46, 20. Aug. 2010 (CEST)
- Auch ich möchte die def. zu Verwirrung führende Erkläuterung bzgl. des Normalenvektors bemängeln. Gelesen im Zusammenhang mit dem ersten Abschnitt, muss man sich unweigerlich die Frage des Benutzers --77.187.223.46-- stellen. (nicht gerade förderlich ist, dass im folgenden Abschnitt gerade erklärt wird, wie man den Vektor der "falschen" Winkelhalbierenden ermittelt -- siehe LutzL--) (nicht signierter Beitrag von 139.20.128.116 (Diskussion) 16:12, 25. Aug. 2011 (CEST))
- Ich schließe mich der Bemängelung an, ich fände: "Der Vektor ist parallel zu " besser, ausserdem wird nicht , sondern normiert. --192.52.33.247 18:37, 29. Jul. 2013 (CEST)
- Auch ich möchte die def. zu Verwirrung führende Erkläuterung bzgl. des Normalenvektors bemängeln. Gelesen im Zusammenhang mit dem ersten Abschnitt, muss man sich unweigerlich die Frage des Benutzers --77.187.223.46-- stellen. (nicht gerade förderlich ist, dass im folgenden Abschnitt gerade erklärt wird, wie man den Vektor der "falschen" Winkelhalbierenden ermittelt -- siehe LutzL--) (nicht signierter Beitrag von 139.20.128.116 (Diskussion) 16:12, 25. Aug. 2011 (CEST))
- Eine Frage zur Konstruktion von v: Ich finde das mit dem Mittelpunkt der Verbindungsstrecke sehr kompliziert. Man bekommt doch schon ein mögliches v, wenn man einfach den Verbindungsvektor der beiden von Null gleichweit entfernten Punkte auf den beiden Geraden nimmt (und zwar den Normalenvektor der Spiegelebene, die diese beiden Punkte aufeinander abbildet). Rechnerisch ist das natürlich kein Unterschied, ob ich die Summe der beiden Vektoren nehme oder die Differenz, aber ich finde es anschaulicher. -- Digamma 13:46, 20. Aug. 2010 (CEST)
Pseudocode
Gibt es für die Erstellung von Pseudocode irgendeinen Standard? Falls ja, könnte man darauf verweisen? Falls nein, könnte jemand mit dem Fachwissen bitte den Code in eine verständliche Fassung bringen? Was, z.B. soll denn bitte "A(k:m,k)" sein?? --195.226.110.98 16:04, 29. Sep. 2011 (CEST)
- Die Notation ist in diversen CAS Standard, k:m steht für den Indexbereich
k,k+1,...,m-1,m. Es handelt sich also um einen unteren Teil einer Spalte einer Matrix.--LutzL 16:36, 29. Sep. 2011 (CEST)
- Danke für den Hinweis! --195.226.110.98 11:06, 30. Sep. 2011 (CEST)
Fehler in QR-Zerlegung
Da steht folgendes:
Müsste das nicht
sein? --Slian (Diskussion) 17:53, 8. Feb. 2013 (CET)
- Nein: Beim Transponieren von Produkten kehrt sich die Reihenfolge um: . -- HilberTraum (Diskussion) 20:18, 8. Feb. 2013 (CET)
- Ah ja, in meiner Literatur sind wird anders herum multipliziert: : Das sollte den Unterschied machen.--Slian (Diskussion) 20:25, 8. Feb. 2013 (CET)
- Ist hier eigentlich auch so rum: Erst wird mit transformiert und dann umgestellt zu mit . -- HilberTraum (Diskussion) 20:33, 8. Feb. 2013 (CET)
- Das steht aber mehr zwischen den Zeilen, als dass man das sofort sieht. Ich finde, das sollte im Artikel auch gleich ersichtlich sein, ohne, dass man vorher was in der Richtung studiert hat. --Slian (Diskussion) 21:56, 8. Feb. 2013 (CET)
- Ich habe das jetzt im Artikel etwas ausgeführt und dabei gleich ein paar weitere Fehler verbessert. -- HilberTraum (Diskussion) 20:35, 9. Feb. 2013 (CET)
- Das steht aber mehr zwischen den Zeilen, als dass man das sofort sieht. Ich finde, das sollte im Artikel auch gleich ersichtlich sein, ohne, dass man vorher was in der Richtung studiert hat. --Slian (Diskussion) 21:56, 8. Feb. 2013 (CET)
(i,i)-Minoren?
Im Artikel wird gesagt
- "Danach behandelt man mit einer Spiegelung analog und im i-ten Schritt den (i,i) Minoren des Produkts iterativ auf die gleiche Art"
aber das ist doch Quatsch, oder nicht? Der (i,i)-Minor wäre die Determinate der Matrix, die durch Streichen der i-ten Zeile und i-ten Spalte hervorgeht. Was hier sicher gemeint ist, ist die Hauptuntermatrix mit der weitergerechnet wird. Aber auch da ist es iterativ nicht die (i,i)-Hauptuntermatrix, sondern immer die (1,1)-Hauptuntermatrix. Dabei ist wichtig, dass nicht etwa stets kleiner werden, sondern die "fehlenden" Einträge mit der Einheitsmatrix aufgefüllt werden. In [[1]] wird das zum Beispiel recht gut aufgeschrieben mit der Unterscheidung zwischen und , wobei der Faktor der QR-Zerlegung ist und die Householdermatrix, die aus der Behandlung der jeweiligen Hauptuntermatrix hervorgeht.
Eventuell kenne ich aber auch nur die im Artikel benutzte Verwendung des Minoren-Begriffes nicht und das hat alles seine Richtigkeit. Vielleicht kann jemand da etwas Klarheit reinbringen. --IUniversEi (Diskussion) 17:33, 3. Jan. 2014 (CET)
- Bitte neue Beiträge unten einfügen. Bitte gern mutig voran und einmal alle Minoren durch Untermatrizen ersetzt. Da der Wiki-interne Link eindeutig ist, ist das kein Streitfall.--LutzL (Diskussion) 18:46, 3. Jan. 2014 (CET)
Schreibung
Nach allen Regeln der Kunst, des Duden und der Logik (erster Teil englisch, zweiter lateinisch) ist dieses Bandwurmwort zu zerlegen. Householder-Transformation. (nicht signierter Beitrag von 193.138.10.34 (Diskussion) 11:08, 1. Sep. 2014 (CEST))
„durch Null“ „durch den Ursprung“
Wieso wird am Anfang des Artikels so viel Wert darauf gelegt, dass die Hyperebene durch Null geht?
1. Ich sehe keinen Unterschied bei der Rechnung, abhängig von der Lage der Ebene. (Bitte korrigiert mich)
2. Wenn es tatsächlich wichtig ist, müsste es nicht heißen: „die durch Null verläuft“ anstelle einfach nur „durch Null“? (nicht signierter Beitrag von 92.212.39.104 (Diskussion) 14:22, 12. Sep. 2016 (CEST))
- Wenn die Null nicht in der Hyperebene liegt, dann ist die Spiegelung ja keine lineare Abbildung und kann darum auch nicht durch Multiplikation mit einer Transformationsmatrix berechnet werden. -- HilberTraum (d, m) 18:51, 12. Sep. 2016 (CEST)
sign(z(1))
Im Codebeispiel am Ende ist sign(z(1))
reichlich ungünstig.
Auch wenn norm(z)
nicht null ist, kann z(1)
durchaus null sein
und dann ist auch sign(z(1))
null.
In diesem Falle bekäme man eine Spiegelung, die z
gerade nicht auf einen Einheitsvektor abbildet.
Ich denke, man muss ein abgewandeltes sign
verwenden, wo beispielsweise sign(0)=1
ist. DrLemming (Diskussion) 12:01, 8. Mai 2017 (CEST)
- Ja, da hast du recht. Ich habe das mal oben, wo sign das erste Mal auftaucht vermerkt. -- HilberTraum (d, m) 13:39, 8. Mai 2017 (CEST)
Unklarheit bei QR-Zerlegung
Folgender Satz bereitet mir Kopfzerbrechen:
Danach behandelt man mit einer Spiegelung analog, wobei die Spiegelung so konstruiert wird, dass erste Zeile und Spalte von der Transformation unberührt bleiben. Dies wird erreicht, indem die erste Komponente des Spiegelungsvektors zu Null gesetzt wird.
Das genaue Vorgehen bleibt unklar. Soll im zweiten Iterationsschritt der Spiegelungsvektor für die Householder-Transformation zunächst so gewählt werden, dass die zweite Spalte der Matrix auf ein Vielfaches des zweiten Basiseinheitsvektors abgebildet würde, jedoch dann vor Berechnung der Householder-Matrix die erste Komponente des Spiegelungsvektors auf 0 gesetzt wird? Ich habe Zweifel, dass dies funktioniert. --Sandro M. Roch (Diskussion) 00:01, 15. Feb. 2018 (CET)