Aufgabe6.mws

zu Aufgabe (6)

>    restart:with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

Die gegebene Matrix lautet:

>    A := matrix([[-2/3, 1/3, -2/3], [1/3, -2/3, -2/3], [-2/3, -2/3, 1/3]]);

A := matrix([[-2/3, 1/3, -2/3], [1/3, -2/3, -2/3], [-2/3, -2/3, 1/3]])

(a) Berechnung der Drehachse:

Dazu berechne ich Eig(A, 1)=Lös(A-E, 0).

>    E:=matrix(3,3,[1,0,0,0,1,0,0,0,1]);

E := matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

>    `A-E`:=evalm(A-E);

`A-E` := matrix([[-5/3, 1/3, -2/3], [1/3, -5/3, -2/3], [-2/3, -2/3, -2/3]])

Multiplikation mit 3 erleichtert die Rechnung:

>    B:=evalm(3*`A-E`);

B := matrix([[-5, 1, -2], [1, -5, -2], [-2, -2, -2]])

>    addrow(addrow(B,2,1,5),2,3,2);

matrix([[0, -24, -12], [1, -5, -2], [0, -12, -6]])

>    addrow(mulrow(%,3,-1/6),3,1,12);

matrix([[0, 0, 0], [1, -5, -2], [0, 2, 1]])

Nun sieht man bereits, dass der Vektor   a := matrix([[1], [1], [-2]])   den Eigenraum aufspannt. Dieser ist (Eigenwert 1  !!) die Drehachse.

Probe:

>    a := vector([1, 1, -2]):

>    evalm(A&*a);

vector([1, 1, -2])

Um den zugehörigen Drehwinkel zu bestimmen, normiere ich den obigen Eigenvektor   a   und erweitere ihn zu einer ONB.

>    #v[1]:=evalm(1/norm(a,2)*a);norm(v[1],2);

>    P:=concat(op(GramSchmidt([a,vector([1,0,0]),vector([0,1,0])],normalized)));;

P := matrix([[1/6*6^(1/2), 1/6*5^(1/2)*6^(1/2), 0], [1/6*6^(1/2), -1/30*5^(1/2)*6^(1/2), 1/5*4^(1/2)*5^(1/2)], [-1/3*6^(1/2), 1/15*5^(1/2)*6^(1/2), 1/10*4^(1/2)*5^(1/2)]])

Probe

>    evalm(transpose(P)&*P);

matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

Nun führe ich den entsprechenden Basiswechsel durch und erhalte als neue Matrixdarstellung der Drehung:

>    Aneu:=evalm(transpose(P)&*A&*P);

Aneu := matrix([[1, 0, 0], [0, -1, 0], [0, 0, -1]])

Dabei geht die ursprüngliche Drehachse über in den Aufspann von e[1] .  Die Matrix Aneu hat die Struktur Aneu=diag(1,D1) mit der Drehmatrix

>    D1:=matrix(2,2,[-1,0,0,-1]);

D1 := matrix([[-1, 0], [0, -1]])

Der entsprechende Drehwinkel ist:

>    convert(arccos(evalf(D1[1,1])),units,radian,degree);

180.0000000

Wär hätte das gedacht, nur eine schlichte Drehung in der 2,3-Ebene um 180 Grad !

(b) Berechnung "der" Euler'schen Winkel.  

Ich lege diese hier wie folgt fest:

  alpha[i]   ist der Winkel der Drehung Di um die e[i] -Achse, i =1,2,3,

und die Reihenfolge der Drehungen sie durch die Darstellung   

A  =   D3^(-1)*D2^(-1)*D1^(-1)  

festgelegt.

Bevor ich rechne, zuerst eine kleine Prozedur zur Generierung von elementaren Drehungen.

>    eD:=proc(i,j,a,b,n) local M;
if i=j then ERROR("i darf nicht gleich j sein")
fi:
M:=evalm(array(1..n,1..n,identity));
M[i,i]:=a/sqrt(a^2+b^2):M[i,j]:=b/sqrt(a^2+b^2):M[j,i]:=-b/sqrt(a^2+b^2):M[j,j]:=a/sqrt(a^2+b^2):
evalm(M);
end:

Nun ergeben sich die elementaren Drehungen D3,D2,D1 mit der EIgenschaft   D1*D2*D3*A = E   ganz leicht:

>    D3:=eD(1,2,A[1,1],A[2,1],3);

D3 := matrix([[-2/5*5^(1/2), 1/5*5^(1/2), 0], [-1/5*5^(1/2), -2/5*5^(1/2), 0], [0, 0, 1]])

>    A3:=evalm(D3&*A);

A3 := matrix([[1/3*5^(1/2), -4/15*5^(1/2), 2/15*5^(1/2)], [0, 1/5*5^(1/2), 2/5*5^(1/2)], [-2/3, -2/3, 1/3]])

>    D2:=eD(1,3,A3[1,1],A3[3,1],3);

D2 := matrix([[1/3*5^(1/2), 0, -2/3], [0, 1, 0], [2/3, 0, 1/3*5^(1/2)]])

>    A32:=evalm(D2&*A3);

A32 := matrix([[1, 0, 0], [0, 1/5*5^(1/2), 2/5*5^(1/2)], [0, -2/5*5^(1/2), 1/5*5^(1/2)]])

>    D1:=eD(2,3,A32[2,2],A32[3,2],3);

D1 := matrix([[1, 0, 0], [0, 1/5*5^(1/2), -2/5*5^(1/2)], [0, 2/5*5^(1/2), 1/5*5^(1/2)]])

>    evalm(D1&*A32);

matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])

Ergebnis: Mit den oben angegebenen Matrizen D1,D2,D3 gilt demnach wie gewünscht:

A  =   D3^(-1)*D2^(-1)*D1^(-1) .

Eulerscher Drehwinkel für D1 (bzw. D1^(-1) ) in Grad:

>    alpha[1]:=convert(arccos(evalf(D1[2,2])),units,radian,degree);

alpha[1] := 63.43494881

Eulerscher Drehwinkel für D2 in Grad:

>    alpha[2]:=convert(arccos(evalf(D2[1,1])),units,radian,degree);

alpha[2] := 41.81031491

Eulerscher Drehwinkel für D3 in Grad:

>    alpha[3]:=convert(arccos(evalf(D3[1,1])),units,radian,degree);

alpha[3] := 153.4349487

>