Basen und Vektorraum berechnen < Maxima < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:55 Fr 14.05.2010 | Autor: | MissYumi |
Hallo,
ich wüsste gerne wie ich in Maxima/wxMaxima den Vektorraum und die Basis zu einer Matrix berechnen kann. Ich stelle mich auf dem Papier gerade etwas an....
Die Eigenwerte habe ich schon...
Lieben Dank!
|
|
|
|
Hallo,
auch wenn Du mit einem Programm rechnen möchtest, solltest Du die genaue Fragestellung angeben.
Ich reime mir zusammen, daß Du zu einer gegebenen Matrix die Eigenräume berechnen möchtest. Richtig?
Wenn [mm] \lambda [/mm] der Eigenwert ist, bekommst Du den Eigenraum zum EW [mm] \lambda, [/mm] indem Du den Kern der Matrix [mm] A-\lambda [/mm] E bestimmst,
dh. den Lösungsraum des homogenen linearen Gleichungssystems [mm] (A-\lambda [/mm] E)x=0.
Ich könnte mir vorstellen, daß Du mit dieser Information schon weiterkommst.
Gruß v. Angela
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:43 Fr 14.05.2010 | Autor: | MissYumi |
Lieben Dank für die schnelle Antwort. Also zu meiner explizieten Aufgabe:
Ich habe zwei Matrixen A und B und soll eine Matrix S bestimmen für die gilt [mm] S^{-1} [/mm] * A *S und [mm] S^{-1} [/mm] * B *S. Die Matrix S besteht aus den Eigenvektoren als Spalten, d.h. ich brauche zu jeder Matrix 3 Eigenvektoren.
Hier mal die Matrizen A und B:
A = [mm] \pmat{ -2 & -6 & -6 \\ 1 & 3 & 2 \\ 1 & 2 & 3}
[/mm]
B = [mm] \pmat{ 3 & 0 & 0 \\ -1 & 1 & -1 \\ 1 & 2 & 4}
[/mm]
Soweit sogut... Die Eigenwerte habe ich bestimmt bekommen. Hier mal ein Beispiel meiner Rechnung für den Eigenwert 2:
(A-2*E)x=0:
[mm] $\pmat{ 0 & -6 & -6 \\ 1 & 1 & 2 \\ 1 & 2 & 1} *\vektor{x1 \\ x2 \\ x3} [/mm] = [mm] \vektor{0 \\ 0 \\ 0} [/mm] $
Diese LGS muss ich nun lösen um den Vektorraum zu bestimmen und daraus dann einen Eigenvektor wenn ich das richtig verstanden habe.
Meine Lösung wäre jetzt [mm] \vektor{t \\ -t \\ t} [/mm] aber maxima sagt es kommt x1 = x2 = x3 = 0 raus.... ich verzweifel damit... Außerdem habe ich zun den Ausgangsmatrizen nur je zwei Eigenwerte....
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:30 Fr 14.05.2010 | Autor: | rainerS |
Hallo!
> Lieben Dank für die schnelle Antwort. Also zu meiner
> explizieten Aufgabe:
>
> Ich habe zwei Matrixen A und B und soll eine Matrix S
> bestimmen für die gilt [mm]S^{-1}[/mm] * A *S und [mm]S^{-1}[/mm] * B *S.
> Die Matrix S besteht aus den Eigenvektoren als Spalten,
> d.h. ich brauche zu jeder Matrix 3 Eigenvektoren.
>
> Hier mal die Matrizen A und B:
>
> A = [mm]\pmat{ -2 & -6 & -6 \\ 1 & 3 & 2 \\ 1 & 2 & 3}[/mm]
> B =
> [mm]\pmat{ 3 & 0 & 0 \\ -1 & 1 & -1 \\ 1 & 2 & 4}[/mm]
>
>
> Soweit sogut... Die Eigenwerte habe ich bestimmt bekommen.
> Hier mal ein Beispiel meiner Rechnung für den Eigenwert
> 2:
>
> (A-2*E)x=0:
>
> [mm]\pmat{ 0 & -6 & -6 \\ 1 & 1 & 2 \\ 1 & 2 & 1} *\vektor{x1 \\ x2 \\ x3} = \vektor{0 \\ 0 \\ 0}[/mm]
Das stimmt nicht ganz, die Matrix ist
[mm]\pmat{ \red{-4} & -6 & -6 \\ 1 & 1 & 2 \\ 1 & 2 & 1} *\vektor{x1 \\ x2 \\ x3} = \vektor{0 \\ 0 \\ 0}[/mm]
>
> Diese LGS muss ich nun lösen um den Vektorraum zu
> bestimmen und daraus dann einen Eigenvektor wenn ich das
> richtig verstanden habe.
>
> Meine Lösung wäre jetzt [mm]\vektor{t \\ -t \\ t}[/mm] aber maxima
> sagt es kommt x1 = x2 = x3 = 0 raus.... ich verzweifel
> damit...
Poste mal, was du mit maxima gerechnet hast.
> Außerdem habe ich zun den Ausgangsmatrizen nur je
> zwei Eigenwerte....
Das ist richtig. Die einfachste Methode, in Maxima Eigenwerte und Eigenvektoren auszurechnen, ist die Funktion eigenvectors:
(%i1) a:entermatrix(3,3);
Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General
Answer 1, 2, 3 or 4 :
4;
Row 1 Column 1:
-2;
Row 1 Column 2:
-6;
Row 1 Column 3:
-6;
Row 2 Column 1:
1;
Row 2 Column 2:
3;
Row 2 Column 3:
2;
Row 3 Column 1:
1;
Row 3 Column 2:
2;
Row 3 Column 3:
3;
Matrix entered.
[ - 2 - 6 - 6 ]
[ ]
(%o1) [ 1 3 2 ]
[ ]
[ 1 2 3 ]
(%i2) eigenvectors(a);
1 1 1
(%o2) [[[2, 1], [1, 2]], [1, - -, - -], [1, 0, - -], [0, 1, - 1]]
3 3 2
Das Ergebnis ist eine Liste, deren erstes Element die Eigenwerte und Multiplizitäten enthält, die restlichen sind die Eigenvektoren. Hier haben wir als erstes Element
[[2, 1], [1, 2]]
also Eigenwert 2 einfach, Eigenwert 1 doppelt. Der Eigenvektor zum Eigenwert 2 ist
[mm] \vektor{1\\-\bruch{1}{3}\\-\bruch{1}{3}} [/mm],
die anderen beiden gehören zum doppelten Eigenwert 1.
Wenn du die Variable hermitianmatrix auf true setzt, werden die Eigenvektoren zum gleichen Eigenwert orthogonalisiert:
(%i3) eigenvectors(a),hermitianmatrix:true;
2
1 1 1 2 2
(%o3) [[[2, 1], [1, 2]], [1, - -, - -], [1, 0, - -], [- -, 1, - --]]
3 3 2 5 5
Beschreibung mit Beispielen findest du hier.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 13:48 Fr 14.05.2010 | Autor: | MissYumi |
Super das habe ich verstanden, lieben Dank!
Für den zweiten Eigenwert [mm] \lambda_2 [/mm] = 1 habe ich nun als Eigenvektor [mm] \vektor{1 \\ 0 \\-1/2}. [/mm] Aber woher nehme ich den dritten Eigenvektor den ich benötige. Gibt es die möglichkeit eine Allgemein Lösung anzeigen zu lassen, also quasi den Vektorraum? Wenn ich das auf dem Papiert löse habe ich immer erst einmal sowas raus wie x1 = 1, x2 = -x3, x3 ist frei wählbar und daraus mache ich dann einen Eigenvektor.
WIE bzw WOHER weiß ich zum Schluß ob die Matrix S die ich damit erstelle für beiden Matrizen aufgeht?
Lieben Dank!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:20 Fr 14.05.2010 | Autor: | rainerS |
Hallo!
> Für den zweiten Eigenwert [mm]\lambda_2[/mm] = 1 habe ich nun als
> Eigenvektor [mm]\vektor{1 \\ 0 \\-1/2}.[/mm] Aber woher nehme ich
> den dritten Eigenvektor den ich benötige. Gibt es die
> möglichkeit eine Allgemein Lösung anzeigen zu lassen,
> also quasi den Vektorraum? Wenn ich das auf dem Papiert
> löse habe ich immer erst einmal sowas raus wie x1 = 1, x2
> = -x3, x3 ist frei wählbar und daraus mache ich dann einen
> Eigenvektor.
Im Falle des doppelten Eigenwerts 1 musst du auch auf dem Papier zwei frei wählbare Variablen bekommen, und durch entsprechende Wahl dann auch zwei Eigenvektoren.
Das kannst du in Maxima z.B so machen:
(%i1) a:matrix([-2,-6,-6],[1,3,2],[1,2,3]);
[ - 2 - 6 - 6 ]
[ ]
(%o1) [ 1 3 2 ]
[ ]
[ 1 2 3 ]
(%i2) a-1*ident(3);
[ - 3 - 6 - 6 ]
[ ]
(%o2) [ 1 2 2 ]
[ ]
[ 1 2 2 ]
(%i3) % . matrix([x1],[x2],[x3]);
[ - 6 x3 - 6 x2 - 3 x1 ]
[ ]
(%o3) [ 2 x3 + 2 x2 + x1 ]
[ ]
[ 2 x3 + 2 x2 + x1 ]
(%i4) makelist(%[i,1],i,1,3);
(%o4) [- 6 x3 - 6 x2 - 3 x1, 2 x3 + 2 x2 + x1, 2 x3 + 2 x2 + x1]
(%i5) solve(%);
Dependent equations eliminated: (2 3)
2 %r2 + %r1
(%o5) [[x3 = - -----------, x2 = %r2, x1 = %r1]]
2
(%i6)
Du hast hier zwei freie Variablen, und kansnt zum Beispiel für den einen Eigenvektor [mm] $x_1=1,x_2=0$ [/mm] wählen und für den anderen [mm] $x_1=0,x_2=1$.
[/mm]
> WIE bzw WOHER weiß ich zum Schluß ob die Matrix S die ich
> damit erstelle für beiden Matrizen aufgeht?
Ich bin mir nicht sicher, was du mit "aufgehen" meinst. Wenn du die Eigenvektoren richtig ausgerechnet hast, dann ist die Matrix S mit den Eigenvektoren als Spalten die Matrix der Transformation auf Diagonalform.
Zum Beispiel:
(%i21) eigenvectors(a);
1 1 1
(%o21) [[[2, 1], [1, 2]], [1, - -, - -], [1, 0, - -], [0, 1, - 1]]
3 3 2
(%i22) /* nur die eigenvektoren */ rest(%);
1 1 1
(%o22) [[1, - -, - -], [1, 0, - -], [0, 1, - 1]]
3 3 2
(%i23) /* in matrix umwandeln */
apply(matrix,%);
[ 1 1 ]
[ 1 - - - - ]
[ 3 3 ]
[ ]
(%o23) [ 1 ]
[ 1 0 - - ]
[ 2 ]
[ ]
[ 0 1 - 1 ]
(%i24) /* die eigenvektoren als spalten */
s: transpose(%);
[ 1 1 0 ]
[ ]
[ 1 ]
[ - - 0 1 ]
(%o24) [ 3 ]
[ ]
[ 1 1 ]
[ - - - - - 1 ]
[ 3 2 ]
(%i25) /* probe */ s^^(-1).a.s;
[ 2 0 0 ]
[ ]
(%o25) [ 0 1 0 ]
[ ]
[ 0 0 1 ]
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:16 Sa 15.05.2010 | Autor: | hawe |
Bis Maxima 5.14 (? oder so) stimme ich zu. Spätestens bei 5.20 wurden die Rückgabelisten bei verschiedenen Funktionen geändert und so liefert
eigenvectors(a)
[ [ [2,1],[1,2] ],[ [ [1,-1/3,-1/3]],[[1,0,-1/2],[0,1,-1] ] ] ]
hast DU dafür ein übersichtliches Handling an die Matrix zu kommen
Gruß HW
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:49 Sa 15.05.2010 | Autor: | rainerS |
Hallo!
> Bis Maxima 5.14 (? oder so) stimme ich zu. Spätestens bei
> 5.20 wurden die Rückgabelisten bei verschiedenen
> Funktionen geändert und so liefert
> eigenvectors(a)
> [ [ [2,1],[1,2] ],[ [ [1,-1/3,-1/3]],[[1,0,-1/2],[0,1,-1] ] ] ]
> hast DU dafür ein übersichtliches Handling an die Matrix
> zu kommen
Einfach append auf das zweite Listenelement anwenden:
apply(append,second(%));
ergibt eine Liste von Listen, sodass apply(matrix,%); funktioniert.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:21 So 16.05.2010 | Autor: | hawe |
Genial, wäre i ch jetzt net drauf gekommen...
Danke
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:21 So 16.05.2010 | Autor: | MissYumi |
Also ersteinmal vielen lieben Dank für die Hilfe. Ich habe jetzt das gleich ergebis wie du.
Meine Matrix S lautet nun
[mm] \pmat{1 & 1 & 0 \\ -1/3 & 0 & 1 \\ -1/3 &-1/2 &-1}
[/mm]
Meine Diagonalmatrix füs [mm] S^{\-1}*A*S [/mm] lautet:
[mm] \pmat{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1}
[/mm]
Für die Matrix B geht dieses jedoch nicht ganz auf, [mm] S^{\-1}*B*S:
[/mm]
[mm] \pmat{3 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & -1/2 & 2}
[/mm]
Habe ich etwas falsch gemacht? :-(
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:06 So 16.05.2010 | Autor: | rainerS |
Hallo!
> Also ersteinmal vielen lieben Dank für die Hilfe. Ich habe
> jetzt das gleich ergebis wie du.
>
> Meine Matrix S lautet nun
> [mm]\pmat{1 & 1 & 0 \\ -1/3 & 0 & 1 \\ -1/3 &-1/2 &-1}[/mm]
>
> Meine Diagonalmatrix füs [mm]S^{\-1}*A*S[/mm] lautet:
> [mm]\pmat{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1}[/mm]
Beides richtig.
> Für die Matrix B geht dieses jedoch nicht ganz auf,
> [mm]S^{\-1}*B*S:[/mm]
> [mm]\pmat{3 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & -1/2 & 2}[/mm]
>
> Habe ich etwas falsch gemacht? :-(
Vermutlich
Es muss
[mm]\pmat{3 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & 2}[/mm]
herauskommen. Poste mal deine einzelnen Schritte.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 17:28 So 16.05.2010 | Autor: | MissYumi |
Also ich hab zunächste Matrix A und B in maxima eingetragen. Ich nutze wxmaxima:
A: matrix(
[-2,-6,-6],
[1,3,2],
[1,2,3]
);
B: matrix(
[3,0,0],
[-1,1,-1],
[1,2,4]
);
Dann habe ich S eingetragen:
S: matrix(
[1,1,0],
[-1/3,0,1],
[-1/3,-1/2,-1]
);
Dann habe ich sie invertieren lassen, habe Sie S1 genannt:
matrix(
[-3,-6,-6],
[4,6,6],
[-1,-1,-2]
)
Also letzten Schritte gebe ich ein: S1.A.S und bekomme
matrix(
[2,0,0],
[0,1,0],
[0,0,1]
)
Und noch S1.B.S:
matrix(
[3,0,0],
[0,3,0],
[0,-1/2,2]
)
Verrechnet sich maxima hier? =(
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:17 So 16.05.2010 | Autor: | rainerS |
Hallo!
> Also ich hab zunächste Matrix A und B in maxima
> eingetragen. Ich nutze wxmaxima:
> A: matrix(
> [-2,-6,-6],
> [1,3,2],
> [1,2,3]
> );
>
> B: matrix(
> [3,0,0],
> [-1,1,-1],
> [1,2,4]
> );
>
> Dann habe ich S eingetragen:
>
> S: matrix(
> [1,1,0],
> [-1/3,0,1],
> [-1/3,-1/2,-1]
> );
>
> Dann habe ich sie invertieren lassen, habe Sie S1 genannt:
> matrix(
> [-3,-6,-6],
> [4,6,6],
> [-1,-1,-2]
> )
>
> Also letzten Schritte gebe ich ein: S1.A.S und bekomme
> matrix(
> [2,0,0],
> [0,1,0],
> [0,0,1]
> )
>
> Und noch S1.B.S:
> matrix(
> [3,0,0],
> [0,3,0],
> [0,-1/2,2]
> )
>
> Verrechnet sich maxima hier? =(
Oh nein! Wieso sollte die Matrix S zur Diagonalisierung von A und B dieselbe sein? Denk doch mal nach: sie besteht aus den Eigenvektoren der Matrix. Haben A und B die gleichen Eigenvektoren?
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:39 So 16.05.2010 | Autor: | MissYumi |
Das Problem ist, das ich laut Aufgabe S so bestimmen soll das es SOWHL für A als auch B gilt... genau da liegt ja mein Problem das ich nicht weiß wie ich das anstellen soll.
Das fiese ist das ich haarscharf an der Lösung vorbeigerauscht bin...
Muss ich vielleicht erst noch die Eigenwerte-/vektoren von B bestimmen und versuchen das Sie gleich sind?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:40 So 16.05.2010 | Autor: | rainerS |
Hallo!
> Das Problem ist, das ich laut Aufgabe S so bestimmen soll
> das es SOWHL für A als auch B gilt... genau da liegt ja
> mein Problem das ich nicht weiß wie ich das anstellen
> soll.
Ah, sorry, dieser Teil der Aufgabe ist in der Diskussion untergegangen.
> Das fiese ist das ich haarscharf an der Lösung
> vorbeigerauscht bin...
> Muss ich vielleicht erst noch die Eigenwerte-/vektoren von
> B bestimmen und versuchen das Sie gleich sind?
Die Eigenwerte sicher nicht. Du sollst die beiden Matrizen simultan diagonalisieren. Das geht dann und nur dann, wenn
[mm] A*B=B*A [/mm]
ist, was auch der Fall ist.
Der Trick besteht darin, einen Satz von Eigenvektoren zu finden, der beide Matrizen gleichzeitig diagonalisiert.
Fangen wir mit den drei Eigenvektoren an, die du für deine Matrix S genommen hast:
[mm] e_1 = \vektor{1\\-\bruch{1}{3}\\-\bruch{1}{3}} [/mm] , [mm] e_2 = \vektor{1 \\ 0 \\ - \bruch{1}{2}} [/mm] , [mm] e_3 = \vektor{0\\1\\-1} [/mm] .
Du kannst nachrechnen, dass [mm] $e_1$ [/mm] und [mm] $e_3$ [/mm] Eigenvektoren von $B$ sind, aber [mm] $e_2$ [/mm] nicht:
[mm] B*e_1 = 3 e_1 [/mm], [mm] B*e_3 = 2 * e_3 [/mm] , [mm] B*e_2 = \vektor{3\\- \bruch{1}{2}\\-1} [/mm] .
Aber durch etwas genaues Hinsehen (die 1. Komponente von [mm] $e_3$ [/mm] ist 0, daher ziehe ich [mm] $3*e_2$ [/mm] ab), rechnest du
[mm] B*e_2 = 3e_2-\bruch{1}{2} e3 [/mm].
Daher bekommst du beim Versuch des Diagonilisierens eine Matrix, in der außerhalb der Diagonale eine [mm] $-\bruch{1}{2}$ [/mm] steht.
Das bedeutet aber, dass außer [mm] $e_3$ [/mm] eine Linearkombination von [mm] $e_2$ [/mm] und [mm] $e_3$ [/mm] einen Eigenvektor von B ergibt. Diese Linearkombination ist außerdem Eigenvektor von A, weil [mm] $e_2$ [/mm] und [mm] $e_3$ [/mm] Eigenvektoren zum gleichen Eigenwert von A sind und damit den Eigenraum aufspannen.
Wie machst du das praktisch? Du musst den nichtdiagonalen Teil von B, also die [mm] $2\times [/mm] 2$-Matrix
[mm] \pmat{3 & 0\\ -\bruch{1}{2}& 2 } [/mm]
diagonalisieren.
Einfachste Methode in Maxima: Nimm die Matrix [mm] $S^{-1}*B*S$, [/mm] rechne die Eigenvektoren aus und mache daraus eine Matrix T (Eigenvektoren als Spalten). Die gesuchte Transformationsmatrix ist dann $S*T$.
Viele Grüße
Rainer
|
|
|
|