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