1. Introduzione
2. Le funzioni vettoriali
2.1. Definizione ricorsiva delle funzioni
2.2. Suriettività
2.3. Il caso bidimensionale
2.4. Definizione della base ortonormale
2.5. Osservazione importante
3. La funzione matriciale
3.1. Definizione
3.2. La funzione matriciale è a determinante positivo
4. La parametrizzazione
4.1. Definizione della parametrizzazione
4.2. Suriettività della parametrizzazione
5. Decomposizione in rotazioni piane
5.1. Matrici a blocchi
5.2. La formula finale
6. Un algoritmo per le matrici ortogonali
7. Considerazioni finali
Di Anselmo Canfora
Scopo di questa breve trattazione è dare una descrizione esaustiva della struttura delle rotazioni in Rn mediante una particolare parametrizzazione di SOn(R) definita ricorsivamente.
Tale lavoro permetterà di dimostrare che SOn(R) è fibrato in sfere, dando contemporaneamente una sua decomposizione in rotazioni piane che generalizza ad una dimensione qualunque il teorema di Eulero su SO3(R).
Definiamo ora le funzioni σ⇀n:[0,2π]×[0,π]n−1→Sn⊂Rn+1.
Gli n parametri di σ⇀n saranno denotati con i simboli α1n,α2n,...,αnn.
Queste notazioni si riveleranno molto utili nel seguito, quando si farà un uso combinato di σ⇀1,...,σ⇀n−1 per descrivere SOn(R).
Occasionalmente, nelle dimostrazioni date per induzione, σ⇀n−1 potrà avere come parametri α1n,...,αn−1n invece di α1n−1,...,αn−1n−1.
Definiamo innanzi tutto σ⇀1:[0,2π]→S1⊂R2 nel modo seguente:
σ⇀1(α11)=(σ11(α11)σ21(α11)):=(senα11cosα11); è immediato verificare che σ⇀1 parametrizza S1.
Definiamo ora σ⇀n per induzione: σkn:=σkn−1(α1n,...,αn−1n) senαnn per k≤n e
σn+1n:=cosαnn.
Così ad esempio σ⇀2(α12,α22)=(senα12senα22cosα12senα22cosα22) e
σ⇀3(α13,α23,α33)=(senα13senα23senα33cosα13senα23senα33cosα23senα33cosα33).
Dimostriamo ora che σ⇀n ha per immagine Sn.
Innanzi tutto facciamo vedere come l’immagine di σ⇀n sia contenuta in Sn.
Sia per ipotesi induttiva ‖σ⇀n−1‖=1 in Rn, dunque in virtù della definizione ricorsiva di σ⇀n si ha:
‖σ⇀n‖2=∑k=1n+1(σkn(α1n,...,αnn))2=∑k=1n(σkn−1(α1n,...,αn−1n)senαnn)2+cos2αnn=‖σ⇀n−1‖2sen2αnn+cos2αnn=1 Sia x⇀∈Sn⊂Rn+1, facciamo notare come il vettore formato dalle prime n componenti di x→=(x1 x2 ... xn+1)t appartenga a (1−xn+12) Sn−1 ove:
(1−xn+12) Sn−1:={(x⇀∈Rn):‖x→‖=1−xn+12 } , in pratica (x1,...,xn)t appartiene alla (n−1) sfera intersezione fra Sn e l’iperpiano ortogonale a e⇀n+1 situato alla “quota” xn+1.
Ora, la funzione σ⇀n−1 parametrizza Sn−1 ed è suriettiva su di essa per ipotesi induttiva, allora ∃{α1n,...,αn−1n} tali che (1−xn+12) σ⇀n−1(α1n,...,αn−1n)=(x1 ... xn)t.
Ora essendo −1≤xn+1≤1 e 0≤1−xn+12≤1 esiste αnn∈[0,π] tale che cosαnn=xn+1 e senαnn=1−xn+12 di conseguenza αnn è tale che:
x→=((1−xn+12) σ1n−1(α1n,...,αn−1n)...(1−xn+12) σnn−1(α1n,...,αn−1n)xn+1)=(σ1n−1(α1n,...,αn−1n) senαnn...σnn−1(α1n,...,αn−1n) senαnncosαnn)
Ma questa è proprio la definizione ricorsiva di σ⇀n che dunque è suriettiva su Sn visto che ∀x→∈Sn ∃{α1n,...,αnn}:σ⇀n(α1n,...,αnn)=x⇀.
Considereremo ora più da vicino la struttura di SO2(R), ciò sarà utile come base per le dimostrazioni induttive che faremo nel seguito per descrivere SOn(R).
Dunque se A∈SOn(R) deve essere: At•A=(acbd)•(abcd)=I2=(1001) e det(abcd)=1
Da queste relazioni si ottiene il sistema seguente:
{a2+c2=1b2+d2=1ab+cd=0ad−bc=1
E’ facile risolvere tale sistema facendo alcune semplici considerazioni, innanzitutto dovendo essere b2+d2=1 abbiamo che (∃α∈[0,2π]):d=cosα e b=senα dunque dovendo essere ab+cd=0 si ha che a=±kcosα e c=∓ksenα, ma dall’ultima relazione otteniamo ad−bc=1 dunque a=cosα e c=−senα.
Dunque la funzione A(α)=(cosαsenα−senαcosα) parametrizza tutto SO2(R).
Poniamo ora:
ω⇀1n(α1n−1):=σ⇀n−1(α1n−1+π2,π2,...,π2)...................................................................................................ω⇀kn(α1n−1,...,αkn−1):=σ⇀n−1(α1n−1,α2n−1,...,αkn−1+π2,π2,...,π2)...................................................................................................ω⇀n−2n(α1n−1,...,αn−2n−1):=σ⇀n−1(α1n−1,α2n−1,...,αkn−1,...,αn−2n−1+π2,π2)ω⇀n−1n(α1n−1,...,αn−1n−1):=σ⇀n−1(α1n−1,α2n−1,...,αkn−1,...,αn−1n−1+π2)ω⇀nn(α1n−1,...,αn−1n−1):=σ⇀n−1(α1n−1,α2n−1,...,αkn−1,...,αn−1n−1)
Indicheremo le componenti di ω⇀kn nel modo seguente:
ω⇀kn(α1n−1,...,αkn−1):=((ωkn)1(α1n−1,...,αkn−1)...(ωkn)i(α1n−1,...,αkn−1)...(ωkn)n(α1n−1,...,αkn−1))
Notiamo che per definizione ∀k≤n−2 abbiamo (ωkn)i(α1n−1,...,αkn−1)=(ωkn−1)i(α1n−1,...,αkn−1) per i<n e (ωkn)n(α1n−1,...,αkn−1)=0 (verificare), inoltre si ha:
ω⇀n−1n(α1n−1,...,αn−1n−1)=(cosαn−1n−1 ω⇀n−1n−1(α1n−1,...,αn−2n−1)−senαn−1n−1)ω⇀nn(α1n−1,...,αn−1n−1)=(senαn−1n−1 ω⇀n−1n−1(α1n−1,...,αn−2n−1)cosαn−1n−1)
Si invita il lettore a verificare quanto affermato, in quanto fondamentale ai fini delle dimostrazioni che daremo in seguito.
Definiamo contestualmente la funzione matriciale Mn(α1n−1,...,αn−1n−1):=(ω→1n ... ω→nn).
Dimostreremo più avanti che tale funzione è a valori in SOn(R).
Riportiamo a titolo d’esempio le matrici M2(α11), M3(α12,α22), e M4(α13,α23,α33); si invita il lettore ad effettuare i calcoli necessari per ottenerle esplicitamente.
M2(α11)=(cosα11senα11−senα11cosα11);
M3(α12,α22)=(cosα12senα12cosα22senα12senα22−senα12cosα12cosα22cosα12senα220−senα22cosα22)
M4(α13,α23,α33)=(cosα13senα13cosα23senα13senα23cosα33senα13senα23senα33−senα13cosα13cosα23cosα13senα23cosα33cosα13senα23senα330−senα23cosα23cosα33cosα23senα3300−senα33cosα33)
A questo punto sarà certamente chiara la struttura delle matrici Mn appena introdotte.
Dimostriamo ora per induzione che la matrice Mn(α1n−1,...,αn−1n−1) è a valori in SOn(R) ∀n∈N, ciò è vero per n=2, per n>2 dimostreremo che i vettori ω⇀1n,...,ω⇀nn formano una base ortonormale.
Intanto ‖ω⇀kn‖=‖σ⇀n−1(α1n−1,...,αkn−1+π2)‖=1 ∀k≤n perché
σ⇀n−1(α1n−1,...,αn−1n−1)∈Sn−1 ∀{α1n−1,...,αn−1n−1}∈Rn−1 come abbiamo già visto.
Sia dunque per ipotesi induttiva ω⇀in−1•ω⇀jn−1=0 ∀i≠j, abbiamo (si tenga bene a mente la definizione ricorsiva di σ⇀n ):
- Caso (i≠j)<n−2
ω⇀in•ω⇀jn=∑k=1nσkn−1(α1n−1,...,αin−1+π2,π2,...,π2) σkn−1(α1n−1,...,αjn−1+π2,π2,...,π2)==[∑k=1n−1σkn−2(α1n−1,...,αin−1+π2,π2,...,π2) σkn−2(α1n−1,...,αjn−1+π2,π2,...,π2) sen2π2]+cos2π2==ω⇀in−1•ω⇀jn−1=0
- Caso i≤n−2, j=n−1
ω⇀in•ω⇀n−1n=∑k=1nσkn−1(α1n−1,...,αin−1+π2,π2,...,π2) σkn−1(α1n−1,...,αn−1n−1+π2)==[∑k=1n−1σkn−2(α1n−1,...,αin−1+π2,π2,...,π2) σkn−2(α1n−1,...,αn−2n−1) senπ2 sen(αn−1n−1+π2)]++cosπ2 cos(αn−1n−1+π2)=ω⇀in−1•ω⇀n−1n−1cosαn−1n−1=0
- Caso i≤n−2, j=n
ω⇀in•ω⇀nn=∑k=1nσkn−1(α1n−1,...,αin−1+π2,π2,...,π2) σkn−1(α1n−1,...,αn−1n−1)==[∑k=1n−1σkn−2(α1n−1,...,αin−1+π2,π2,...,π2) σkn−2(α1n−1,...,αn−2n−1) senπ2 senαn−1n−1]++cosπ2 cosαn−1n−1=ω⇀in−1•ω⇀n−1n−1senαn−1n−1=0
- Caso i=n−1, j=n
ω⇀n−1n•ω⇀nn=∑k=1nσkn−1(α1n−1,...,αn−1n−1+π2) σkn−1(α1n−1,...,αn−1n−1)==[∑k=1n−1σkn−2(α1n−1,...,αn−2n−1) σkn−2(α1n−1,...,αn−2n−1)sen(αn−1n−1+π2) senαn−1n−1]++cos(αn−1n−1+π2) cosαn−1n−1=(ω⇀n−1n−1•ω⇀n−1n−1−1) senαn−1n−1 cosαn−1n−1=0
Dimostriamo ora che detMn−1(α1n−1,...,αn−2n−1)=1⇒detMn(α1n−1,...,αn−1n−1)=1.
Abbiamo (omettiamo gli argomenti delle funzioni):
detMn(α1n−1,...,αn−1n−1)=det(ω⇀1n,...,ω⇀nn)=det((ω1n)1...(ωn−2n)1(ωn−1n)1(ωnn)1...............(ω1n)i...(ωn−2n)i(ωn−1n)i(ωnn)i............(ω1n)n...(ωn−2n)n(ωn−1n)n(ωnn)n)
ovvero:
=det((ω1n−1)1...(ωn−2n−1)1(ωn−1n−1)1cosαn−1n−1(ωn−1n−1)1senαn−1n−1...............(ω1n−1)n−1...(ωn−2n−1)n−1(ωn−1n−1)n−1cosαn−1n−1(ωn−1n−1)n−1senαn−1n−10...0−senαn−1n−1cosαn−1n−1)==(sen2αn−1n−1+cos2αn−1n−1) det((ω1n−1)1...(ωn−1n−1)1.........(ω1n−1)n−1...(ωn−1n−1)n−1)==det(ω⇀1n−1,...,ω⇀n−1n−1)=detMn−1(α1n−1,...,αn−2n−1)=1
Definiamo le matrici Mkn(α⇀k−1)=(Mk(α1k−1,...,αk−1k−1)Nk,n−kNn−k,kIn−k), ove α⇀k:={α1k,α2k,...,αkk}
Possiamo definire ora la funzione Ωn:[0,2π]n−1×[0,π](n−1)(n−2)2→SOn(R) ponendo Ωn(α⇀1,...,α⇀n−1):=∏k=2nMn−k+2n(α⇀n−k+1).
Così ad esempio Ω4(α⇀1,...,α⇀3)=∏k=24M4−k+24(α⇀4−k+1)=
=(cosα13senα13cosα23senα13senα23cosα33senα13senα23senα33−senα13cosα13cosα23cosα13senα23cosα33cosα13senα23senα330−senα23cosα23cosα33cosα23senα3300−senα33cosα33)••(cosα12senα12cosα22senα12senα220−senα12cosα12cosα22cosα12senα2200−senα22cosα2200001)•(cosα11senα1100−senα11cosα110000100001)
E’ immediato verificare che le matrici Mkn(α⇀k−1) e Ωn(α⇀1,...,α⇀n−1) sono ortogonali, per dimostrare che Ωn parametrizza SOn(R) basta quindi far vedere che è suriettiva.
Per farlo mostreremo che data una base ortonormale destra {x⇀1,...,x⇀n} di Rn esistono {α⇀1,...,α⇀n−1} ovvero {α11,α12,α22,...,α1n−1,...,αn−1n−1}∈[0,2π]n−1×[0,π](n−1)(n−2)2 tali che:
Ωn(α⇀1,...,α⇀n−1)•e⇀k=x⇀k ∀k∈{1,...,n} .
Ricordiamo che M2(α11)≡M22(α11)≡∏k=22Mk2(α11)=Ω2(α11), dunque, come abbiamo già visto, Ω2 è suriettiva su SO2(R).
Sia dunque {x⇀1,...,x⇀n} una base ortonormale destra di Rn, si ha ‖x⇀n‖=1 dunque x⇀n∈Sn−1, allora esistono {α1n−1,...,αn−1n−1}∈[0,2π]×[0,π]n−2 tali che σ⇀n−1(α⇀n−1)=x⇀n.
Abbiamo pure Mn(α⇀n−1)•e⇀n=σ⇀n−1(α⇀n−1)=x⇀n; notiamo che Mn manda i vettori della base canonica e⇀1,...,e⇀n−1 in una base ortonormale destra contenuta nell’iperpiano ortogonale a x⇀n≡σ⇀n−1(α⇀n−1).
Viceversa (Mn(α⇀n−1))t è tale che (Mn(α⇀n−1))t•x⇀n=e⇀n e (Mn(α⇀n−1))t•x⇀k∈span(e⇀1,...,e⇀n−1) ∀k<n anche se in generale (Mn(α⇀n−1))t•x⇀k≠e⇀k ∀k≠n.
Per mandare i vettori (Mn(α⇀n−1))t•x⇀1,...,(Mn(α⇀n−1))t•x⇀n−1 nei vettori di base e⇀1,...,e⇀n−1 basta applicare a sinistra la matrice (Ωn−1(α⇀1,...,α⇀n−2)Nn−1,1N1,n−11)t alla (Mn(α⇀n−1))t; infatti la (Ωn−1(α⇀1,...,α⇀n−2)Nn−1,1N1,n−11)t lascia invariato l’ultimo vettore riga di (Mn(α⇀n−1))t, ovverosia x⇀n≡σ⇀n−1(α⇀n−1), inoltre per ipotesi induttiva ∃{α⇀1,...,α⇀n−2}∈[0,2π]n−2×[0,π](n−2)(n−3)2 tali che (con e⇀k indichiamo indifferentemente il k−esimo vettore di base canonica di Rn−1 e/o Rn ):
(Ωn−1(α⇀1,...,α⇀n−2)Nn−1,1N1,n−11)t•e⇀k=(Ωn−1(α⇀1,...,α⇀n−2)•e⇀k0)=(Mn(α⇀n−1))t•x⇀k ∀k<n (ricordiamo che i vettori (Mn(α⇀n−1))t•x⇀1,...,(Mn(α⇀n−1))t•x⇀n−1, essendo ortogonali a e⇀n, hanno la n−esima coordinata nulla).
Dunque, applicando a sinistra la matrice Mn(α⇀n−1) ad entrambi i membri dell’espressione precedente abbiamo:
Mn(α⇀n−1) •(Ωn−1(α⇀1,...,α⇀n−2)Nn−1,1N1,n−11)t•e⇀k=Mn(α⇀n−1)•((Mn(α⇀n−1))t•x⇀k)=x⇀k ∀k<n
ma abbiamo anche:
Mn(α⇀n−1) •(Ωn−1(α⇀1,...,α⇀n−2)Nn−1,1N1,n−11)t=Mn(α⇀n−1)•∏k=3nMn−k+2n(α⇀n−k+1)==∏k=2nMn−k+2n(α⇀n−k+1)=Ωn(α⇀1,...,α⇀n−1)
dunque esistono {α⇀1,...,α⇀n−1}∈[0,2π]n−1×[0,π](n−1)(n−2)2 tali che Ωn(α⇀1,...,α⇀n−1)•e⇀k=x⇀k ∀k∈{1,...,n}
Dimostrata la suriettività di Ωn ricaviamo un’ulteriore proprietà delle matrici Mn che permetterà di esprimere qualunque rotazione in Rn come composizione di rotazioni piane.
Introduciamo le matrici Pkn:
Pkn(αkn−1):=(Ik−1Nk−1,2Nk−1,n−k−1N2,k−1cosαkn−1senαkn−1−senαkn−1cosαkn−1N2,n−k−1Nn−k−1,k−1Nn−k−1,2In−k−1)
Dimostriamo per induzione che Mn(α⇀n−1)=∏k=1n−1Pkn(αkn−1); intanto ciò è banalmente vero per n=2 infatti M2(α11)=∏k=11Pk2(αk1)=P12(α11).
Sia dunque la proposizione vera per n−1, e dimostriamola per n; abbiamo:
∏k=1n−1Pkn(αkn−1)=∏k=1n−2(Pkn−1(αkn−1)Nn−1,1N1,n−11)•Pn−1n(αn−1n−1)==(Mn−1(α1n−1,...,αn−2n−1)Nn−1,1N1,n−11)•(In−2Nn−2,2N2,n−2cosαn−1n−1senαn−1n−1−senαn−1n−1cosαn−1n−1)=
=(ω⇀1n−1...ω⇀n−2n−1ω⇀n−1n−1Nn−1,10...001)•(In−2Nn−2,2N2,n−2cosαn−1n−1senαn−1n−1−senαn−1n−1cosαn−1n−1)=
=(ω⇀1n−1...ω⇀n−2n−1cosαn−1n−1ω⇀n−1n−1senαn−1n−1ω⇀n−1n−10...0−senαn−1n−1cosαn−1n−1)=(ω⇀1n...ω⇀nn)=Mn(α⇀n−1)
È chiaro poi che Mkn(α⇀k−1)=∏j=1k−1Pjn(αjk−1).
Ricordando ora che si ha Ωn(α⇀1,...,α⇀n−1)=∏k=2nMn−k+2n(α⇀n−k+1) e sostituendo in tale espressione quella di Mkn(α⇀k−1)=∏j=1k−1Pjn(αjk−1) si ottiene la generalizzazione del teorema di Eulero a SOn(R):
Ωn(α⇀1,...,α⇀n−1)=∏k=2nMn−k+2n(α⇀n−k+1)=∏k=2n(∏j=1n−k+1Pjn(αjn−k+1)); il lettore può verificare personalmente come tale espressione coincida con quella data da Eulero per SO3(R).
Riportiamo a titolo di esempio la decomposizione di Ω4(α1,α⇀2,α⇀3) in rotazioni piane:
Ω4(α1,α⇀2,α⇀3)==(cosα13senα1300−senα13cosα130000100001)•(10000cosα23senα2300−senα23cosα2300001)•(1000010000cosα33senα3300−senα33cosα33)••(cosα12senα1200−senα12cosα120000100001)•(10000cosα22senα2200−senα22cosα2200001)•(cosα11senα1100−senα11cosα110000100001)
Diamo ora un algoritmo per decomporre una matrice ortogonale a determinante positivo nella forma appena ricavata; sia allora B=(bji)∈SOn(R), ci proponiamo di trovare gli angoli {α⇀1,...,α⇀n−1} ovvero {α11,α12,α22,...,α1n−1,...,αn−1n−1}∈[0,2π]n−1×[0,π](n−1)(n−2)2 tali che si abbia Ωn(α⇀1,...,α⇀n−1)=B.
B:=(b11...bn−11bn1............b1n−1...bn−1n−1bnn−1b1n...bn−1nbnn)
Ricordiamo che l’ultima colonna di Ωn coincide con l’ultima di Mn, in quanto la moltiplicazione a destra per le matrici Mkn la lascia invariata.
In particolare l’ultimo vettore colonna di Mn è ω⇀nn≡σ⇀n−1 dunque l’ultima colonna di B dovrà essere uguale a: σ⇀n−1(α⇀n−1)=(σ1n−1...σn−1n−1σnn−1)=(senαn−1n−1ω⇀n−1n−1cosαn−1n−1)=(bn1...bnn−1bnn); supponiamo ora |bnn|≠1 (altrimenti avremo una matrice a blocchi (B'Nn−1,1N1,n−1±1) e potremo quindi applicare il procedimento di seguito esposto a B', moltiplicando preventivamente una riga o colonna di B' per −1 nel caso bnn=−1 e quindi B'∈On(R)\SOn(R) ).
Per le considerazioni sopra esposte dev’essere bnn=σnn−1(α⇀n−1)=cosαn−1n−1 con αn−1n−1∈[0,π] determinato univocamente da αn−1n−1=arcosbnn.
A questo punto essendo σkn−1(α1n−1,...,αn−1n−1)=senαn−1n−1σkn−2(α1n−1,...,αn−2n−1) per k<n abbiamo:
σkn−2(α1n−1,...,αn−2n−2)=(bn1senαn−1n−1...bnn−1senαn−1n−1bnnsenαn−1n−1); notando poi che cosαn−2n−1=bnn−1senαn−1n−1 ( senαn−1n−1≠0
perché abbiamo supposto |bnn|≠1 ) e ricavando così αn−2n−1 si può determinare cosαn−3n−1=bnn−2senαn−1n−1senαn−2n−1 con lo stesso metodo e le stesse considerazioni usate per αn−2n−1; continuando mediante un procedimento “all’indietro” si possono determinare tutti i parametri {α1n−1,...,αn−1n−1}∈[0,2π]×[0,π]n−2, e di conseguenza σ⇀n−1(α⇀n−1) e Mn(α⇀n−1) che da σ⇀n−1(α⇀n−1) è completamente descritta.
A questo punto, ricordando che si ha Ωn(α⇀1,...,α⇀n−1)=∏k=2nMn−k+2n(α⇀n−k+1), basta moltiplicare B a sinistra per la matrice (Mn)−1=(Mn)t appena ottenuta, ricavando così
la matrice (Ωn−1(α⇀1,...,α⇀n−2)N1,n−1Nn−1,11)=(Mn)t•B; applicando poi a (Mn)t•B il medesimo procedimento usato per B, notando cioè come la (n−1)−esima colonna della matrice formata dalle sue prime n−1 righe e colonne sia uguale a σ⇀n−2(α⇀n−2) si determinano {α1n−2,...,αn−2n−2}∈[0,2π]×[0,π]n−3 dunque Mn−1n(α⇀n−2) e così via, fino a ricavare, sempre “all’indietro”, α11 e M2n(α11).
Per finire facciamo alcune considerazioni sul numero di parametri necessario per descrivere SOn(R); notiamo che abbiamo scomposto una rotazione di Rn in n(n−1)2 rotazioni piane, e che i piani ottenibili combinando a due a due gli n vettori di base sono esattamente (n2)=n(n−1)2.
Per quanto riguarda Ωn ricordiamo che essa è definita come prodotto da n a 2 delle funzioni Mkn(α⇀k−1):[0,2π]×[0,π]k−2→SOn(R), dunque è il prodotto di n−1 matrici aventi ciascuna un dominio del tipo [0,2π]×[0,π]k−2; dunque Ωn avrà un dominio formato da [0,2π]n−1 e da [0,π](n−1)(n−2)2 dunque dipende in tutto da n(n−1)2 parametri indipendenti.
Ancora, la condizione di ortogonalità per una matrice di ordine n è definita da n(n+1)2 prodotti scalari dunque richiede n2−n(n+1)2=n(n−1)2 parametri indipendenti.