Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Davide Dardani
Emanuele Santonastaso
6 Luglio 2018
1 Introduzione
Nel 1827 un certo Robert Brown, osservando al microscopio particelle di polline, notò che esse
presentavano un continuo movimento e che tale moto avveniva lungo direzioni casuali. Brown
ipotizzò che il moto fosse causato dalla vitalità del polline e, nonostante osservò la stessa cosa
in pulviscoli non biologici, non seppe dare altra spiegazione. Alla fine del XIX secolo, il chimico
francese Leon Gouy ipotizzò per primo che il moto osservato da Brown fosse dovuto all’agitazione
termica degli atomi costituenti la materia, ma non sviluppò una teoria verificabile del fenomeno.
Nel 1905 Einstein, durante il suo annus mirabilis, pubblicò un articolo che trattava il moto Brow-
niano dal punto di vista matematico fornendo un modello che poteva essere sperimentalmente
verificato. La prima verifica sperimentale dei risultati di Einstein è dovuta al fisico francese
Jean Baptiste Perrin, che per questo, ed altri risultati, ottenne nel 1926 il premio Nobel. Si
deve a Perrin anche il libro Les atomes ("Gli atomi", 1913), molto noto all’epoca, che contribuì
a sostenere e diffondere la nuova teoria sulla struttura atomica della materia, dimostrata, tra
l’altro, proprio dal moto Browniano.
Il lavoro di Einstein fu ulteriormente sviluppato da Marian Smoluchowski e Paul Langevin
che, generalizzando il modello inizialmente formulato per il moto Browniano, diedero vita alle
equazioni differenziali stocastiche (EDS), le quali si apprestano a descrivere una vasta gamma
di fenomeni dalla fisica alla finanza, dalla chimica alle telecomunicazioni.
Nel 1981 con il lavoro di Parisi e Wu le EDS furono estese all’applicazione in meccanica quantis-
tica e ancora oggi sono largamente utilizzate nelle teorie perturbative e nella teoria quantistica
dei campi.
1
W2
e− 2t
ρ(W, t) = √ (1)
2πt
Tralasciando i particolari della trattazione matematica, il moto Browniano standard può
essere definito, coerentemente con quanto mostrato in (1), per via assiomatica:
1. Per ogni istante t1 , t2 , ..., tN le variabili aleatorie W (t1 ), W (t2 ), ..., W (tN ) sono mutua-
mente Gaussiane
Ne segue immediatamente che gli incrementi W (t2 ) − W (t1 ) e W (t4 ) − W (t3 ) sono statistica-
mente indipendenti se gli intervalli (t1 , t2 ) e (t3 , t4 ) non si sovrappongono ed inoltre, assumendo
che gli incrementi temporali h siano costanti, si ha che
√ W (t) è
Dunque, in analogia con l’assioma 3, la varianza dei singoli incrementi della variabile
uguale ad h. In MATLAB il comando per riprodurre tali incrementi è N ormrnd (0, h) ma per
velocità è nettamente migliore randn (valori random estratti da una gaussiana √ standard, ovvero
media nulla e varianza unitaria), il quale moltiplicato per il fattore di scala h è equivalente al
comando precedente. In figura 1 è mostrata una simulazione per il moto Browniano standard
tridimensionale.
2
3 L’equazione di Langevin
La descrizione del moto Browniano può essere ulteriormente estesa al caso in cui le particelle
siano soggette ad un campo di forze. In questo senso nasce l’equazione di Langevin, la quale
rappresenta un’ampia gamma delle cosiddette equazioni differenziali stocastiche (EDS), e nella
sua forma più generale assume la seguente espressione:
p
dx(t) = b(x(t)) dt + σ(x(t)) dW (t) (3)
Dove b(x(t)) e x(t) sono in generale funzioni a valori in RN , σ(x(t)) è una funzione reale
positiva (anche se spesso rappresenta un semplice fattore di scala costante) mentre W (t) rapp-
resenta il moto Browniano standard n-dimensionale.
Di particolare interesse è la funzione b(x(t)) che contiene in sé il contributo del campo di forze
e che segna il salto concettuale fra il semplice moto Browniano e l’equazione di Langevin: si
tratta del cosiddetto drift, letteralmente "deriva", proprio perché tende a trascinare il random
walk lungo una direzione privilegiata in base al tipo di forze in gioco. I vari aspetti del drift ed
il suo ruolo nei processi diffusivi verranno approfonditi in seguito.
Prima di entrare nel dettaglio risulta necessario illustrare un semplice caso di esempio che verrà
anche utilizzato per valutare l’efficienza degli algoritmi numerici.
3
Z t Z t0 Z min(t,t0 )
−λ(t−τ ) −λ(t0 −τ 0 ) 0 0
= e e D δ(τ − τ ) dτ = D e−λ(t+t ) e2λτ dτ
0 0 0
D −λ(t−t0 ) 0
= e − e−λ(t+t )
2λ
0
Quindi per t = t si ottiene la varianza relativa al processo x(t):
D
σ2 = (1 − e−2λt ) (8)
2λ
4
Come per ogni metodo numerico, nell’Eulero si ha un errore di troncamento che scala con h
e che, per tempi lunghi, rende la traiettoria sempre più affetta da un errore globale di discretiz-
zazione. Per questo motivo si introduce ora un metodo più accurato dell’ordine di O(h3/2 ).
A tal proposito l’equazione (3), per ogni passo numerico lungo h, può essere vista come integrale
fra t e t + h:
Z t+h
x(t + h) = b(x(t0 )) dt0 + σ∆W (t) (10)
t
A questo punto l’integrale può essere approssimato con il metodo dei trapezi, il quale per
ogni intervallo discreto prende la semisomma fra l’area del rettangolo approssimata dal basso e
l’area del rettangolo approssimata dall’alto:
h
x(tn+1 ) ≈ [b(x(tn+1 )) + b(x(tn ))] + σ∆W (tn ) (11)
2
Come si può notare si tratta di una equazione implicita, dunque l’algoritmo avrà prima
bisogno di un passo esplicito dato dal metodo di Eulero. Questo metodo ibrido Eulero-trapezi
può essere visto come un metodo predictor-corrector, dove l’Eulero funge da predictor mentre i
trapezi da corrector.
I due algoritmi fin qui trattati sono stati messi alla prova con il processo di Ornstein-Uhlenbeck
ripetendo la simulazione più volte in modo da accumulare statistica e valutando l’errore relativo
sulla varianza per il punto finale della traiettoria (cioè il più incerto). Tale confronto è mostrato
in figura 3.
5
5 L’equazione di Langevin come metodo Monte Carlo
Per un generico processo diffusivo descritto dall’equazione (3) di Langevin si può associare una
probabilità che x(t) si trovi al tempo t in una specifica posizione in uno spazio I ∈ RN :
Z
PI (t) = P (x, t) dx (12)
I
La densità di probabilità P (x, t) del processo diffusivo x(t) deve soddisfare, sotto opportune
condizioni, la cosiddetta equazione di Fokker-Planck (o di Chapman-Kolmogorov):
∂P (x, t) 1
= ∆(σ(x)P (x, t)) − ∇ · (b(x)P (x, t)) (13)
∂t 2
Il primo addendo è la cosiddetta parte diffusiva del processo mentre il secondo è il classico
termine dell’equazione di continuità, non a caso (13) ne rappresenta una generalizzazione, proprio
come nel caso dell’equazione di continuità della densità di carica in cui σ = 0 mentre b(x) è la
corrente.
Nel caso in cui b(x) sia un campo irrotazionale e σ una costante, si può porre b(x) = ∇ρ(x)
cosicché l’equazione (13) diviene:
∂P (x, t) σ
=∇· ∇P (x, t) − P (x, t)∇ρ (14)
∂t 2
Dall’equazione (14) si può richiedere che la distribuzione di probabilità sia stazionaria, infatti
si nota subito che il membro di destra si annulla per
2
P (x) = e σ ρ(x) (15)
Dalla quale, invertendo, si ricava che
σ
ρ(x) = log P (x) (16)
2
Si osserva quindi che è possibile scegliere il drift preassegnando una certa distribuzione di
probabilità stazionaria. Il caso più interessante per le applicazioni in meccanica statistica e
quantistica è quello in cui tale distribuzione coincide con quella di Gibbs:
1 −βH(x)
P (x) = e (17)
Z
Applicando la relazione (16) si ottiene:
σ σ
ρ(x) = log P (x) = (log[Z −1 ] − βH(x)) (18)
2 2
Dalla quale si ottiene l’espressione per il drift:
β
b(x) = ∇ρ = − σ ∇H(x) (19)
2
Dato che in questo caso σ è una costante, può essere scelto per comodità come σ = 2/β e,
quindi, l’equazione di Langevin assume la forma:
6
Si può dunque pensare alla variabile x(t0 ) come ad un vettore le cui componenti rappresentano nel
tempo t una qualsiasi configurazione iniziale [x(t0 ), x(t1 ), ..., x(tN ))] che evolve verso l’equilibrio
nel tempo t0 , il quale scandisce le varie configurazioni analogamente ad un processo di Metropo-
lis. La fase durante la quale la configurazione raggiunge la distribuzione stazionaria viene detta
termalizzazione e, una volta completata, il processo x(t0 ) genera variabili distribuite secondo
Gibbs. Questo è proprio ciò che fa un Monte Carlo ed è per questo motivo che l’equazione di
Langevin può essere direttamente utilizzata come algoritmo di simulazione Monte Carlo.
Dove D[x(t)] rappresenta la somma su tutti i possibili cammini fra xi e xf , mentre SE (x)
rappresenta l’azione euclidea SE (x) ovvero l’equivalente dell’azione classica S[x] formulata a
tempo immaginario, la quale per una particella scalare di massa m è data da:
Z τf in h
m 2 i
SE (x) = ẋ + V (x) dτ (23)
τin 2
Ora, a livello classico, sappiamo che il valore medio di un’osservabile O per un sistema
all’equilibrio termico coincide con la media pesata rispetto al fattore di Gibbs exp(−βH) che di
fatto sostituisce la media temporale (teorema ergodico):
Πi dxi O e−βH(x)
R
hOi = R (24)
Πi dxi e−βH(x)
A livello quantistico, grazie ai path integrals introdotti da Feynman, si ritrova l’analogo della
relazione (24):
1
D[x] O e− ~ SE (x)
R
hOi = R 1 (25)
D[x] e− ~ SE (x)
Dove per consistenza è presente un fattore 1/~ ad esponente.
Dunque la media dell’osservabile O risulta pesata rispetto al nuovo fattore exp[−~−1 SE (x)],
quindi, come già visto nel precedente paragrafo, la soluzione stazionaria per l’equazione di Kol-
mogorov è data da (15) e con lo stesso procedimento si trova il rispettivo drift:
σ
b(x) = ∇ρ = −∇SE (x) (26)
2~
Come al solito, assumendo per comodità σ = 2~, l’equazione di Langevin diventa:
7
√
dx(τ ) = −∇SE (x) dτ + 2~ dW (τ ) (27)
Ora, la derivata che compare nel drift è in realtà la derivata funzionale che a livello classico
produce le equazioni del moto di Eulero-Lagrange, dove però in questo caso la lagrangiana L(x, ẋ)
è formulata a tempo immaginario e questo comporta un segno negativo al risultato classico:
δSE (x) ∂L d ∂L ∂V (x)
= − = − mẍ − = −mẍ + V 0 (x) (28)
δx ∂x dt ∂ ẋ ∂x
Sostituendo il risultato nell’equazione di Langevin (27) si ottiene il processo che mette in
atto la quantizzazione stocastica, ovvero la tendenza asintotica alla distribuzione di probabilità
stazionaria incontrata in (25):
∂ 2 x(t, τ ) √
∂x(t, τ ) 0
= m 2
− V (x) + 2~ dW (τ ) (29)
∂τ ∂t
Risulta importante sottolineare che nell’equazione (29) esistono due tempi coinvolti: il tempo
t è quello classico interno ad una singola configurazione e determina l’ordine temporale delle
componenti stesse, mentre il tempo τ è quello che scandisce le varie configurazioni in evoluzione
verso la distribuzione stazionaria a partire dalla configurazione iniziale (ad esempio x(τ = 0) =
[0, 0, 0, ..., 0]).
Dalla costruzione cosiffatta si può notare una conseguenza interessante: infatti se, come
osservabile O, si considera la quantità x(t) x(s) si ottiene l’autocorrelazione:
1
D[x] x(t) x(s) e− ~ SE (x)
R
C(s) ≡ hx(t) x(s)i = 1 (30)
D[x] e− ~ SE (x)
R
E studiando l’andamento per |t-s| grande il segnale è dominato dal primo livello eccitato:
X
hx(t) x(s)i ≈ | hE0 |q|E1 i |2 e−(E1 −E0 ) |t−s|/~ (32)
E
In questo modo dalla pendenza della curva di correlazione in scala logaritmica si può ottenere
una stima del gap di energia fra lo stato fondamentale ed il primo livello eccitato.
√
x(tn+1 ) − 2x(tn ) + x(tn−1 ) 0
x(tn , τ +∆τ ) ≈ x(tn , τ )+ m − V (x(tn )) + 2~ ∆τ dW (tn , τ ) (33)
∆t2
8
punto della configurazione, il ché aumenterebbe drasticamente il tempo di macchina.
Per ovviare a questo problema si utilizza la trasformata di Fourier, che in termini pratici viene
realizzata come Fast Fourier Transform (FFT).
A tal proposito la tecnica che verrà applicata può essere estrapolata dalla seguente proprietà
della trasformata di Fourier:
n
d f
F = (−iωk )n · F (f ) (34)
dtn
Ora si consideri una trasformata f (τ ) = F (x(t, τ )): il solo contributo cinetico dell’equazione
di Langevin (29) implica che la x(t, τ ) dovrà obbedire alla seguente equazione alle derivate
parziali (PDE):
∂x(t, τ ) ∂ 2 x(t, τ )
= (35)
∂τ ∂t2
Sostituendo x(t, τ ) con la sua trasformata f (τ ) = F (x(τ )), per la proprietà (34) si ha:
df (τ )
= (−iωk )2 · f (τ ) = −iωk2 f (τ ) (36)
dτ
La quale rappresenta un’equazione differenziale a variabili separabili che può essere facilmente
risolta integrando fra τ e τ + ∆τ :
ωk2
f (τ + ∆τ ) = f (τ ) · e−∆τ (37)
A questo punto, sfruttando la trasformata di Fourier inversa, si può ritornare alla variabile
x(t, τ ) ottenendo:
ωk2
x(t, τ + ∆τ ) = F −1 [F (x) · e−∆τ ] (38)
Dunque nell’equazione di Langevin discreta (32) il contributo dato dalla configurazione prece-
dente x(t, τ ) per calcolare quella successiva scomparirà dall’equazione dato che il contributo ci-
netico fornito da (37) è già relativo ad x(t, τ + ∆τ ), mentre la stessa sorte tocca anche al ∆τ
che moltiplica la derivata seconda dato che l’incremento avviene già in un passo ∆τ :
ωk2
√
x(t, τ + ∆τ ) ≈ F −1 [F (x(t, τ )) · e−∆τ ] − V 0 (x(t)) · ∆τ + 2~ dW (t, τ ) (39)
Infine per l’oscillatore armonico la parte di potenziale è data da:
m 2 2 ∂V (x)
V (x) = ω x ⇒ V 0 (x) = = m ω2x (40)
2 ∂x
Quindi una volta fissati i vari parametri si inizia con la fase di termalizzazione, la quale
richiede un tempo (equivalentemente un numero di iterazioni) che tanto più è grande e tanto più
sarà preciso il raggiungimento della distribuzione stazionaria (infatti si tratta di una tendenza
asintotica).
Una volta termalizzata, la configurazione è pronta per poter accumulare statistica continuando
ad evolvere ulteriormente il processo. Quindi per valutare le fluttuazioni statistiche si ripete un
numero N di esperimenti attraverso un ciclo di iterazione esterno.
La correlazione, ad ogni esperimento, viene misurata ad intervalli regolari, cioè effettuando
dei salti lungo le configurazioni: quest’ultima strategia è importante per il semplice fatto che
l’evoluzione di Langevin è in realtà continua e quindi è necessario evitare di considerare due con-
figurazioni troppo vicine in quanto la seconda configurazione dipenderebbe troppo dalla prima
9
e dunque non risulterebbero del tutto decorrelate fra loro.
Anche per quanto riguarda la misura della correlazione si può far uso della trasformata di
Fourier, infatti la correlazione si può definire in termini di convoluzione:
Z +∞
def
C(s) = hx(t) x(s)i = x∗ (t) x(t + s) = (x ? x) (t) (41)
−∞
Ora, per la proprietà della trasformata di una convoluzione, si ha che
Il risultato mostrato in figura 4 è perfettamente coerente con l’espressione analitica dei livelli
energetici in funzione del numero quantico n:
1
En = n + ~ω (44)
2
E dall’aver assunto ~ = ω = 1 si ha che la stima del gap risulta confrontabile proprio con
E1 − E0 = 1.
10
8 Simulazione per l’oscillatore quartico
A questo punto l’algoritmo può essere applicato a quei casi dove non esiste una soluzione analitica
che fornisca il gap fra E1 ed E0 , come nel caso del potenziale quartico:
ẋ2
V (x) = + g x4 (45)
2
Come si può notare il contributo dato dal secondo termine di (45) equivale all’introduzione
di un potenziale perturbativo al caso dell’oscillatore armonico (~ = ω = 1) e considerando un
valore piccolo di g è possibile avere una stima teorica precisa dal relativo sviluppo perturbativo.
In questi termini E0 può essere approssimato dalla serie perturbativa:
1
E0 = + g C1 + g 2 C2 + ... (46)
2
E analogamente anche per E1 si ha:
3 (1) (1)
E1 = + g C1 + g 2 C2 + ... (47)
2
I valori dei coefficienti perturbativi possono essere calcolati sfruttando il linguaggio simbolico
degli ambienti Form o Mathematica. Nella figura 5 viene mostrato l’andamento del gap stimato
in funzione del numero di termini dello sviluppo perturbativo (fino a g 10 ).
Come si può notare il valore di g = 0.01 è ancora sufficientemente piccolo da garantire che la
serie perturbativa non diverga. Per valori di g più grandi la serie perturbativa tende ad esplodere
ed i singoli termini invece di dare un contributo sempre più piccolo tendono a diventare sempre
più grandi ed in quei casi il metodo perturbativo non è applicabile nel ricavare una stima teorica
del gap.
11
Introducendo la derivata del potenziale (45) all’interno del drift ed ottimizzando i parametri
è stato possibile ottenere la stima del gap dai dati simulati dal Monte Carlo; il relativo grafico
è mostrato in figura 6.
Va osservato che in questo caso sono state incontrate più difficoltà tecniche rispetto al sem-
plice caso dell’oscillatore armonico: si è rivelato necessario aumentare la durata della fase di
termalizzazione e mantenere a 10000 il numero di steps. In aggiunta a ciò è stato riscontrato un
forte rallentamento dell’algoritmo, tanto da non riuscire a superare inizialmente i 1000 steps.
La causa del rallentamento si è rilevata essere semplicemente l’elevamento a potenza x3 che
compare nel drift: sostituendolo nel codice con x · x · x la velocità di calcolo è rientrata nella
norma.
12