Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione...

26
Metodi elementari per l’integrazione numerica di equazioni differenziali ordinarie Marco Sansottera

Transcript of Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione...

Page 1: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Metodi elementari per l’integrazione numericadi equazioni differenziali ordinarie

Marco Sansottera

Page 2: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Introduzione

Consideriamo un’equazione differenziale ordinaria autonoma

x(t) = f (x(t)) , x : I → R ,

con dato iniziale x(0) = x0 .

Analitica vs. NumericaGenericamente, non e possibile determinare una soluzione analitica, masolamente una soluzione approssimata numericamente.

AttenzioneQuanto e affidabile una soluzione numerica?

Quanto bene riesco a descrivere l’evoluzione del sistema?

Page 3: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Approccio numerico

Approssimare il flusso determinato dalla soluzione con una mappa:

si parte dal dato iniziale x0;

si sceglie una opportuna discretizzazione temporale;

si cerca una formula per approssimare la soluzione, e.g., usando lasoluzione e la sua derivata nei punti precedentemente calcolati.

I cosiddeti metodi one-step sono quelli che sfruttano la soluzione e la suaderivata nell’ultimo punto precedentemente calcolato.

L’idea e quella di sfruttare, in modo opportuno, lo sviluppo di Taylor

x(t + τ) = x(t) + τ x(t) +τ 2

2x(t) + . . . ,

o la formulazione integrale

x(t + τ)− x(t) =

∫ τ

0

x(t + h)dh =

∫ τ

0

f (t + h)dh ,

dove l’integrale viene sostituito da una opportuna formula di quadratura.

Page 4: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Metodi elementari one-step

x = f (x)

Metodi elementari one-step

Eulero Eulero implicitoxn+1 = xn + τ f (xn) xn+1 = xn + τ f (xn+1)

Trapezi Punto medioxn+1 = xn + τ

2

(f (xn) + f (xn+1)

)xn+1 = xn + τ f

( xn+xn+1

2

)Eulero ed Eulero implicito: metodi di ordine 1, l’errore locale e O(τ 2).

Trapezi e Punto medio: metodi di ordine 2, l’errore locale e O(τ 3).

Page 5: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Esercizi

Oscillatore armonico — 1Si consideri un oscillatore armonico. Al variare dei dati iniziali:determinare numericamente la soluzione e tenere traccia dell’errorecommesso rispetto alla soluzione analitica e di quello relativo all’energia.Discutere la dinamica osservata.

Lennard-Jones — 1Si consideri il sistema

q = v ,

v = −φ′(q) , φ(q) = q−12 − 2q−6 .

Al variare dei dati iniziali: determinare numericamente la soluzione etenere traccia dell’errore commesso nell’energia. Discutere la dinamicaosservata e confrontarla con uno studio qualitativo “analitico”.

Page 6: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Esercizi

Lennard-Jones — 1 (stima errore)

Stimare l’errore del metodo di Eulero sfruttando lo sviluppo di Taylordella soluzione.E immediato ottenere una stima del tipo

‖en+1‖ ≤ (1 + τa(tn))‖en‖+ τ 2b(tn) +O(τ 2) ,

con

a(tn) = ‖Jf (x(tn))‖ , b(tn) = max[tn,tn+1]

1

2‖(x(τ))‖ .

Nell’esempio di Lennard-Jones, verificare che l’errore in energia aumentabruscamente in corrispondenza di particolari condizioni e discutere talecomportamento.Si consiglia un grafico con i valori di a(tn), b(tn) e dell’errore in energia.

Page 7: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

High-order methods: Runge-Kutta

RK2

X1 = xn +τ

2f (xn)

xn+1 = xn + τ f (X1)

RK4

X1 = xn

X2 = xn +τ

2f (X1)

X3 = xn +τ

2f (X2)

X4 = xn + τ f (X3)

xn+1 = xn +τ

6

(f (X1) + f (X2) + f (X3) + f (X4)

)

Page 8: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Leap-frog

x = −∇V (x) = f (x)

{x = v ,

v = f (x) .

LF2

xn+1 = xn + τvn+1/2

vn+3/2 = vn+1/2 + τ f (xn+1)

AttenzionePer inizializzare l’algoritmo devo calcolare v1/2, posso usare un mezzopasso di Eulero o qualche schema piu sofisticato.

Page 9: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Verlet

x = −∇V (x) = f (x)

{x = v ,

v = f (x) .

Verlet (velocita)

vn+1/2 = vn +τ

2f (xn)

xn+1 = xn + τvn+1/2

vn+1 = vn+1/2 +τ

2f (xn+1)

Verlet (posizioni)

xn+1/2 = xn +τ

2vn

vn+1 = vn + τ f (xn+1/2)

xn+1 = xn+1/2 +τ

2vn+1

Page 10: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Esercizi

Oscillatore armonico — 2Si consideri un oscillatore armonico. Al variare dei dati iniziali:determinare numericamente la soluzione e tenere traccia dell’errorecommesso rispetto alla soluzione analitica e di quello relativo all’energia.Discutere le differenze tra i metodi Runge-Kutta e quelli simplettici(Leap-frog e Verlet).

Lennard-Jones — 2Si consideri il sistema

q = v ,

v = −φ′(q) , φ(q) = q−12 − 2q−6 .

Al variare dei dati iniziali: determinare numericamente la soluzione etenere traccia dell’errore commesso nell’energia. Discutere la dinamicaosservata e confrontarla con uno studio qualitativo “analitico”. Discuterele differenze tra i metodi Runge-Kutta e quelli simplettici (Leap-frog eVerlet).

Page 11: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Contopoulos — Henon-Heiles

Un modello di oscillatori interagenti

H =ω0

2(q20 + p20) +

ω1

2(q21 + p21) + q20q1 −

1

3q31

Consideriamo ω0 e ω1 positive:

il potenziale ha un minimo locale in (0, 0);

il potenziale ha tre punti di sella

(0, ω1)

(±√ω20 + 2ω0ω1

2,−ω0

2

)che corrispondono ai valori di energia

E1 =ω31

6E2 =

ω30

24+ω20ω1

8

Page 12: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Contopoulos — Henon-Heiles

Sempre per ω0 e ω1 positive, e interessante restringersi a quei valoridell’energia per cui la dinamica e confinata per tutti i tempi!

Defininamo l’energia di fuga o energia critica

Ec = min

(ω31

6,ω30

24+ω20ω1

8

)

Per 0 < E < Ec la dinamica e confinata.

Per una spiegazione dettagliata del modello di Henon-Heiles, si vedahttp://www.mat.unimi.it/users/antonio/metmod/Note_6.pdf

Page 13: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Esercizi

Sezione Poincare modello Henon-HeilesAl variare dell’energia, studiare la sezione di Poincare in corrispondenzaall’iperpiano q0 = 0 proiettando sul piano q1 p1.

Per i dati iniziali: fissare il valore dell’energia E0, scegliere arbitrariamente(q1, p1) (in modo sensato), porre q0 = 0 (in modo da essere sullasezione!) e determinare p0 > 0 in modo che l’energia iniziale sia E0.

Se 0 < E < Ec , riportare anche la “curva critica” data dall’equazione

ω1

2(q21 + p21)− 1

3q31 = E0 .

Studiare in dettaglio i casi

ω0 = 1, ω1 =√5−12 ;

ω0 = 1, ω1 = 1;

ω0 = 1, ω1 = 2;

ω0 = 1, ω1 = −√5−12 .

Page 14: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Esercizi

Il problema di Keplero nel piano

Consideriamo l’Hamiltoniana

H =1

2(p21 + p22)− 1

r, r =

√q21 + q22 .

con i seguenti dati iniziali

q1(0) = 1− e , q2(0) = 0 , p1(0) = 0 , p2(0) =

√1 + e

1− e,

per eccentricita 0 ≤ e < 1.

Integrare il problema con lo schema di Verlet e discutere ilcomportamento per tempi “lunghi”.

Discutere i risultati ottenuti (suggerimento, tutte gli integrali primi sonoben conservati durante l’integrazione?).

Page 15: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Metodi splitting

Consideriamo un’Hamiltoniana

H = H1 + H2

con H1 e H2 integrabili.

AttenzioneTipicamente la somma di due Hamiltoniane integrabili non e integrabile.

L’dea dei metodi “splitting” e quella di trattare separatamente i flussiΦH1(t) e ΦH1(t), componendoli in modo opportuno. Ad esempio

ΦH1(t/2) ◦ ΦH2(t) ◦ ΦH1(t/2)

Il flusso di un’Hamiltoniana e ovviamente una trasformazione simplettica,quindi i metodi “splitting” sono simplettici per costruzione.

Page 16: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Contopoulos — Henon-Heiles

Consideriamo nuovamente l’Hamiltoniana

H =ω0

2(q20 + p20) +

ω1

2(q21 + p21) + q20q1 −

1

3q31

Il metodo leapfrog e sostanzialmente dato dallo splitting

H1 =ω0

2p20 +

ω1

2p21 , H2 =

ω0

2q20 +

ω1

2q21 + q20q1 −

1

3q31

EsercizioConfrontare i risultati ottenuti con lo schema leapfrog e quelli dati dalseguente splitting

H1 =ω0

2(q20 + p20) +

ω1

2(q21 + p21) , H2 = q20q1 −

1

3q31

(suggerimento, integrare esattamente gli oscillatori armonici!)

Page 17: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Approssimazione di Landau-Teller

Obiettivo di questa parte e di riprodurre parte dei risultati dell’articolohttp://www.mat.unimi.it/users/sansotte/pdf_files/hamsys/

BenCarSem-1993.pdf

Consideriamo un’Hamiltoniana

H =p2x2

+p2y2

+ω2

2y2 + V (r) , r = x − y .

Consideriamo il potenziale

V (r) = V0d

re−r/d

Vogliamo quantificare lo scambio di energia tra i gradi di liberta legatiall’energia vibrazionale della molecola e quelli traslazionali, in funzionedella frequenza ω (si veda figura 4 a pagina 187 dell’articolo).

Page 18: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Approssimazione di Landau-Teller

Esercizio 1/2

H =p2x2

+p2y2

+ω2

2y2 + V0

d

re−r/d , r = x − y .

Fissiamo V0 = 1, ω = 1, d = 1 e x0 = 20d (provare anche x0 = 70d).

Diamo come energie iniziali

Ex(0) =p2x2

= 2 , Ey (0) = ωI = 1 .

py =√ω√

2I cosφ , y =1√ω

√2I sinφ .

Quando x torna al punto di partenza valutiamo ∆Ex(φ).

Scegliamo fasi iniziali equispaziate e calcoliamo le componenti di Fourier

Ek =1

N

N−1∑l=0

∆E(2πl

N

)e−2iπkl/N

Page 19: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Approssimazione di Landau-Teller

Esercizio 2/2

considerare lo “splitting” tipo leapfrog (posizioni-momenti);

considerare lo “splitting”

H1 =p2x2

+p2y2

+ω2

2y2 , H2 = V0

d

re−r/d ;

riportare in un grafico il decadimento dei moduli delle componenti diFourier |E0|, |E1|, |E2| ed |E3|, al variare della frequenza ω;

riportare in un grafico il comportamento dello scambio di energia, alvariare della fase iniziale;

Page 20: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Integratori simplettici per Hamiltoniane quasi-integrabili

Obiettivo di questa parte e di riprodurre parte dei risultati dell’articolohttp://www.mat.unimi.it/users/sansotte/pdf_files/hamsys/

LasRob-2000.pdf

Consideriamo un’Hamiltoniana

H = A + εB

con A e B Hamiltoniane integrabili.

L’idea e di sfruttare il piccolo parametro ε per migliorare la precisionedegli schemi di integrazione di tipo splitting.

Page 21: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Integratori simplettici per Hamiltoniane quasi-integrabili

SABA2n = ec1τLAed1τLεB . . . ednτLεB ecn+1τLAednτLεB . . . ed1τLεB ec1τLA

SABA2n+1 = ec1τLAed1τLεB . . . ecn+1τLAedn+1τLεB ecn+1τLA . . . ed1τLεB ec1τLA

SBAB2n = ed1τLεB ec2τLA . . . ecn+1τLAedn+1τLεB ecn+1τLA . . . ec2τLAed1τLεB

SBAB2n+1 = ed1τLεB ec2τLA . . . edn+1τLεB ecn+2τLAedn+1τLεB . . . ec2τLAed1τLεB

SABA3

c1 =1

2−√

15

10, c2 =

√15

10, d1 =

5

18, d2 =

4

9.

SBAB3

c2 =1

2−√

5

10, c3 =

√5

5, d1 =

1

12, d2 =

5

12.

Page 22: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Correttore

Gli schemi di integrazione SABAn e SBABn hanno una precisioneO(τ 2nε+ τ 2ε).

E possibile migliorare ulteriormente questi schemi introducendo uncorrettore che elimini il termine O(τ 2ε).

SnC = e−(τ/2)cnL{{A,B},B}Sne−(τ/2)cnL{{A,B},B}

c3 =54− 13

√5

648(SABA3) c3 =

13− 5√

5

288(SBAB3)

EsercizioImplementare il metodo SBAB3C per il modello di Henon-Heiles.

Page 23: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

ESERCIZI DI

INTEGRAZIONE

NUMERICA

Page 24: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Dinamica molecolare (Lennard-Jones) 1/2

Consideriamo N particelle identiche che interagiscono a coppie con unpotenziale

φ(r) = ε

(( rr

)12− 2( rr

)6), r = ‖q1 − q2‖ .

Fissiamo ε = 0.4 e r = 1. Consideriamo N = 400 particelle sui nodi di unreticolo cartesiano (di lato unitario) 20× 20 e perturbiamo le posizioniiniziali in modo random uniforme di modulo massimo 0.01.

SE le posizioni non perturbate corrispondessero ad un equilibrio,dovremmo osservare oscillazioni random attorno ai valori di equilibrio.

Simulare la dinamica e discutere i risultati.

Page 25: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Dinamica molecolare (Lennard-Jones) 2/2

Definiamo l’intorno Ii = {j 6= i : ‖qj − qi‖ < ∆}, ad esempio fissando∆ = 1.3r . Per ogni coppia di particelle nell’intorno Ii , definiamo l’angoloθj,i,k con vertice in qi e lati (qj − qi ), (qk − qi ) e per m ≥ 1 calcoliamo

µm =N∑i=1

∑j,k∈Ii

cos(mθjik)

Studiare l’evoluzione di µ4 e µ6 e discutere i risultati.

Page 26: Metodi elementari per l'integrazione numerica di … · Metodi elementari per l’integrazione numerica di equazioni di erenziali ordinarie Marco Sansottera

Sistema SolareConsideriamo un modello di sistema solare costituito da 10 corpi: Sole,Mercurio, Venere, Terra, Marte, Giove, Saturno, Urano, Nettuno ePlutone.

Nel sistema baricentrico, l’Hamiltoniana assume la forma

H =1

2

10∑i=1

‖pi‖2

mi− G

9∑i=1

10∑j=i+1

mimj

‖qi − qj‖

I dati iniziali, generati tramite l’interfacciahttps://ssd.jpl.nasa.gov/horizons.cgi

sono contenuti nella cartella compressahttp://www.mat.unimi.it/users/sansotte/hamsys/solar_

system_2440400-50.tgz

Simulare la dinamica e discutere i risultati.