Rotazioni

v. 1.01 (3/10/2002)  © Amabile Tatone

Matrice della rotazione di ampiezza assegnata attorno ad un asse assegnato

Asse e ampiezza della rotazione

u = {1, 2, 3}

teta = (π/6)

Costruzione di una base ortonormale {a1, a2, a3} il cui terzo vettore e' parallelo all'asse u

n[v_] := (v/(Sqrt[v . v]))

a3 = n[u]

N[a3]

Vettore unitario ortogonale ad a3

Factor[Block[{v = {2, 1, 3}}, v - (v . a3 ) a3]]

a2 = 
      Factor[Block[{v = {2, 1, 3}}, n[v - (v . a3 ) a3]]]

N[a2]

a1 = Cross[a2, a3]

N[a1]

Costruzione della matrice costituita dalle componenti dei vettori {a1, a2, a3}

mA = Transpose[{a1, a2, a3}] // N

MatrixForm[mA]

Simplify[Transpose[mA] . mA] // MatrixForm

Det[mA]

Costruzione della matrice della rotazione nella base {a1, a2, a3}

maR = {{Cos[teta], -Sin[teta], 0}, {Sin[teta], Cos[teta], 0}, {0, 
            0, 1}};

MatrixForm[maR]

MatrixForm[N[maR]]

Factor[Transpose[maR] . maR]

Cambiamento di base: matrice della rotazione nella base ortonormale {e1, e2, e3}

mR = Simplify[mA . maR . Transpose[mA]];

MatrixForm[mR]

Factor[Transpose[mR] . mR]