Herleitung der Drehung um eine Achse a im Raum durch Drehungen um Koordinatenachsen.
| > | with(linalg): a:=vector(3,[]): |
Drehung um die
-Achse, so dass die Projektion von
auf die
-Ebene in die
-Achse gedreht wird.
| > | c1:=a[2]/sqrt(a[2]^2+a[3]^2): s1:=a[3]/sqrt(a[2]^2+a[3]^2): M1:=matrix(3,3,[1,0,0,0,c1,s1,0,-s1,c1]); |
Dann liegt das Bild von
in der
-Ebene:
| > | a2:=map(simplify,multiply(M1,a)); |
Nun drehen wir um die
-Achse, so dass das Bild von
nun wiederum auf die
-Achse abgebildet wird:
| > | c2:=subs(a[1]^2=1-a[2]^2-a[3]^2,simplify(a2[1]/sqrt(a2[1]^2+a2[2]^2))); s2:=subs(a[1]^2=1-a[2]^2-a[3]^2,simplify(a2[2]/sqrt(a2[1]^2+a2[2]^2))); |
| > | M2:=matrix(3,3,[c2,s2,0,-s2,c2,0,0,0,1]); |
Probe:
| > | a3:=multiply(M2,a2); subs(a[1]^2=1-a[2]^2-a[3]^2,evalm(map(simplify,a3))); |
Jetzt die eigentliche Drehung um diese Achse um einen Winkel
M3:=matrix(3,3,[1,0,0,0,cos(phi),-sin(phi),0,sin(phi),cos(phi)]);
Die Gesamtdrehung
kann Maple nicht ohne Hilfe auf die gewünschte Form bringen ...
| > | MM:=map(simplify,subs(a[2]^2+a[3]^2=1-a[1]^2,multiply(transpose(M1),transpose(M2),M3,M2,M1))); |
| > | # a[1]^2+(1-a[1]^2)*cos(phi)=cos(phi)+a[1]^2*(1-cos(phi)); |
| > | for i from 2 to 3 do for j from 2 to 3 do MM[i,j]:=simplify(subs(a[1]^2=(1-a[2]^2-a[3]^2),MM[i,j])); od: od: print(MM); |
usw.