• Non ci sono risultati.

Appendice C I quaternioni

N/A
N/A
Protected

Academic year: 2021

Condividi "Appendice C I quaternioni"

Copied!
8
0
0

Testo completo

(1)

I quaternioni

I quaternioni sono oggetti matematici inventati nel 1843 da Sir R. Hamilton e, dal nostro punto di vista, possono essere considerati come un estensione dei numeri complessi.

Questa appendice provvede un riassunto di quella che e l'algebra dei qua-ternioni e di come essi possano rappresentare rotazioni ed interpolazioni di rotazioni. Gli articoli di riferimento in questo ambito sono [25] e [4].

C.1 Algebra dei quaternioni

Un quaternione e dato da q = w + xi + yj + zk, dove w,x,y e z sono numeri reali.

L'addizione di due quaternioni q0 e q1 si esegue nel seguente modo:

q0 q1 = w0 w1+ (x0 x1)i + (y0 y1)j + (z0 z1)k (C.1)

Le moltiplicazioni per gli elementi primitivi i,j e k sono de nite da: i2 = j2 = k2 = 1, ij = ji = k, jk = kj = i e ki = ik = j. La

(2)

I quaternioni

moltiplicazione di quaternioni si esegue allora al seguente modo: q0q1 = (w0+ x0i + y0j + z0k)(w1+ x1i + y1j + z1k) = = (w0w1 x0x1 y0y1 z0z1)+ (w0x1+ x0w1+ y0z1 z0y1)i+ (w0y1 x0z1+ y0w1+ z0x1)j+ (w0z1+ x0y1 y0x1+ z0w1)k (C.2)

La moltiplicazione dei quaternioni non e commutativa, in quanto q0q1 6=

q1q0.

Si de nisce il coniugato do un quaternione con:

q = (w + xi + yj + zk) = w xi yj zk (C.3)

Il coniugato di un prodotto di quaternioni soddisfa le prioprieta (p) = p

e (pq) = qp.

La norma di un quaternione si de nisce come:

N(q) = w2+ x2 + y2+ z2 (C.4)

La norma e una funzione a valori reali e soddisfa le proprieta: N(q) =

N(q) e, per il prodotto, N(pq) = N(p)N(q).

Si de nisce q 1 l'inverso di un quaternione q. Esso gode della proprieta

q 1q = 1 e si costruisce come:

q 1 = q

N(q) (C.5)

dove la divisione di un quaternione per un numero reale e la semplice divi-sione componenente per componente. L'inverso gode anche delle proprieta: (p 1) 1 = p e (pq) 1 = q 1p 1.

Spesso si indica w come la parte reale e v = (x; y; z) come la parte vetto-riale del quaternione, scrivendo cos q = (w + v). E' utile notare che la parte reale di q si puo ottenere come w = (q + q)=2. Con questa notazione, si puo

scrivere la moltiplicazione di quaternioni usando il prodotto scalare () ed il prodotto vettoriale () di due vettori:

(3)

In questa forma e chiaro che q0q1 = q1q0 se e solo se v0  v1 = 0 (i vettori

sono paralleli).

Un quaternione q puo anche essere visto come un vettore a 4 dimensioni (w; x; y; z) e se ne de nisce il prodotto scalare come:

q0 q1 = (w0w1+ x0x1 + y0y1+ z0z1) (C.7)

ossia e la parte reale di q0q1.

Si de nisce il quaternione unitario un quaternione q per il quale vale N(q) = 1. Geometricamente esso rapprresenta una ipersfera di raggio unta-rio. L'inverso ed il prodotto di quaternioni untari sono anch'essi quaternioni unitari. Un quaternione unitario puo essere rappresentato al seguente modo:

q = cos  + u sin  (C.8)

dove u e un versore nello spazio tridimensionale. Vale la proprieta uu = 1. Si nota la somiglianza coi numeri complessi, infatti l'identita di Eulero per i numeri complessi, si generalizza coi quaternioni:

q = cos  + u sin  = eu (C.9)

dove l'esponenziale e valutato sostituendo simbolicamente u nello sviluppo in serie di ex, con uu = 1. Da questa identita, e possibile di nire la potenza

di un quaternione:

qt = eut = cos(t) + u sin(t) (C.10)

E' anche possibile de nire il logaritmo di un quaternione, come:

log q = log eu = u (C.11)

E' molto importante notare che la non commutazione della moltipli-cazione dei quaternioni non permette le identita standard delle funzioni esponenziale e logaritmo: epeq 6= e(p+q), cosiccome log(p+q) 6= log(p)+log(q).

(4)

I quaternioni

C.2 Relazione tra quaternioni e rotazioni

Un quaternione unitario q = cos  + u sin  rappresenta la rotazione di un vettore tridimensionale v di un angolo 2 attorno all'asse u. Il vettore ruo-tato, rappresentato come quaternione, e R(v) = qvq. Per dimostrare cio e

necessario provare che R(v) e un vettore tridimensionale, che la lunghezza di v e invariata in seguito a R, che la trasformazione e lineare e che non e contemplata la componente di ri essione.

Per mostrare che R(v) e un vettore tridimensionale, si calcola la parte reale di questo quaternione:

w(R(v)) = [qvq+ (qvq)]=2

= [qvq+ qvq]=2

= q[(v + v)=2]q

= 0 perche v + v = 0.

Per dimostrare che R(v) mantiene invariata la lunghezza di v, si calcola la norma: N(R(v)) = N(qvq) = N(q)N(v)N(q) = N(q)N(v)N(q) = N(v) perche N(q) = 1.

Per dimostrare che R(v) e una trasformazione lineare, sia a uno scalare reale e v e w due vettori tridimensionali; risulta allora:

R(av + w) = q(av + w)q

= q(av)q+ q(w)q

= a(qvq) + (qwq)

= aR(v) + R(w)

Queste tre proprieta mostrano che R(v) e una trasformazione ortonor-male. Tali trasformazioni includono le rotazioni e le ri essioni.

(5)

Si considera ora il caso di R come una funzione di q per un vettore v costante. La funzione R(v) = qvq e continua in q e, per ogni q e una

tra-sformazione lineare con determinante D(q), anch'esso lineare in q. Quindi, per limq!1R(q) = R(1) = I (dove I e la funzione identita e il limite e

calco-lato lungo un qualsiasi cammino di quaternioni che tendano al quaternione 1) e limq!1D(q) = D(1) = 1. Per continuita D(q) e identicamente 1 e R(q)

non ammette la ri essione.

Si dimostra ora che R(q) e una rotazione di un angolo 2 e che l'asse di rotazione e u. Per vedere che u e un versore di un asse di rotazione e necessario dimostrare esso rimane invariato con la rotazione. Ricordando che uu = 1, ne risulta che uuu = u e quindi:

R(u) = quq

= (cos  + u sin )u(cos  u sin ) = (cos )2u (sin ))2uuu

= (cos )2u (sin ))2( u)

= u

Per dimostrare che l'angolo di rotazione e 2, siano u, v e w una terna levogira di vettori ortonormali, tali che uv = uw = v w = 0 e uv = w, v  w = u e w  u = v. Il vettore v e ruotato di un angolo  nel vettore qvq, cosicche v(qvq) = cos(). Usando l'equazione C.7, con v = v , per

quaternioni unitari a parte reale nulla, risulta (si indica con W () l'operatore che retituisce la parte reale del quaternione):

cos() = v  (qvq)

= W (vqvq)

= W [( v(cos  + u sin )v(cos  u sin )] = W [( v cos  vu sin )(v cos  vu sin )]

= W [ vv(cos )2+ vvu(sin  cos ) vuv(sin  cos ) + vuvu(sin )2]

= W [(cos )2 (sin )2 (u + vuv) sin  cos 

(6)

I quaternioni risulta:

cos() = W [(cos )2 (sin )2 (u + vuv) sin  cos 

= W [(cos )2 (sin )2 u(2 sin  cos )]

= W [(cos )2 (sin )2]

= cos(2) e l'angolo di rotazione  = 2.

E' importante notare che i quaternioni q e q rqpprensentano la stessa rotazione, dato che ( q)v( q) = qvq.

C.3 Conversioni tra quaternioni e matrici di

rotazione

Per questioni di spazio, in questa sezione riportiamo solo i risultati principali, mentre le dimostrazioni con tutti i passaggi possono essere trovati in [4].

C.3.1 Da quaternione a matrice di traformazione

Dato un quaternione q = (w; x; y; z), la sua matrice di trasformazione T associata e: T = 0 B B B B @

1 2(y2 + z2) 2xy 2wx 2wy + 2xz 0

2xy + 2wz 1 2(x2+ z2) 2wx + 2yz 0 2wy + 2xz 2wx + 2yx 1 2(x2+ y2) 0 0 0 0 1 1 C C C C A

C.3.2 Da matrice di tasformazione a quaternione

L'algoritmo valido, con le relative eccezioni, e riportato in [25] ed e quello implementato in KSS. Di seguito, si riporta il passo principale (tratto da [4]). Data la matrice T nella forma di cui sopra, si possono ricavare i parametri

(7)

di q come: tr(T ) = T11+ T22+ T33+ T44 w = 1 2 p tr(T ) x = T32 T23 4w y = T13 T31 4w z = T21 T12 4w

C.4 Interpolazione lineare sferica

I quaternioni de niscono un orientamento e l'idea di interpolare linearmente tra due quaternioni q0 e q1, visti come vettori in 4D sull'ipersfera unitaria

separati da un angolo , e di trovare una relazione del tipo: q(t) = c0(t)q0 + c1(t)q1

dove c0 e c1 sono funzioni reali di t per 0  t  1.

La quantita q(t) deve essere un quaternione unitario, per cui: 1 = q(t)  q(t) = c0(t)2+ 2c0(t)c1(t) cos() + c1(t)2

Questa equazione e quella di un'ellisse che puo essere fattorizzata per ottenere le espressioni analitiche per c0 e c1. Un'altra via piu semplice e

quella che segue. Mentre t varia tra 0 e 1, il quaternione q(t) deve variare uniformemente nell'arco di cerchio che unisce q0 e q1. Quindi, l'angolo tra

q(t) e q0 e cos(t) e l'angolo tra q(t) e q1 e cos((1 t)). Il prodotto scalare

tra q(t) e q0 ne fornisce la parte reale, che vale:

cos(t) = c0(t) + cos()c1(t)

e il prodotto scalare tra q(t) e q1:

cos((1 t)) = c1(t) + cos()c0(t)

Si hanno quindi due equazioni in due incognite, la cui soluzione fornisce c0 e c1. Grazie a questi, l'espressione nale per il quaterione interpolato q(t),

(8)

I quaternioni

che si indica con Slerp(q0; q1; t)1, risulta:

q(t) = Slerp(q0; q1; t) = q0sin((1 t)) + qsin  1sin(t) (C.12)

E' da notarsi che questa espressione non e de nita per  = 0, ma per ovviare a questo inconveniente e semplice rimaneggiarla per passare ad un'e-spressione contenente termini nella forma sin 

 , per i quali si ha lim!0 sin  =

1.

Esistono anche altre forme d'interpolazione per i quaternioni piu avanzate, quali la cubica e la spline. Queste non sono contemplate in questo lavoro, ma si possono trovare in [4].

Tutte queste proprieta dei quaternioni sono dichiarate ed implementate nella classe Quaternion di KSS (cap. 5).

Riferimenti

Documenti correlati

Si noti che le precedenti equazioni sono proprio le equazioni 3.4 del capitolo 3; infatti, come è già stato fatto notare, una rotazione con il centro nell'origine O ed

Invece di usare la tecnica dei parametri di Eulero o dei quaternioni, che richiede quattro parametri, anche se legati da un’equazione di vincolo sulla norma, si usano i

[r]

[r]

[r]

In Chapter III, the Authors will focus on the risks and trade-offs of the Commission’s choice to support the deployment of an all fibre network, while bearing in mind

As far as Hindi is concerned, a subordinate clause hosting a subjunctive allows a coreference reading between the matrix third person pronoun and the embedded one, while for

cioè in modo che il modulo quadro della funzione d’onda si comporti come uno scalare. Questo però non definisce completamente l’operatore, perché in questo modo la funzione