(* wzor Rodriguesa 
http://mathworld.wolfram.com/RodriguesRotationFormula.html
*)

omegam[w1_,w2_,w3_]:={{0,-w3,w2},{w3,0,-w1},{-w2,w1,0}}

MatrixForm[omegam[w1,w2,w3]]

MatrixForm[omegam[w1,w2,w3].omegam[w1,w2,w3]]

omegasquaredm[w1_,w2_,w3_]:={{-1+(w1^2),w1 w2,w1 w3},{w1 w2,-1+(w2^2),w2 w3},{w1 w3,w2 w3,-1+(w3^2)}}

R[w1_,w2_,w3_,phi_]:=IdentityMatrix[3]+Sin[phi]*omegam[w1,w2,w3]+(1-Cos[phi])*omegasquaredm[w1,w2,w3]

FullSimplify[R[w1,w2,w3,phi],Element[w1,Reals]&&Element[w2,Reals]&&Element[w3,Reals]&&Element[phi,Reals]&&(w1*w1+w2*w2+w3*w3==1)]

(* RR to to samo co R, ale z uproszczonym elementem R(1,1) *)

RR[w1_,w2_,w3_,phi_]:={{(w1^2) (1-Cos[phi])+Cos[phi],w1 w2-w1 w2 Cos[phi]-w3 Sin[phi],w1 w3-w1 w3 Cos[phi]+w2 Sin[phi]},{w1 w2-w1 w2 Cos[phi]+w3 Sin[phi],(w2^2) (1-Cos[phi])+Cos[phi],w2 w3-w2 w3 Cos[phi]-w1 Sin[phi]},{w1 w3-w1 w3 Cos[phi]-w2 Sin[phi],w2 w3-w2 w3 Cos[phi]+w1 Sin[phi],(w3^2) (1-Cos[phi])+Cos[phi]}}

(* R powinna być macierzą ortogonalną ! *)

FullSimplify[Inverse[R[w1,w2,w3,phi]]==Transpose[R[w1,w2,w3,phi]],Element[w1,Reals]&&Element[w2,Reals]&&Element[w3,Reals]&&Element[phi,Reals]&&(w1*w1+w2*w2+w3*w3==1)]

(* RR powinna być macierzą ortogonalną ! *)

FullSimplify[Inverse[RR[w1,w2,w3,phi]]==Transpose[RR[w1,w2,w3,phi]],Element[w1,Reals]&&Element[w2,Reals]&&Element[w3,Reals]&&Element[phi,Reals]&&(w1*w1+w2*w2+w3*w3==1)]

FullSimplify[Inverse[RR[w1,w2,w3,phi]]==RR[w1,w2,w3,-phi],Element[w1,Reals]&&Element[w2,Reals]&&Element[w3,Reals]&&Element[phi,Reals]&&(w1*w1+w2*w2+w3*w3==1)]

(* Wektor jednostkowy w={w1,w2,w3} mogę wyrazić przez kąty th i ph *)

FullSimplify[RR[Sin[th]*Cos[ph],Sin[th]*Sin[ph],Cos[th],alfa],Element[{th,ph,alfa},Reals]]

RRR[th_,ph_,alfa_]:={{1+(-1+Cos[alfa]) (((Cos[th])^2)+((Sin[ph])^2) ((Sin[th])^2)),-Cos[th] Sin[alfa]-(-1+Cos[alfa]) Cos[ph] Sin[ph] ((Sin[th])^2),(-(-1+Cos[alfa]) Cos[ph] Cos[th]+Sin[alfa] Sin[ph]) Sin[th]},{Cos[th] Sin[alfa]-(-1+Cos[alfa]) Cos[ph] Sin[ph] ((Sin[th])^2),1+(-1+Cos[alfa]) (((Cos[th])^2)+((Cos[ph])^2) ((Sin[th])^2)),(-Cos[ph] Sin[alfa]-(-1+Cos[alfa]) Cos[th] Sin[ph]) Sin[th]},{(-(-1+Cos[alfa]) Cos[ph] Cos[th]-Sin[alfa] Sin[ph]) Sin[th],(Cos[ph] Sin[alfa]-(-1+Cos[alfa]) Cos[th] Sin[ph]) Sin[th],1-2 ((Sin[(alfa/2)])^2) ((Sin[th])^2)}}

FullSimplify[Inverse[RRR[th,ph,alfa]]==Transpose[RRR[th,ph,alfa]],Element[{th,ph,alfa},Reals]]

S=RRR[th,ph,alfa];

Sinv=RRR[th,ph,-alfa];

Rn=RRR[th1,ph1,alfa1];

left=S.Rn.Sinv;

vecn=S.{Sin[th1]*Cos[ph1],Sin[th1]*Sin[ph1],Cos[th1]};

Simplify[vecn.vecn,Element[{th,ph,alfa,th1,ph1},Reals]]

right=RR[vecn[[1]],vecn[[2]],vecn[[3]],alfa1];

Simplify[left-right,Element[{th,ph,alfa,th1,ph1},Reals]]