RodriguesRotationFormular 2



hi all

Third,using differential form on S2 with standard frame.
from cvs you get diffrential forms package
//initialized
(%i24) batch("new_caran_test4.mac");

(%i25)                       load(cartan_new.lisp)
.......
(%i29)                coords : read(Input new coordinate)
Input new coordinate
[r,ph,th];
(%i34)                               basis
(%o34)                          [Dr, Dph, Dth]
(%i35) cliffordtype : read(please input metric type,for example [1,1,1],if
E3)
please input metric type,for example [1,1,1],if E3
[1,1,1];
(%o35)                             [1, 1, 1]
(%i36) translist : read(represent the standard coordinates with new one)
represent the standard coordinates with new one
[r*sin(th)*cos(ph),r*sin(th)*sin(ph),r*cos(th)];
(%o36)         [cos(ph) r sin(th), sin(ph) r sin(th), r cos(th)]

(%i44)               scale_factor : reverse(scale_factor)
(%i45)                           scale_factor
(%o45)                         [1, r sin(th), r]
........
(%o61)                       new_cartan_test4.mac
//init end

(%i61) d(translist);
(%o61) [- Dph sin(ph) r sin(th) + Dr cos(ph) sin(th) + Dth cos(ph) r
cos(th),
Dph cos(ph) r sin(th) + Dr sin(ph) sin(th) + Dth sin(ph) r cos(th),
Dr cos(th) - Dth r sin(th)]
(%i62) m:coefmatrix(%,basis);
          [ cos(ph) sin(th)  - sin(ph) r sin(th)  cos(ph) r cos(th) ]
          [                                                         ]
(%o62)    [ sin(ph) sin(th)   cos(ph) r sin(th)   sin(ph) r cos(th) ]
          [                                                         ]
          [     cos(th)               0              - r sin(th)    ]
(%i63) trigsimp(m.diag([1,1/(r*sin(th)),1/r]));
                [ cos(ph) sin(th)  - sin(ph)  cos(ph) cos(th) ]
                [                                             ]
(%o63)          [ sin(ph) sin(th)   cos(ph)   sin(ph) cos(th) ]
                [                                             ]
                [     cos(th)          0         - sin(th)    ]

this is standard frame [e1,e2,e3]
if R is rodrigues rotation, e1=R.e1,cos(t)e2-sin(t)e3=R.e2
,sin(t)e2+cos(t)e3=R.e3
so R=[e1,cos(t)e2-sin(t)e3,sin(t)e2+cos(t)e3].transpose([e1,e2,e3])

(%i64)
frame1:transpose(%o63)$
(%i66)
matrix(frame1[1],cos(t)*frame1[2]-sin(t)*frame1[3],sin(t)*frame1[2]+cos(t)*frame1[3])$

(%i67) transpose(%).frame1$ //this is main calculation.

simplification is also rather complicated as blow,but do'nt use rectform.
(%i68) trigsimp(%);
(%i69) subst(['cos(ph)=x/sin(th),'sin(ph)=y/sin(th),'cos(th)=z],%)$
(%i70) trigsimp(%);
(%i71) subst(['sin(th)^2=1-z^2],%);

                [                    2                  2          ]
                [ (1 - cos(t)) (1 - z ) + (cos(t) - 1) y  + cos(t) ]
(%o71)  Col 1 = [                                                  ]
                [           sin(t) z + (1 - cos(t)) x y            ]
                [                                                  ]
                [           (1 - cos(t)) x z - sin(t) y            ]
         [ (1 - cos(t)) x y - sin(t) z ]
         [                             ]
 Col 2 = [                2            ]
         [  (1 - cos(t)) y  + cos(t)   ]
         [                             ]
         [ (1 - cos(t)) y z + sin(t) x ]
         [ (1 - cos(t)) x z + sin(t) y ]
         [                             ]
 Col 3 = [ (1 - cos(t)) y z - sin(t) x ]
         [                             ]
         [                     2       ]
         [  (cos(t) - 1) (1 - z ) + 1  ]
this result is same as First,Second calculation.

thanks
Gosei Furuya