Questa pagina dovrebbe consentire a chiunque calcoli cinematici a prima vista difficilissimi. In effetti saper gestire correttamente il moto uniformemente accelerato di una singola particella è la conditio sine qua non per trattare sistemi di particelle soggette a forze e interazioni arbitrarie sia in meccanica relativistica che, ovviamente, in meccanica classica.
Per la giustificazione teorica delle formule guardare in questa scherzosa paginetta.

Accelerazione relativistica

Moto uniformemente accelerato di una particella che nel proprio sistema di riferimento sente una accelerazione costante in direzione e modulo: le grandezze cinematiche osservate da un osservatore in moto inerziale che vede immobile e nell'origine al tempo 0 la particella, sono esprimibili mediante un invariante caratteristico della particella:

t = c·sinh( a·s/c2 ) / a
x = c2·( cosh( a·s/c2 ) − 1 ) / a
v = c·tanh( a·s/c2 )

nota: le funzioni iperboliche cosh( ), sinh( ) e tanh( ) sono definite in Fortran ma non in Javascript dove è necessario esprimerle in funzione dell'esponenziale exp definito come metodo dell'oggetto Math. In pratica:

sinh(x) = ( ex − e−x ) / 2
cosh(x) = ( ex + e−x ) / 2
tanh(x) = sinh(x) / cosh(x) = ( ex − e−x ) / ( ex + e−x )

La variabile indipendente s è lo spazio proprio ovvero la distanza percorsa dalla luce nel sistema di riferimento della particella. La particella misura il tempo come tempo proprio ossia con un orologio che si muove solidarmente a lei.
Essendo, per definizione nel Sistema Internazionale, c = 299792458 m/s, può essere maggiormente intuitivo usare il tempo proprio τ = s / c come variabile indipendente, dato che τ risulta sempre molto vicino al tempo misurato dall'osservatore inerziale se la velocità della particella è piccola rispetto a quella della luce. In funzione di τ le formule del moto uniformemente accelerato diventano:

t = c · sinh( a · τ / c ) / a
x = c2·( cosh( a · τ / c ) − 1 ) / a
v = c · tanh( a · τ / c )

Introducendo il parametro adimensionale:

α = a · τ / c

diventano:

t = τ · sinh( α ) / α
x = c · τ ·( cosh( α ) − 1 ) / α
v = c · tanh( α )

Queste formule fanno sorgere difficoltà numeriche quando l'accelerazione propria a è nulla o prossima a zero. Sono dunque preferibili, per valori del parametro adimensionale (a·τ/c) piccoli in valore assoluto, gli sviluppi in serie ossia:

t ≈ τ · ( 1 + ( a · τ / c)2 / 6  )
x ≈ ( a / 2 ) · τ2 · ( 1 + ( a · τ / c)2 / 12  )
v ≈ a · τ · ( 1 − ( a · τ / c)2 / 3  )

ossia, facendo uso di α:

t ≈ τ · ( 1 + α2 / 6 )
x ≈ τ · c · α · ( 1 / 2 + α2 / 24 )
v ≈ c · α · ( 1 − α2 / 3 )

Sempre in caso di piccole velocità rispetto a quella della luce, può essere utile esprimere i dati cinematici della particella non in funzione del suo tempo proprio ma in funzione del tempo misurato dall'osservatore.
Le formule equivalenti sono, in questo caso, le seguenti:

τ ≈ t · ( 1 − ( a · t / c)2 / 6  )
x ≈ ( a / 2 ) · t2 · ( 1 − ( a · t / c)2 / 4  )
v ≈ a · t · ( 1 − ( a · t / c)2 / 2  )

In questo caso diventa utile il parametro adimensionale:

δ = a · t / c = sinh(α)

per cui si può scrivere:

τ ≈ t · ( 1 − δ2 / 6  )
x ≈ t · c · δ · ( 1 / 2 − δ2 / 8  )
v ≈ c · δ · ( 1 − δ2 / 2  )

mentre le formule esatte, usabili per δ non piccolissimo, sono:

τ = t · log( δ + ( 1 + δ2 )½ ) / δ
x = c · t · ( ( 1 + δ2 )½ − 1 ) / δ
v = c · δ / ( 1 + δ2 )½

Le componenti del vettore tetravelocità sono:

u0 = cosh( a · τ /c ) = cosh( α )
u1 = sinh( a · τ /c ) = sinh( α )

La trasformata di Lorentz necessaria per vedere ferma la particella dopo la fase di accelerazione costante è quindi la seguente (essendo ψ = 1/( 1 + u0 ) ):

L(u1)=



ψ−1 −1 −u1


−u1 1 + ψ·u1·u1

ovvero con facili passaggi:

L(u1) = L(α)=



cosh(α)  −sinh(α)  


  −sinh(α) cosh(α)

L'espressione della matrice di Lorentz unita a quella della posizione della particella a valle della accelerazione forniscono gli attrezzi di lavoro per il calcolo del moto di una particella di cui si conoscano le accelerazioni proprie e i tempi propri di ciascuna fase di accelerazione.
Indichiamo con P(αi, τi ) il vettore colonna ( e con PT il suo trasposto ossia riga) che specifica la variazione della posizione della particella per effetto del parametro accelerativo αi e dell'intervallo di tempo proprio τi durante il quale la particella ha subito l'azione costante di αi. Sia cioè:

P( αi, τi )T = [ τi · sinh( αi ) / αi   ,   τi ·( cosh( αi ) − 1 ) / αi ]

Si noti che le componenti del vettore P( αi, τi ) sono dimensionalmente omogenee e che la dimensione spaziale è misurata in secondi luce ossia ogni distanza viene specificata tramite il numero di secondi che la luce impiega a percorrere tale distanza. A questo proposito ho il sospetto che potranno rallegrarsi gli americani, i grandi nemici del Sistema Internazionale visto che un nanosecondo luce corrisponde a 29.9792458 cm ossia, circa ad un feet (-ente e puzzolente) ossia 30.48 cm. Gli amanti del S.I. invece potrebbero misurare le distanze in pico-ore-luce ( sarebbero cioè 3.6 ns-luce, nanosecondi-luce); una pico-ora-luce corrisponde approssimativamente ad un metro, ossia esattamente a 1.0792528488 m; peccato che l'ora non sia una unità di misura ufficiale del S.I.
Una proprietà importante delle trasformazioni di Lorentz per il moto monodirezionale uniformemente accelerato, è la seguente:

L(i αi) = i L( αi )

Posto dunque:

σ0 = 0
σk = i=1...k αi ;     k=1, 2, ...

tempi e distanze percorsi dopo m+1 fasi accelerative (essendo m=0, 1, 2...) e riferiti al sistema inerziale iniziale, si calcolano con la seguente formula:

Pm = k=0...m L(σk)· P( αk+1, τk+1 ) ;     m = 0, 1, 2,

Quest'ultima formula può considerarsi la pietra di volta della teoria della relatività per problemi monodirezionali dato che consente di calcolare senza alcuna approssimazione numerica, rigorosamente, la posizione di una particella osservata da un osservatore per cui, all'istante iniziale, la particella sia ferma nell'origine. La traiettoria è completamente nota assegnando, in corrispondenza di tutti gli intervalli di tempo proprio della particella, i valori dell'accelerazione costante durante ogni singolo intervallo.

Verifiche numeriche

Nel caso monodirezionale la trasformata di Lorentz (in Javascript: lorentz(u,v)) e la sua antitrasformata ( ossia ulorentz(u,v) ) sono particolarmente semplici:
...
Si noti che nella function lorentz, il primo argomento, ovvero il tetravettore u (che nel moto unidirezionale ha due sole componenti) , dovrebbe essere una tetravelocità e dunque dovrebbe avere norma pseudoeuclidea unitaria (ossia: u[0]*u[0]-u[1]*u[1]== 1). Per ragioni di affidabilità della trasformazione nella function non si usa il valore disponibile ma tale valore viene espressamente ricalcolato e posto nella variabile u0 in modo oltretutto tale da mettere in risalto questo fondamentale legame tra u[0] ed u[1].
Siano:
  • p :: vettore della posizione della particella; nel moto unidirezionale ha due componenti: la prima. p[0] rappresenta il tempo a cui si riferisce la posizione mentre la seconda, p[1] rappresenta la posizione. Tempo e posizione sono quelli dell'osservatore inerziale.
  • u :: vettore delle tetravelocità della particella ossia versore rispetto alla norma pseudoeuclidea, visto il legame che deve sussistere tra componente temporale u[0]e componente spaziale u[1].
  • tn :: tempo in corrispondenza del quale si vuol calcolare la nuova posizione. L'algoritmo avanza nel tempo proprio della particella e dunque verrà ottenuto un risultato prossimo ma non esattamente in corrispondenza del tempo assegnato.
  • c :: la velocità della luce ossia 299792458 m·s−1. Nel Sistema Internazionale (S.I.) la velocità della luce non è un dato misurato ma assegnato ossia l'unità di tempo e di spazio debbono essere definite in modo che la luce abbia la velocità suddetta.
  • acc :: accelerazione impressa alla particella nel suo sistema proprio. Va data in m·s−2 nel S.I..
  • Un singolo passo dell'algoritmo è così composto:
    1. Stimo l'incremento di tempo proprio necessario per avanzare nel tempo dell'osservatore della quantità voluta. Ipotizzo che la particella si sposti, nell'intervallo di tempo, muovendosi a velocità costante e calcolo quanto è stato l'incremento di tempo proprio della particella quando il tempo dell'osservatore aumenta della quantità voluta.

      dtau=(tn-p[0])/u[0]

    2. Calcolo posizione e tempo della particella nel sistema inerziale in cui la particella è ferma. Applico dunque una trasformazione di Lorentz.

      pp = lorentz(u,p);

    3. Incremento il tempo proprio della particella della quantità stimata per ottenere l'incremento di tempo desiderato dall'osservatore (la stima sarebbe esatta se l'accelerazione della particella fosse nulla).

      pp[0]=pp[0]+dtau;

    4. Incremento la posizione della particella applicando la meccanica classica (spostamento dato dal quadrato dell'incremento del tempo per metà dell'accelerazione costante)

      pp[1]=pp[1]+dtau*dtau*acc/(2*c);

    5. Incremento la velocità secondo la meccanica classica (velocità data dall'incremento del tempo per accelerazione costante; inizialmente la velocità è nulla poiché ci siamo posti nel sistema in cui appunto lo era.)

      un[1]=dtau*acc/c;

    6. Calcolo la componente temporale del tetravettore velocità assumendo approssimativamente che la velocità classica sia la componente spaziale e dunque imponendo che il tetravettore abbia norma pseudoeuclidea unitaria.

      un[0]=Math.sqrt(1+un[1]*un[1]);

    7. Noti i nuovi valori di tempo e posizione della particella ritorno al sistema inerziale iniziale per sapere come è incrementato il tempo e lo spazio nel sistema dell'osservatore. Applico dunque la trasformazione di Lorentz inversa di quella usata per annullare la velocità iniziale della particella.

      p = ulorentz(u,pp);

    8. Noto il nuovo tetravettore velocità, ritorno al sistema inerziale iniziale per sapere cosa vale tale tetravettore nel sistema dal punto di vista dell'osservatore inerziale. Applico, anche in questo caso la trasformazione di Lorentz inversa di quella usata per annullare la velocità iniziale della particella.

      u = ulorentz(u,un);

    9. Cumulo il tempo proprio vissuto dalla particella. Attenzione: il tempo proprio della particella dipende dalla storia delle accelerazioni subite e dunque non coincide col tempo proprio dedotto dal cambiamento del sistema inerziale da quello dell'osservatore a quello rispetto a cui la particella è ferma al termine della sequenza delle accelerazioni.

      tau = tau + dtau

    La traduzione, in Javascript, dell'algoritmo è la seguente:

    ...
    Si noti che il primo argomento, up è una matrice di tre componenti: vettore posizione, vettore tetravelocità della particella e tempo proprio cumulato. La posizione è un vettore con elementi di tipo tempo (espressi in secondi) mentre la tetravelocità è un vettore adimensionale.

    L'algoritmo va applicato un congruo numero di volte in modo da coprire a piccoli passi l'intervallo di tempo desiderato. Ecco la funzione che cumula i vari passi:

    ...

    Il calcolo esatto della posizione, velocità e tempo proprio di una particella inizialmente ferma nell'origine è il seguente:

    ...


    tempo [s]:   accelerazione [m·s−2] :  numero suddivisioni:

    Per provare: in 84.3 anni di tempo, si percorre la distanza di 83.2 anni luce ma il tempo proprio aumenta di soli 5 anni ossia gli astronauti in 10 anni, accelerando per 5 anni di tempo dal loro punto di vista e decelerando per altri 5, in modo da poter sbarcare su un pianeta che si muove nella galassia ( ossia è praticamente fermo rispetto alla Terra) potrebbero allontanarsi dalla Terra di 166.4 anni luce.