Givens-Rotation < Lin. Gleich.-systeme < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:05 Di 20.01.2009 | Autor: | Pacapear |
Hallo.
Ich habe eine Frage zu den Givens-Rotationen, also zu diesen Drehmatrizen.
Sie sehen ja wie folgt aus (jetzt mal nur im [mm] \IR^2):
[/mm]
[mm] \pmat{ c & s \\ -s & c } [/mm] mit [mm] c^2+s^2=1
[/mm]
c und s sollen ja quasi [mm]\ cos[/mm] und [mm]\ sin[/mm] darstellen und an die herkömmlichen Drehmatrizen erinnern.
Aber bei einer herkömmlichen Drehmatrix ist das Minuszeichen beim Sinus genau andersrum, oder?
Die herkömmlichen Drehmatrix (um den Winkel [mm] \phi) [/mm] lautet doch [mm] \pmat{ cos(\phi) & -sin(\phi) \\ sin(\phi) & cos(\phi) }.
[/mm]
Wieso ist das Vorzeichen bei Givens-Rotationen vertauscht?
LG, Nadine
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:36 Di 20.01.2009 | Autor: | legris |
Givensrotationen sind orthogonal. Das heisst
[mm] U(\phi)^TU(\phi) [/mm] = [mm] \pmat{ cos(\phi) & -sin(\phi) \\ sin(\phi) & cos(\phi) } \pmat{ cos(\phi) & sin(\phi) \\ -sin(\phi) & cos(\phi) } [/mm] = [mm] \pmat{ 1 & 0 \\ 0 & 1 }
[/mm]
Die "normale" Matrix, die du beschreibst, ist also die Transponierte der Givensrotation. Diese kannst du als Rücktransformation interpretieren, die einen Vektor [mm] \overline{c} [/mm] nach einer Givensrotation wieder zurückrotiert. In Formeln:
[mm] \overline{c} [/mm] = [mm] U(\phi)^T \underbrace{U(\phi) \* \overline{c}}_{rotiertes \overline{c}}
[/mm]
Ich hoffe, das hilft weiter....
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:20 Mi 21.01.2009 | Autor: | Pacapear |
Hallo!
> Ich hoffe, das hilft weiter....
Hmm, ich weiß nicht so ganz.
Du meinst also, die Givensrotation ist die Transponierte der normalen Drehmatrix?
Aber warum?
Warum ist die Givensrotation nicht genau die Drehmatrix?
Sie soll ja gerade drehen.
Das ist was ich nicht verstehe
Dreht Givens vielleicht im anderen Uhrzeigersinn als die normale Drehmatrix?
Wo wir schon bei Drehmatrix sind, ich versteh die Herleitung für die [mm]\ c[/mm] und [mm]\ s[/mm] nicht so ganz.
Ich hab hier folgendes stehen (im [mm] \IR^2):
[/mm]
Ich will Einträge unterhalb der Diagonalen eliminiren, also will ich folgendes erreichen:
[mm] \pmat{ c & s \\ -s & c }*\vektor{x_i \\ x_j}=\vektor{r \\ 0} \gdw r=cx_i+sx_j [/mm] und [mm] 0=-sx_i+cx_j
[/mm]
Nun sagt mein Buch, dass daraus folgt:
[mm] c=\bruch{x_i}{\wurzel{x_i^2+x_j^2}} [/mm] und [mm] s=\bruch{x_j}{\wurzel{x_i^2+x_j^2}}
[/mm]
Also ich kann diese Folgerung überhaupt nicht sehen.
Hab's schon mit umstellen und einsetzen versucht, komme aber nicht drauf.
Kannst du mir vielleicht helfen?
Ach ja, was genau sind denn eigentlich die [mm] x_i [/mm] und die [mm] x_j?
[/mm]
LG, Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:10 Do 22.01.2009 | Autor: | leduart |
Hallo
r ist die Laenge deines Vektors [mm] (x_i,x_j) [/mm] der gedreht werden soll.wenn du damit dann die 2 lin. gleichungen loest kommt das gesuchte ergebnis.
Was du damit meinst, dass du unter der Diagonalen 0 haben willst versteh ich nicht.
[mm] (x_i,x_j) [/mm] ist ein beliebiger Vektor, der offensichtlich in die x-Achse gedreht werden soll. warum da i,j statt 1,2 steht weiss ich nicht, vielleicht damit man es leichter mehrdimensional verallgemeinern kann?
Gruss leduart
|
|
|
|
|
> Was du damit meinst, dass du unter der Diagonalen 0 haben
> willst versteh ich nicht.
> [mm](x_i,x_j)[/mm] ist ein beliebiger Vektor, der offensichtlich in
> die x-Achse gedreht werden soll. warum da i,j statt 1,2
> steht weiss ich nicht, vielleicht damit man es leichter
> mehrdimensional verallgemeinern kann?
Hallo leduart,
die Methode der Givens-Rotation verwendet man üblicher-
weise für die Umformung (insbesondere die QR-Zerlegung) von
umfangreicheren nxn-Matrizen.
Gruß Al
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:32 Do 22.01.2009 | Autor: | Pacapear |
Hallo Leduart.
> r ist die Laenge deines Vektors [mm](x_i,x_j)[/mm] der gedreht
> werden soll.wenn du damit dann die 2 lin. gleichungen loest
> kommt das gesuchte ergebnis.
> Was du damit meinst, dass du unter der Diagonalen 0 haben
> willst versteh ich nicht.
Das versteh ich jetzt irgendwie gar nicht.
Also wir haben geschrieben, dass es bei der Givens-Rotations unser Ziel ist, zu Eliminieren.
Dann stand da das: [mm] \pmat{ c & s \\ -s & c }\cdot{}\vektor{x_i \\ x_j}=\vektor{r \\ 0} [/mm]
Ich hab das so verstanden, dass [mm]\ r[/mm] dabei nur irgendeine Zahl ist, und die [mm]\ 0[/mm] soll andeuten, dass ich unterhalb der Diagonalen Nullen erzeugen will (von Länge des Vektors und so haben wir nichts gesagt).
Denn ich will doch eine gegebene Matrix durch Multiplikation mit [mm] \pmat{ c & s \\ -s & c } [/mm] auf obere Dreiecksgestalt bringen, oder nicht?
[mm] \vektor{r \\ 0} [/mm] soll dann also unser Ziel sein (im [mm] \IR^2), [/mm] also rauskommen nach Anwendung der Matrix [mm] \pmat{ c & s \\ -s & c }.
[/mm]
So hab ich mir das zumindest überlegt.
Ist das falsch
Naja, und aus [mm] \pmat{ c & s \\ -s & c }\cdot{}\vektor{x_i \\ x_j}=\vektor{r \\ 0} [/mm] kann ich ja dann umformen in [mm] r=cx_i+sx_j [/mm] und [mm] 0=-sx_i+cx_j, [/mm] halt einfach mal die Matrixmultiplikation ausgerechnet.
Was ich halt nicht verstehe, ist, wie man jetzt von da auf folgende Werte für c und s kommt:
[mm] c=\bruch{x_i}{\wurzel{x_i^2+x_j^2}} [/mm] und [mm] s=\bruch{x_j}{\wurzel{x_i^2+x_j^2}}.
[/mm]
Könnte mir nochmal jemand versuchen zu helfen?
LG, Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:19 Fr 23.01.2009 | Autor: | alex42 |
Hallo Nadine,
vielleicht nochmal kurz zur Zerlegung selbst: Bei QR-Zerlegung ist ja das Ziel, durch orthogonale Transformationen eine obere Dreiecksmatrix R zu erzeugen. Bei der Givens-Rotation werden die Einträge unterhalb der Diagonalen von A durch Drehungen eliminiert: Im Dreidimensionalen kann man z.B. einen Vektor in die [mm] $x_1 [/mm] - [mm] x_3 [/mm] - $Ebene drehen, dann hat er die Form
[mm] $\vektor{v_1 \\0\\ v_3}$
[/mm]
die zweite Komponente wurde also eliminiert. Das macht man dann sukzessive für alle Komponenten unterhalb der Diagonalen, pro Schritt also nur eine Komponente (-> aufwändig).
Wie diese Drehmatrizen im 2-dimensionalen aussehen, wurde oben ja schon beschrieben. Wo das Minus steht ist dabei ziemlich egal, das bestimmt nur die Richtung, in die gedreht wird, ist also reine Konvention.
Zur Bestimmung von $c$ und $s$ musst du nur die Gleichungen
$0 = -s [mm] x_i [/mm] + c [mm] x_j$ [/mm] und
$c² + s² = 1$
ineinander einsetzen.
Gruß,
Alex
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:02 So 25.01.2009 | Autor: | hannaK |
Hallo Nadin,
ich beschäftige mich grad selbst mit dem Thema... da ich aber momentan leider nicht viel Zeit habe, versuche ich es ganz kurz zu erklären ( und leider ohne "perfekten Matrizen & co.)
Also, mit deiner Drehmatix möchtest du deinen Vektor (a,b) im R² so umdrehen, dass er auf der x1-Achse liegt und somit x2=0 wird.
wenn du also, deine Drematrix mit dem Vektor (a,b) als LGS schreiben würdest, erhälst du
ac + bs =r (I)
-as +bc =0 (II)
mit (II) gilt c= as/b
dieses in (I) eingesetzt ergibt .... s=br/(a²+b²)
Wenn du s dann in (II) wieder einsetzt, erhälst du c=ar/(a²+b²).
Mit sin²+cos²=1 folgt
a²r²/ (a²+b²)² + b²r²/ (a²+b²)² =1.
Wenn du diese Gleichung dann wieder nach r auflöst, bekommst du r=+-sqrt(a²+b²).
Setzt du dieses r in die zuvor berechneten c und s, so ergibt sich schließlich c=a/r und s=b/r, wobei r=sqrt(a²+b²) war!!! [sqrt steht für Quadrat-Wurzel]
Wenn wir uns im mehrdimensionalen Raum befinden, so sind xi und xj zunächst aus der ersten Spalte zu wählen, wobei dein xj unterhalb von xi ist. Wenn du nun also deine Drehmatrix von links mit Matrix A multiplizierst, so wird dein gewähltes Element xi = r und dein xj=0.
Ein schönes Beispiel ist auf http://de.wikipedia.org/wiki/Givens-Rotation, an dem du erkennen kannst, wie a11 nach der ersten Multiplikation zu r=sqrt(3²+4²)=5 wurde, während a41=4 zu Null wurde.
Wie die Drehmatrix erstellt wird, ist dir klar???
Einheitsmatrix aufstellen, dann die (c,s,-s,c) so positionieren/ einbetten, dass in diesem Beispiel a11 und a41 "verändert" werden. Somit hast du i=1 und j=4, wodurch du deine Drehmatrik G14 dann aufstellst.... mit den c=a/r und s=b/r, wobei r=sqrt(a²+b²) war!!!
LG Hanna
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:15 So 25.01.2009 | Autor: | hannaK |
Sorry, hab mich vorher verklickt und jetzt erscheint meine eigentliche Anwort leider als Frage, ... weiß ehrlich gesagt nicht, wie ich das verstellen könnte :(
Kann da jemand helfen??? :)
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:38 So 25.01.2009 | Autor: | leduart |
Hallo
Sicher ist r die Laenge des Vektors! Eine reine drehung, die du mit [mm] c^2+s^2=1 [/mm] hast kann doch einen vektor nur drehen und nicht seine laenge aendern!
Gruss leduart
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:49 So 25.01.2009 | Autor: | Pacapear |
Ok, hab ich das dann jetzt richtig verstanden:
Also ich will einen Vektor [mm] \vektor{a \\ b} [/mm] abbilden auf den ersten Einheitsvektor, also auf den Vektor [mm] \vektor{1 \\ 0}.
[/mm]
Dazu will ich die Drehmatrix [mm] \pmat{ c & s \\ -s & c } [/mm] benutzen, also [mm] \pmat{ c & s \\ -s & c }*\vektor{a \\ b}.
[/mm]
Und da soll ja dann als Ergebnis rauskommen [mm] \vektor{r \\ 0}.
[/mm]
So, und jetzt das, was ich "neu" verstanden habe:
Dieser Vektor [mm] \vektor{r \\ 0} [/mm] ist ein verlängerter/verkürzter erster Einheitsvektor (um den Faktor r), ist das richtig?
Und r ist dann der Wert, den ich auf der x-Achse abtrage, also die Länge des Vektors, der gedreht wurde (weil ja drehen die Länge nicht verändert).
Und dann hat r quasi die gleiche Forum wie die Länge eines Vektors in Polarkoordinatenform?
Ist das so richtig?
Noch eine Frage zum Schluss:
Bilde ich immer auf den ersten Einheitsvektor ab?
Oder bilde ich auch noch auf andere Einheitsvektoren ab, und wenn ja, wann?
LG, Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:02 Mo 26.01.2009 | Autor: | hannaK |
Hi Nadine,
was du geschrieben hast klingt eigentlich ganz gut.... denn es stimmt, dass r wie der Betrag(Länge) eines Vektors ausschaut. So hab ich's nämlich noch garnicht gesehen. Und ja, die Drehung ist somit längenerhaltend des Vektors $ [mm] \vektor{a \\ b} [/mm] $.
> Ok, hab ich das dann jetzt richtig verstanden:
> Also ich will einen Vektor $ [mm] \vektor{a \\ b} [/mm] $ abbilden auf den
> ersten Einheitsvektor, also auf den Vektor $ [mm] \vektor{1 \\ 0}. [/mm] $
> Dazu will ich die Drehmatrix $ [mm] \pmat{ c & s \\ -s & c } [/mm] $ benutzen,
> also $ [mm] \pmat{ c & s \\ -s & c }\cdot{}\vektor{a \\ b}. [/mm] $
> Und da soll ja dann als Ergebnis rauskommen $ [mm] \vektor{r \\ 0}. [/mm] $
> So, und jetzt das, was ich "neu" verstanden habe:
> Dieser Vektor $ [mm] \vektor{r \\ 0} [/mm] $ ist ein verlängerter/verkürzter
> erster Einheitsvektor (um den Faktor r), ist das richtig?
> Und r ist dann der Wert, den ich auf der x-Achse abtrage, also die
> Länge des Vektors, der gedreht wurde (weil ja drehen die Länge
> nicht verändert).
> Und dann hat r quasi die gleiche Forum wie die Länge eines Vektors
> in Polarkoordinatenform?
> st das so richtig?
> Noch eine Frage zum Schluss:
> Bilde ich immer auf den ersten Einheitsvektor ab?
Ja und Nein. Wenn du im R² bist ja, aber wenn du im
mehrdinemsionalen Raum bist, dann bildest du auf den
ensprechenden Vektor, mit dem du ein gewünschtes Element aus A
gleich Null setzen willst. Denn Sinn dieser Transformation ist eine
obere Dreiecksmatrix zu erzeugen und somit schrittweise unter der
Diagonalen die Nullen zu erzeugen. Willst du nämlich z.B. das
Element a42 einer 4x2-Matrix eliminieren, wirst du z.B. eine G24-Givensmatrix brauchen, die das gewünschte Element um den Winkel(phi) in der (x2,x4)-Ebene auf glaub x2 dreht und somit dieses gewünschte Element zu Null transformiert wird.
Ich hoffe das konnte dir bißchen weiter helfen... und dich nicht noch mehr verwirren :) (Übrigens, diese Erklärung passt zum Beispiel von Wiki, von dem ich letztens erzählt hab).
Grüße HannaK
Oder bilde ich auch noch auf andere Einheitsvektoren ab, und wenn ja, wann?
LG, Nadine
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:12 Mo 26.01.2009 | Autor: | hannaK |
Hey Nadine,
und dankeschön für's Ummogeln ;)
Wenn Zeit hab, werd ich versuchen weitere Fragen zu beantworten, denn ich habe bald Prüfung.... und es schadet mir auch nicht auf meine Lücken aufmerksam gemacht zu werden :)
Grüße
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:19 Do 22.01.2009 | Autor: | fred97 |
Vielleicht hilft Dir auch
[mm] $sin(-\phi) [/mm] = [mm] -sin(\phi)$ [/mm] und [mm] $cos(-\phi) [/mm] = [mm] cos(\phi) [/mm] $
weiter.
FRED
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:36 Do 22.01.2009 | Autor: | Pacapear |
> Vielleicht hilft Dir auch
>
> [mm]sin(-\phi) = -sin(\phi)[/mm] und [mm]cos(-\phi) = cos(\phi)[/mm]
>
> weiter.
Irgendwie leider auch nicht *verzweifel*
|
|
|
|
|
Hallo Nadine,
das spielt wohl gar keine Rolle, da man nachher
ohnehin wieder "zurückdreht".
Also reine Konventionssache.
Ersetzt man [mm] \phi [/mm] durch [mm] -\phi, [/mm] ergibt sich genau dieser
Vorzeichenwechsel (nur beim Sinus !).
Gruß
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:42 Do 22.01.2009 | Autor: | Pacapear |
Hallo!
> das spielt wohl gar keine Rolle, da man nachher
> ohnehin wieder "zurückdreht".
> Also reine Konventionssache.
"Zurückdrehen"?
Was meinst du denn damit?
Davon höre ich heute zum ersten Mal.
Wann, wie und warum sollte ich denn zurückdrehen wollen?
Ich drehe doch nur einmal in eine Richtung, um irgendwo in meiner Ausgangsmatrix eine 0 zu erzeugen.
Warum sollte ich nun zurückdrehen, dann würde ich die 0 doch wahrscheinlich wieder weg machen, oder?
Das ist mir irgendwie nicht klar
Wie dreht denn [mm] \pmat{ cos(\phi) & sin(\phi) \\ -sin(\phi) & cos(\phi) } [/mm] und wie dreht [mm] \pmat{ cos(\phi) & -sin(\phi) \\ sin(\phi) & cos(\phi) }?
[/mm]
Irgendeinen Unterschied muss es doch geben...
Ist der einzige Unterschied vielleicht die Richtung, in den ich den Vektor, auf den ich diese Matrix anwende, drehe?
Wenn ja, ist die Drehmatrix [mm] \pmat{ cos(\phi) & sin(\phi) \\ -sin(\phi) & cos(\phi) } [/mm] bei Givens dann vielleicht verdreht im Vorzeichen, weil ich den Vektor in die andere Richtung drehe als bei Anwendung der "klassischen" Drehmatrix [mm] \pmat{ cos(\phi) & -sin(\phi) \\ sin(\phi) & cos(\phi) }?
[/mm]
LG, Nadine
|
|
|
|
|
Hallo Nadine,
sorry, mit dem "Zurückdrehen" habe ich mich
wohl geirrt - das Thema Givensrotation ist mir
ja doch nicht sooo geläufig. Trotzdem spielt
dieses Vorzeichen beim Sinus in der Drehmatrix
keine wesentliche Rolle. Ob ich nun die
gewünschte Null unterhalb der Diagonale
mit einer Drehung um einen Winkel [mm] \phi [/mm] (als
Drehung des Raumes gegenüber dem Koordi-
natensystems) oder als Drehung des Koordina-
tensystems um den Winkel [mm] -\phi [/mm] beschreibe,
kommt auf dasselbe heraus.
Wichtig ist nur, dass es überhaupt eine
einfache Drehung gibt, die dies leistet.
Gruß Al
|
|
|
|