Introduzione
Un'equazione differenziale stocastica descrive l'evoluzione di un sistema soggetto sia a dinamiche deterministiche sia a fluttuazioni casuali.
A differenza delle equazioni differenziali ordinarie, come $dx=f(x)dt$, le cui soluzioni hanno valori univoci e prevedibili, quelle stocastiche, come $dx = f(x)dt + g(x)dW$, incorporano il rumore casuale attraverso processi come il moto browniano $W$, rendendo le soluzioni imprevedibili e descrivibili solo probabilisticamente.
Modelli costituiti da equazioni differenziali stocastiche (SDE) svolgono un ruolo di primo piano in una vasta gamma di aree applicative, tra cui biologia, chimica, epidemiologia, meccanica, microelettronica, economia e finanza.
Ecco esempi specifici per ciascuna area applicativa in cui $W(t)$ è il processo di Wiener.
🧬 BIOLOGIA - Modello di crescita cellulare con rumore
Processo di crescita logistica con rumore moltiplicativo, modello della crescita di popolazioni batteriche soggette a fluttuazioni ambientali
\[dX(t) = rX(t)\left(1 - \frac{X(t)}{K}\right)dt + σX(t)dW(t)\]
dove: $X(t)$ è il numero di cellule al tempo $t$, $r$ è il tasso di crescita intrinseco, $K$ è la capacità portante dell'ambiente, $σ$ è l'intensità del rumore ambientale.
🧠 NEUROSCENZE - Rappresentazione Neurale del Ritmo Cardiaco
Sia il battito cardiaco che il respiro sono processi ritmici. Una popolazione di neuroni nel cervello (ad esempio, nel tronco encefalico o nella corteccia insulare) che codifica uno di questi ritmi può essere modellata come un oscillatore. L'equazione descrive un'oscillazione la cui ampiezza e frequenza fluttuano casualmente attorno a un valore medio, esattamente come ci si aspetta dalla rappresentazione neurale del battito cardiaco.
\[dz_c(t)=\left((μ_c+iω_c)z_c(t)−(1+iβ_c)∣z_c(t)∣^2z_c(t)\right)dt+σ_cdWc(t)\]
dove: $z_c(t)$ è la variabile di stato complessa per la popolazione neuronale "cardiaca", |z_c(t)| rappresenta la forza della sincronizzazione neuronale, mentre la fase descrive il punto del ciclo cardiaco, $\omega_c$ è la frequenza intrinseca dell'oscillatore, correlata alla frequenza cardiaca media (es., ω_c ≈ 2π * 1.2 Hz), $\mu_c$ è un parametro di stabilità, se positivo il sistema si comporta come un oscillatore stabilizzandosi su un ciclo limite, $-(1 + i\beta_c)|z_c(t)|^2z_c(t)$ è il termine non lineare fondamentale che assicura che l'ampiezza delle oscillazioni non cresca all'infinito, ma si stabilizzi, come accade nei sistemi biologici, mentre il termine stocastico (rumore Wiener) modella tutte le fonti di rumore come le fluttuazioni della frequenza cardiaca (Heart Rate Variability), il rumore sinaptico e gli input da altre aree cerebrali.
Analoga SDE può descriversi per il Ritmo respiratorio e accoppiando le due si ottiene un modello stocastico per il Sistema Cardio-Respiratorio nel Cervello
🧪 CHIMICA - Reazione di diffusione con fluttuazioni termiche
Equazione di Langevin per una particella browniana, dinamica molecolare in soluzione, diffusione in mezzi viscosi.
\[dv(t) = -γv(t)dt + \sqrt{\frac{2γk_BT}{m}}dW(t)\]
dove: $v(t)$ è la velocità della particella, $γ$ è il coefficiente di attrito, $k_B$ è la costante di Boltzmann, $T$ è la temperatura assoluta, $m$ è la massa della particella.
🦠 EPIDEMIOLOGIA - Modello SIR stocastico
Estensione stocastica del modello SIR per previsione dell'andamento epidemico con incertezze.
\[\begin{cases}
dS(t) = -\frac{βS(t)I(t)}{N}dt + σ_1\sqrt{S(t)}dW_1(t)\\
dI(t) = \left(\frac{βS(t)I(t)}{N} - γI(t)\right)dt + σ_2\sqrt{I(t)}dW_2(t)\\
dR(t) = γI(t)dt + σ_3\sqrt{R(t)}dW_3(t)
\end{cases}\]
dove: $S(t)$ sono i suscettibili, $I(t)$ sono gli infetti, $R(t)$ sono i rimossi, $β$ è il tasso di infezione, $γ$ è il tasso di guarigione, $N$ è la popolazione totale e $σ$ è l' intensità del rumore $W$.
⚙️ MECCANICA - Oscillatore armonico con rumore
Oscillatore soggetto a forzante stocastica per vibrazioni strutturali sotto carichi aleatori, sismica.
\[\begin{cases}dx(t) = v(t)dt\\dv(t) = (-ω^2x(t) - ζv(t))dt + σdW(t)\end{cases}\]
dove: $x(t)$ è la posizione, $v(t)$ è la velocità, $ω$ è la frequenza naturale, $ζ$ è il coefficiente di smorzamento e $σ$ è l'intensità della forzante stocastica.
💻 MICROELETTRONICA - Rumore nei circuiti elettronici
Equazione del circuito RC con rumore termico per modelli del rumore Johnson-Nyquist in dispositivi nano-elettronici (esempio di processo di Ornstein-Uhlenbeck).
\[dV(t) = \left(\frac{I(t)}{C}- \frac{V(t)}{RC}\right)dt + \frac{1}{C}\sqrt{\frac{2k_BT}{R}}dW(t)\]
dove: $V(t)$ è la tensione ai capi del condensatore, $I(t)$ è la corrente di ingresso, $R, L, C$ sono i parametri del circuito e $T$ è la temperatura del componente
💰 ECONOMIA - Modello di Vasicek per l'evoluzione del tasso d'interesse a breve termine.
Altro esempio di processo di Ornstein-Uhlenbeck.
\[dr(t)=a(b−r(t))dt+σdWt\]
dove: $r(t)$ è il tasso d'interesse a breve termine, $b$ è il livello medio di lungo periodo del tasso, $a > 0$ è la velocità di ritorno verso la media e $\sigma$ è la volatilità del tasso.
📈 FINANZA - Modello di Black-Scholes per opzioni
Dinamica del prezzo di un'azione per il pricing di opzioni finanziarie, gestione del rischio.
\[dS(t) = μS(t)dt + σS(t)dW(t)\]
dove: $S(t)$ è il prezzo dell'azione al tempo $t$, $μ$ è il tasso di rendimento atteso (drift) e $σ$ è la volatilità del titolo.
📈 FINANZA - Modello di Heston per volatilità stocastica
Estensione con volatilità variabile nel tempo per modelli più realistici dei mercati finanziari.
\[\begin{cases}dS(t) = μS(t)dt + \sqrt{v(t)}S(t)dW_1(t)\\
dv(t) = κ(θ - v(t))dt + ξ\sqrt{v(t)}dW_2(t)\end{cases}\]
dove: $v(t)$ è la volatilità istantanea, $κ$ è il tasso di mean-reversion, $θ$ è la volatilità di lungo periodo, $ξ$ è la volatilità della volatilità e $dW_1(t)dW_2(t) = ρdt$ è la correlazione tra i processi.
🔬 FISICA - Equazione di diffusione anomala
Processo di diffusione con rumore colorato per diffusione in mezzi disordinati, dinamica di polimeri.
\[\begin{cases}
dx(t) = v(t)dt\\
dv(t) = -γv(t)dt + D^\frac{1}{2}dW_α(t)
\end{cases}\]
🦔 dove: $x(t),v(t)$ sono posizione e velocità di una particella in una dimensione, $\gamma$ è un coefficiente d'attrito e la forza casuale che "agita" la particella è espressa attraverso $W_α(t)$, moto browniano frazionario, $α$ è l'esponente di Hurst $(0 < α < 1)$, e $D$, coefficiente di diffusione generalizzato, che ne determina l'intensità, legato alla "temperatura" del sistema o all'energia delle fluttuazioni.
🌡️ METEOROLOGIA - Modello climatico semplificato
Dinamica della temperatura media nello studio della variabilità climatica naturale.
\[dT(t) = \left(α - βT(t)\right)dt + σ\sqrt{(T(t)}dW(t)\]
dove: $T(t)$ è la temperatura media globale, $α$ è la forzante radiativa, $β$ è il feedback negativo e
$σ$ è l'intensità delle fluttuazioni climatiche.
💊 FARMACOCINETICA - Dinamica di concentrazione
Modello di assorbimento con variabilità individuale per l'ottimizzazione della terapia farmacologica personalizzata.
\[dC(t) = \left(-k_e C(t) + D(t)\right)dt + σC(t)dW(t)\]
dove: $C(t)$ è la concentrazione del farmaco, $k_e$ è la costante di eliminazione, $D(t)$ è il dosaggio somministrato e $σ$ è la variabilità metabolica individuale.
Una comprensione completa della teoria delle SDE richiede familiarità con la probabilità avanzata e i processi stocastici. Tuttavia, è possibile comprendere le basi di come simulare le SDE numeriche con una semplice conoscenza di base del metodo di Eulero per le equazioni differenziali ordinarie deterministiche e una comprensione intuitiva delle variabili casuali, esperienza che rappresenta un utile primo passo verso la
teoria sottostante delle SDE.
Queste pagine sono una rielaborazione di An Algorithmic Introduction to Numerical Simulation of Stochastic Differential Equations di Desmond J. Higham, Some basic algorithms for stochastic differential equations in NumPy di Alexander Lundervold e di sde: a simple tool for numerical stochastic differential equations.
Qui si spiega come applicare semplici metodi numerici a una SDE e si discutono concetti come la convergenza e la stabilità lineare da un punto di vista pratico.
Gli esperimenti numerici utilizzano un approccio Monte Carlo: le variabili casuali vengono simulate con un generatore di numeri casuali e i valori attesi vengono approssimati da medie calcolate. Si utilizza il linguaggio Python e si suggerisce di fare girare il codice in Google Colab. Si suggerisce anche l'uso di librerie come sde che fornisce strumenti di base per simulare i moti browniani, ingredienti di base di molti modelli SDE, eseguendo diversi tipi di integrazioni stocastiche, metodi Eular-Maruyama e molto altro ancora (a venire…). Librerie come sdeint o torchSDE forniscono funzionalità per integrare l'SDE