Sei sulla pagina 1di 8

Prima prova in itinere

Federico Annese (2061981)


8 Novembre 2023

Abstract
In questo studio effettuiamo l’integrazione numerica di un sistema di equazioni differenziali con l’algoritmo di Verlet nelle
velocità osservando l’andamento della traiettoria (x(t), y(t)) e calcolando i tempi di ritorno per la traiettoria x(t) di cui ne
calcoliamo la media < Trit >= 3.1265 s. Studiamo lo stesso sistema di equazioni differenziali con due termini aggiuntivi,
di cui uno è l’attrito viscoso γ e analizziamo l’andamento della traiettoria (x(t), y(t)) e x(t) per verificare se si tratta di un
attrattore. Siccome il sistema in presenza dell’elemento dissipativo γ segue traiettorie diverse a seconda delle condizioni
iniziali imposte, effettuiamo uno studio più accurato della dipendenza dalle condizioni iniziali degli stati asintotici del
(1) (2)
sistema, x∞ ≃ 1.11 e x∞ ≃ −1.11, mediante il bacino di attrazione e analizziamo la natura caotica del sistema.

1 Integrazione delle equazioni differenziali mediante l’algoritmo di Verlet


nelle velocità
Integriamo numericamente le equazioni differenziali fornite nel testo mediante un codice in linguaggio C in cui implementiamo
l’algoritmo di Verlet nelle velocità:

x(t + 1) = x(t) + vx (t)∆t + 2x(t) 1 − x(t)2 − y(t)2 ∆t2


 
(1)

y(t + 1) = y(t) + vy (t)∆t + 2y(t) 1 − x(t)2 − y(t)2 ∆t2


 
(2)
 
ax (t) + ax (t + 1)
vx (t + 1) = vx (t) + ∆t (3)
2
 
ay (t) + ay (t + 1)
vy (t + 1) = vy (t) + ∆t (4)
2
Eseguiamo l’integrazione con le seguenti condizioni iniziali x(0) = 1, y(0) = 0, vx (0) = 1, vy (0) = 1, ∆t = 0.01, tmax = 100 e
otteniamo la traiettoria (x(t), y(t)) mostrata nel grafico sottostante

Figure 1: Traiettoria (x(t), y(t)) del moto ottenuta con l’algoritmo di Verlet nelle velocità.

1
Notiamo subito che si tratta di un sistema hamiltoniano, infatti l’energia totale ε(t) del sistema è conservata. Inoltre la sim-
metria di tale traiettoria è dovuta anche all’algoritmo di integrazione che in questo caso è simplettico, infatti il determinante
della matrice delle perturbazioni lineari det(TV V ) = 1.

Dalla teoria sappiamo inoltre che l’algoritmo di Verlet autopartente è di ordine quadratico, ovvero l’errore di approssimazione
globale di tale algoritmo è O(∆t2 ). É data inoltre la quantità

1
vx (t)2 + vy (t)2 + (x(t)2 + y(t)2 − 1)2

ε(t) = (5)
2
che rappresenta l’energia totale del sistema, composta da un primo termine di energia cinetica e un secondo di energia
potenziale, assumendo che la massa del sistema sia unitaria m = 1. Sapendo che tale grandezza si conserva, effettuiamo
uno studio numerico sull’errore di approssimazione dell’algoritmo di Verlet. Eseguiamo il programma con 3 ∆t diversi
[0.01, 0.001, 0.0001] e per ogni ∆t otteniamo un valore dell’errore sull’energia dato da:

|ε(t) − ε0 |
∆ε = (6)
ε0

Riportiamo su un grafico i valori dell’errore sull’energia ∆ε in funzione dei 3 ∆t precedenti ed eseguiamo un fit lineare della
forma y = ax+b per valutare la pendenza della retta di regressione. Di seguito riportiamo il fit effettuato su scala logaritmica

Figure 2: fit lineare dell’errore ∆ε in funzione di ∆t.

Come si evince dal grafico abbiamo ottenuto una pendenza a = 1.96 della retta di regressione lineare che è compatibile con la
teoria, secondo cui a = 2.00. Pertanto siccome l’errore diminuisce come ∆t2 , l’algoritmo di Verlet implementato è di ordine
O(∆t2 ).

2
2 Tempi di ritorno della traiettoria x(t)
Consideriamo adesso la traiettoria x(t) che otteniamo mediante l’integrazione numerica delle equazioni differenziali con
l’algoritmo di Verlet della parte 0 e 1. Riportiamo di seguito il grafico ottenuto

Figure 3: Traiettoria x(t) in funzione del tempo ottenuta con l’algoritmo di Verlet nelle velocità.

Osserviamo che la traiettoria x(t) in funzione del tempo, attraversa più volta l’asse x = 0. Osserviamo quanto detto per via
grafica

Figure 4: In arancione sono marcati i punti in cui la traiettoria x(t) passa per l’asse x = 0.

Chiamiamo tempo di ritorno Trit il tempo trascorso tra 2 attraversamenti successivi dell’asse. Per ottenere un’espressione
analitica di tali tempi osserviamo che l’equazione della traiettoria può essere scritta nel seguente modo:

xn+1 − xn
xn+1 = xn + (t − tn ) (7)
tn+1 − tn

3
dove il secondo termine a secondo membro rappresenta, mediante il rapporto incrementale, la velocità del corpo. Sapendo
che nel momento in cui il sistema passa per l’asse x = 0, la posizione in questo dato istante t∗ vale zero, quindi x(t∗ ) = 0,
otteniamo t∗ come:

xn
t∗ = tn + (8)
xn − xn+1

A questo punto il tempo di ritorno Trit è dato dalla differenza tra due istanti t∗ successivi (per i quali è soddisfatta la
condizione x = 0), che chiamiamo t∗ e t∗ . Per cui abbiamo:


Trit = t∗ − t (9)
Di seguito riportiamo un grafico dei tempi di ritorno Trit e della media aritmetica di tali quantità:

Figure 5: Tempi di ritorno per ogni attraversamento della traiettoria per la condizione x = 0.

dove la media aritmetica è ottenuta come segue:

N
1 X
< Trit >= Tk = 3.1265 s (10)
M i=0

in cui M sono tutti gli attraversamenti della traiettoria per l’asse x = 0 e Tk i tempi di ritorno per ogni attraversamento.

3 Integrazione delle equazioni differenziali con attrito γ mediante l’algoritmo


di Runge-Kutta del secondo ordine
Consideriamo adesso le equazioni differenziali della parte 3 del testo, che contengono il termine di attrito γ = 0.1 pro-
porzionale alla velocità v(t) del sistema. L’algoritmo necessario per effettuare un’integrazione di equazioni differenziali con
un termine dissipativo è l’algoritmo di Runge-Kutta del secondo ordine, il cui determinante della matrice delle perturbazioni
det(TRK2 ) > 1. Scegliamo questo algoritmo poichè non esistono altri algoritmi del secondo ordine in grado di gestire
problemi con termini dissipativi. Le equazioni in questo caso sono
 
1 1
x(t + 1) = x(t) + f x(t) + ∆x(t), t + ∆t ∆t (11)
2 2
 
1 1
y(t + 1) = y(t) + f y(t) + ∆y(t), t + ∆t ∆t (12)
2 2

4
vx (t + 1) = vx (t) + (ax (t)) ∆t (13)

vy (t + 1) = vy (t) + (ay (t)) ∆t (14)


Fissiamo ora le stesse condizioni iniziali della parte 1, x(0) = 1, y(0) = 0, vx (0) = 1, vy (0) = 1, ∆t = 0.01, tmax = 100 e
integriamo le equazioni del moto con l’algoritmo di Runge-Kutta Ord. 2. Di seguito riportiamo la traiettoria (x(t), y(t)):

Figure 6: Traiettoria del moto (x(t), y(t)) ottenuta con l’algoritmo di Runge-Kutta Ord. 2.

Osserviamo che la traiettoria ottenuta corrisponde alla descrizione di un sistema in regime smorzato, infatti il sistema tende
a convergere asintoticamente verso il punto (x, y) ≃ (1.11, 0). Possiamo osservare meglio tale comportamento smorzato
mediante il grafico della traiettoria x(t) in funzione del tempo, otteniamo infatti

Figure 7: Traiettoria x(t) in funzione del tempo con l’algoritmo di Runge-Kutta Ord. 2.

Dal grafico di x(t) osserviamo come il valore a cui il sistema tende asintoticamente per T → +∞ corrisponde a ≃ 1.11. Tale
sistema è simile al pendolo smorzato in cui osserviamo la presenza di 2 punti invarianti, ovvero il punto di minima altezza
x∞ e il punto di massima altezza x0 . Ai fini dei quest’analisi risulta interessante il punto x∞ , poichè esso rappresenta un

5
insieme limite1 , dato che la traiettoria converge verso di esso. A causa dell’attrito viscoso, il punto x∞ è detto attrattore.
Un attrattore è un insieme verso il quale il sistema evolve dopo un tempo sufficientemente lungo. Pertanto in base a quanto
detto possiamo assumere il sistema oggetto di studio come un attrattore, in cui x∞ ≃ 1.11, il quale è un valore asintotico.

Inoltre per caratterizzare meglio il punto x∞ è possibile calcolare le derivate parziali dell’energia potenziale rispetto alle
coordinate x, y, ovvero ∂1 V e ∂2 V , e trovare che il punto x ≃ 1.11 corrisponde a un minimo dell’energia potenziale.

4 Parte Extra
Integriamo le equazioni della parte 3 con l’algoritmo di Runge-Kutta Ord. 2 imponendo le seguenti condizioni iniziali:
x(0) = 0, y(0) = 0, vx (0) = v0 cos(α), vy (0) = v0 sin(α). Rappresentiamo su un grafico le traiettorie (x(t), y(t)) ottenute per
valori di α ∈ [0, π/4] e v0 ∈ [0, 3], in particolare per α = π/4, π/8 e π/12 e incrementando il valore di v0 di ∆v0 = 0.5.

Figure 8: Traiettoria del moto (x(t), y(t)) ottenuta con l’algoritmo di Runge-Kutta Ord. 2 per α = π/4 e v0 ∈ [0, 3].

Figure 9: Traiettoria del moto (x(t), y(t)) ottenuta con l’algoritmo di Runge-Kutta Ord. 2 per α = π/8 e v0 ∈ [0, 3].
1 l’insieme limite è l’insieme degli stati in cui entra un sistema dopo un periodo di tempo infinito.

6
Figure 10: Traiettoria del moto (x(t), y(t)) ottenuta con l’algoritmo di Runge-Kutta Ord. 2 per α = π/12 e v0 ∈ [0, 3].

Da una prima analisi notiamo che, facendo variare la velocità iniziale v0 nell’intervallo chiuso [0, 3], il sistema tende a 2
(1) (2)
stati asintotici x∞ ≃ 1.11 ovvero quello del punto precedente e x∞ ≃ −1.11, simmetrico rispetto al primo. Dai grafici
(1) (2)
risulta evidente che, come prima, il sistema considerato si comporta come un attrattore con 2 punti invarianti x∞ e x∞ , che
corrispondono anche ai due minimi dell’energia potenziale. Notiamo quindi che il comportamento del sistema è strettamente
connesso alla scelta delle condizioni iniziali α e v0 .

A questo punto possiamo studiare meglio la dipendenza dalle condizioni iniziali di tali stati asintotici mediante il cosiddetto
bacino di attrazione. Per poterne fare un grafico è necessario salvare i punti (x(tmax ), y(tmax )) di ogni traiettoria per ogni
condizione iniziale α ∈ [0, π/4] e v0 ∈ [1, 3]. Facciamo quanto detto generando m traiettorie in uno spazio bidimensionale
(α, v0 ) ∈ [0, π/4] × [1, 3]. Ogni m−esima traiettoria è generata incrementando α e v0 di una quantità δ = π/500. Il seguente
(1,2)
grafico che mostra la dipendenza degli stati x∞ da α e v0

Figure 11: Dipendenza degli stati asintotici dalle condizioni iniziali α ∈ [0, π/4] e v0 ∈ [1, 3].

Dal grafico possiamo notare come determinati valori di v0 e α conducano ad un determinato stato asintotico. A causa della

7
penuria di punti il bacino di attrazione mostrato non evidenzia una struttura di tipo frattale, la quale solitamente diventa
tanto più complicata quanto è più piccolo il coefficiente di attrito γ. Inoltre, quando l’attrito γ diminuisce, la larghezza dei
bacini si restringe anche più della larghezza della cella, rendendo poco prevedibile il moto. La natura non frattale del bacino
che abbiamo ottenuto potrebbe essere giustificata dal fatto che rimuovendo l’attrito le traiettorie che il sistema descrive
tornano ad avere un carattere simplettico, di seguito mostriamo 2 traiettorie sovrapposte per le condizioni iniziali α = π/4
e v0 = (2.5, 3.0)

Figure 12: Traiettoria (x(t), y(t)) in assenza di attrito γ = 0 con l’algoritmo di Runge-Kutta Ord. 2.

In cui notiamo infine che all’avvicinarsi del valore della velocità iniziale v0 → 2.5 le oscillazioni del sistema risultano avere
minore ampiezza tra loro rispetto alla condizione v0 → 3.0 in cui le oscillazioni durante il moto hanno ampiezza maggiore.ù

Conclusioni
In questo studio abbiamo mostrato i risultati ottenuti mediante l’integrazione numerica delle equazioni differenziali con
l’algoritmo di Verlet autopartente, analizzandone la traiettoria (x(t), y(t)), effettuando uno studio sull’errore di approssi-
mazione di tale algoritmo e abbiamo verificato essere di ordine O(∆t2 ). Inoltre siccome la traiettoria x(t) passa più volte
per la condizione x = 0, abbiamo calcolato il tempo che intercorre tra due attraversamenti successivi per tale asse che
abbiamo trovato essere < Trit >= 3.1265 s. Abbiamo integrato successivamente le equazioni differenziali aggiungendo un
termine dissipativo γ e abbiamo analizzato le traiettorie ottenute, trovando il punto al quale il sistema tende asintoticamente
(1)
x∞ ≃ 1.11 e abbiamo verificato che si tratta di un attrattore. Abbiamo analizzato la dipendenza degli stati asintotici
(1) (2)
(x∞ ≃ 1.11, x∞ ≃ −1.11) del sistema dalle condizioni iniziali α e v0 , facendo un grafico del bacino di attrazione. Infine
abbiamo discusso la natura caotica del sistema, il quale probabilmente non è tale.

Appendice
In termini più rigorosi possiamo riprendere quanto detto nella parte 3 e definiamo un generico attrattore Λ come un sottoin-
sieme dello spazio Rn per cui vale

∀ ε > 0 ∃ NΛ (ε) ∈ Λ ⊆ Rn intorno di Λ t.c.

tutte le traiettorie che partono da punti sufficientemente vicini a Λ convergono a Λ per T → +∞.

Potrebbero piacerti anche