Normalengleichung < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 16:09 So 20.05.2012 | Autor: | Katthi |
Aufgabe | Transformieren Sie die Normalengleichung zu Aufgabe 4 mit Ihrer QR-
Zerlegung auf Dreiecksgestalt und lösen Sie es durch Rückwärtseinsetzen
(d.h. ohne den Backslash-Operator). (mit Matlab zu lösen) |
Hallo Leute,
ich habe keine Ahnung, wie ich diese Aufgabe angehen soll.
In der erwähnten Aufgabe sollten wir die reduzierte QR-Zerlegung für ein überbestimmtes Gleichungssystem aufstellen.
Aber wie transfomiere ich damit dir Normalengleichung auf Dreiecksgestalt?
Die Gleichung besagt ja: [mm] A^T*A*x [/mm] = [mm] A^T*b
[/mm]
ich könnte ja dann Q*R für A einsetzen, aber wie gibt mir Matlab eine Dreiecksgestalt und wie setze ich dann Rückwärts ein ohne den Backslash-Operator??
Ich hoffe ihr habt eine Idee.
Viele Grüße,
Katthi
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:46 So 20.05.2012 | Autor: | logipech |
Ich stelle mir zur Zeit die gleiche Frage und teile mal meine Gedanken dazu mit:
Setzt man für $A^TAx=A^Tb$ die Matrizen $Q$ und $R$ ein, so erhält man auf der linken Seite $R^TR$. $R$ ist eine Diagonalmatrix (in diesem speziellen Fall) und somit ist auch $R^TR$ eine Diagonalmatrix, bzw. insb. eine Dreiecksmatrix.
Dann muss man auch nicht mit dem Backslash-Operator aus Matlab eine Lösung berechnen, sondern es reicht ein paar Koeffizienten zu kürzen.
Stutzig macht mich, dass von "Rückwärtseinsetzen" die Rede ist und, dass man sich die Matrix R genau anschauen muss, d.h. i.A. ist es nicht so lösbar.
Eine Idee habe ich dazu noch:
Matlab "löst" auch nicht lösbare LGS. Hier soll betont werden, dass $R^TR=A^Hx$ eindeutig lösbar ist, da R bei uns vollen Rang hat.
Wir hatten auch den Satz, dass die reduzierte QR-Darstellung ex., wenn A vollen Rang hat und dann muss auch R vollen Rang haben.
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 14:28 Mo 21.05.2012 | Autor: | Katthi |
Hey,
also das mit dem Einsetzen habe ich mir ja auch gedacht, aber wie bekomme ich die reine Transformation der Normalengleichung dann? ich denke, dass wir diese Dreiecksgestalt irgendwo ja auch anschaubar machen müssen, denn sonst könnte man ja direkt mit dem qr_gram_schmidt die Lösung bestimmen.
D.h. ich möchte doch soetwas haben wie: C*x = d, wobei C irgendeine Dreiecksmatrix ist, die sich aus Q und R zusammensetzt?!
Und naja das mit dem Rückwärtseinsetzen weiß ich auch garnicht in Matlab umzusetzen. :(
Vielleicht hast du ja mittlerweile schon eine neue Idee zur Umsetzung.
Viele Grüße
Katthi
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 24.05.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:48 Mo 21.05.2012 | Autor: | wieschoo |
Wenn du [mm]A^TA=:M[/mm] und [mm]A^Tb=:c[/mm] definierst. Dann hast du das LGS
Mx=c und somit auch [mm]Rx=Q^Tc[/mm] also [mm]\blue{Rx=d}[/mm] mit [mm]d=Q^Tc[/mm]. Damit hast du die Dreiecksgestalt und darfst rückwärst einsetzen.
Das Rückwärtseinsetzen kann man durch eine Schleife programmieren.
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 15:12 Mo 21.05.2012 | Autor: | Katthi |
Hey,
achso :D Dankeschön. Die Schleife habe ich auch schon.
nur bleibt noch eine Frage und zwar habe ich die Matrizen Q und R bereits durch eine function qr_gram_schmidt berechnet. Wie kann ich denn dann auf dieses Q und dieses R zugreifen für die neue function rueck_einsetzen ?
Da muss ich ja als Input dann R und d eingeben, wobei dann d = [mm] Q^T*b [/mm] ist aber wenn ich Q und d einsetze, wobei ich d durch eine eigene function gespeichert habe, sagt der mir, dass er R und Q nicht kennt.
habe das auch schon mit save/load probiert. Wenn ich im command window dann Q oder R eingebe, gibt der mir die richtig aus, sobald ich dann aber wieder mein d berechnen lassen will, so sagt der wieder, dass er Q nicht kennt.
Viele Grüße,
Katthi
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 17:35 Mo 21.05.2012 | Autor: | Katthi |
oh man irgendwie passt da garnichts von den Dimensionen. =(
Meine QR-Zerlegung durch das Gram-Schmidt-Verfahren liefert mir ja quasi die reduzierte QR-Zerlegung. Ist da irgendwie der Fehler, dass ich bei der Normalengleichung die komplette brauche?
hab das Verfahren auch schon umgeschrieben, aber es passt vorne und hinten nicht.
Ich hoffe ihr habt noch eine Idee...
Grüße,
Katthi
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:52 Mo 21.05.2012 | Autor: | Katthi |
klappt doch alles =)
Aber danke für die Hilfe!!
Viele Grüße,
Katthi
|
|
|
|
|
Ich möchte nochmals darauf eingehen, was ich oben geschrieben habe:
In der Aufgabenstellung ist ja die Rede von der Normalengleichung in Dreiecksform, d.h. $A^TAx=A^Tb$. Deshalb habe ich mich auch nur auf diese Gleichung in der Programmieraufgabe bezogen.
In Aufg.4 habe ich es entsprechend mit $Ax=b$ gelöst.
Es gilt also [mm] $A^TAx=(QR)^T [/mm] (QR)x=R^TQ^TQRx=R^TRx$ und, da $R$ Diagonalmatrix ist folgt mit $D:=R^TR$ (Diagonalmatrix), dass $Dx=A^Tb=:c$ Dreiecksform hat.
Zum Programmierteil kann man schwer etwas sagen, ohne den Quellcode zu sehen. Im Prinzip sollte es aber so funktionieren, wie es in der Vorlesung aufgeschrieben wurde:
function [Q,R] = qr_gram_schmidt(A)
...
end
Diese Funktion ruft man dann aus einer anderen Scriptdatei auf mit
[Q,R]=qr_gram_schmidt(A);
Und dann sollten die Matrizen fortan zur Verfügung stehen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 24.05.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 Mi 23.05.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|