Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Metodo del punto medio: si utilizza quando si deve risolvere un problema di Cauchy, cioè dove si conosce la
funzione in un punto e si vuole calcolare il valore della funzione al passo successivo. Al posto di calcolare la
soluzione dopo Δ𝑡, si calcola la soluzione dopo Δ𝑡/2. Per ottenere la soluzione al passo Δ𝑡/2, si utilizza il
metodo di Eulero. Il numero di calcoli aumenta, poiché ci saranno più intervalli, ma l’errore introdotto sarà
minore, come dimostrato dall’espansione di Taylor. È un metodo di secondo ordine, cioè l’errore diminuisce
al doppio della velocità con cui diminuisce Δ𝑡, inoltre la stima all’istante n+1 dipende da due valori, quello
all’istante di tempo n, e quello calcolato all’istante di tempo n+Δ𝑡/2. Anch’esso è un metodo di passo 21.
Metodi di Runge Kutta: sono i metodi del secondo ordine, che includono anche il metodo del punto medio.
Sono metodi che raggiungono la convergenza in maniera più veloce, cioè azzerano l’errore in minor tempo
rispetto ai metodi del primo ordine, ma questo comporta un maggior numero di computazioni per iterazione.
Metodo leapfrog: è un metodo multipasso, cioè il calcolo di una soluzione numerica avviene non solo
basandosi su un solo valore, ma su più valori.
A differenza delle ODE, dove l’unica incognita da tenere in considerazione per calcolare una soluzione
numerica era il tempo, nelle equazioni alle derivate parziali bisogna tenere conto anche dell’incognita
spaziale.
Condizione CFL: condizione necessaria per la stabilità di una simulazione. Quando si lavora sulle PDE, si
tengono in considerazione spazio e tempo. Per calcolare l’istante successivo, si tiene in considerazione il
valore dell’istante corrente. Se andiamo a diminuire troppo il passo spaziale, la simulazione diventa instabile
poiché non è possibile calcolare il valore della funzione in quanto non ricade nell’intervallo di discretizzazione
spaziale.
Il passo spaziale deve essere minore del passo temporale altrimenti il valore della funzione non ricade nel
dominio dello spazio e quindi la simulazione diventa instabile.
2. Schema di Lax-Wendroff
Utilizza una sorta di trucco per poter rendere stabile la FTCS. È stato il primo schema di risoluzione
che ha permesso di raggiungere una convergenza di secondo ordine sia sullo spazio che sul tempo.
Si utilizzano grandi quantità di variabili e la matrice Jacobiana.
3. Schema di MacCormack
È un metodo di passo 2, e adotta il classico schema predittore (passo 1)-correttore (passo 2) e
raggiunge un'accuratezza del secondo ordine sia nel tempo che nello spazio.
Schema predittore-correttore: si utilizza per risolvere una ODE e si divide in due step:
1. Step predittore: viene predetto il prossimo valore y_n+1 col metodo di Eulero.
2. Step correttore: viene corretto il valore predetto con un metodo di integrazione trapezoidale
(03.06) Schemi di convenzione
Schema Lax-Friedrichs
Schema Lax-Wendroff
Metodo introdotto negli anni 60 è stato il primo schema ad ottenere un’accuratezza al second’ordine sia
nel tempo che nello spazio. Per svilupparlo richiede diverso lavoro (Taylor e Jacobiano).
Questo metodo cattura la nitidezza dello shock molto meglio rispetto al Lax-Friedrichs, ma introduce un
nuovo problema: le oscillazioni numeriche dove la soluzione non è per nulla fluida.
Schema MacCormack
Metodo introdotto nel 69, si tratta di uno schema suddiviso in due fasi: la prima fase di chiama predittore
mentre la seconda correttore. Questo metodo ottiene un’accuratezza del second’ordine sia nel tempo che
nello spazio.
La prima fase sembra uno schema forward-time/forward-space, mentre la seconda fase uno schema
forward-time/backward-space con la media del primo risultato.
Schemi Predittore-Corettore
In generale tutti gli schemi predittore/correttore sono suddivisi in due fasi.
La fase del predittore nella quale i valori delle funzioni (e derivate) ad un punto precedente sono usati per
predire il valore della funzione al punto seguente.
La fase del correttore nella quale si usano i valori del predittore, insieme ad un metodo differente, per
stimare nuovamente il valore della funzione nello stesso punto.
Condizioni al contorno: una condizione al contorno viene rappresentata da una regola che descrive come il
sistema interagisce con i bordi del dominio di interesse. Un esempio visto, riguardo lo studio dell'equazione
di diffusione del calore, è quello dell'asta di grafite, in cui il lato sinistro viene mantenuto a temperatura
costante.
• Dirichlet: condizione al contorno in cui la soluzione nei punti corrispondenti al contorno del sistema
o in una parte di sistema sono mantenute uguali ad una certa costante predefinita.
• Neumann: condizione al contorno in cui vengono specificati i valori che la derivata della soluzione
deve assumere sul contorno o su una parte del contorno del dominio di interesse.
Schemi espliciti e schemi impliciti: schemi espliciti e schemi impliciti sono schemi di integrazione utilizzati
in analisi numerica per ottenere soluzioni approssimate di equazioni differenziali ordinarie o equazioni
differenziali alle derivate parziali.
- Esplicito → uno schema esplicito consente di calcolare facilmente la soluzione all’istante n + 1 sulla
base della soluzione dell’istante di tempo corrente n. L’utilizzo di uno schema esplicito presenta i
seguenti vantaggi:
• Utilizzo di un passo temporale di tempo, dt, piccolo per ottenere stabilità.
• Ogni modifica alle condizioni di contorno influenza la soluzione solo all’istante successivo e
non immediatamente.
- Implicito → uno schema implicito consente di calcolare la soluzione risolvendo un’equazione che
prende in considerazione sia lo stato corrente del sistema, sia lo stato del sistema all’istante di
tempo successivo. Permette di lavorare con passi di discretizzazione più grandi senza dover
sottostare a condizioni di stabilità. Se si sceglie un passo temporale grande però si potrebbe
perdere accuratezza.
Lo schema esplicito viene risolto con un semplice schema FTCS (Forward Time Central Scheme).
Lo schema implicito viene risolto con un sistema lineare di equazioni del tipo [A][x] = [b] + [b]b.c.
Esempio generico
Schema esplicito →
Schema implicito →
Metodi a volumi finiti: sono gli schemi più utilizzati per quanto riguarda la fluido dinamica. Sono metodi di
risoluzione flessibile, che non hanno bisogno di una struttura particolare dello stencil, ed inoltre offrono una
discretizzazione conservativa utilizzando la legge di conservazione.
Metodo di Godunov: introdotta nel 1959 utilizza la legge della conservazione nella sua forma integrale. In
ogni cella in cui è diviso il volume di controllo si ha un valore a eL ed eR che indica l'energia ai bordi della cella;
questo tipo di problema è chiamato problema di Riemann. Per calcolare il nuovo valore dell'energia, ai bordi
della cella, si utilizza la risoluzione analitica del problema di Riemann. La soluzione totale sarà poi ricostruita
unendo tutte le singole soluzioni. È un metodo di primo ordine. Per ottenere una soluzione più accurata di
utilizza lo schema MUSCL.
Schema MUSCL: è un metodo di secondo ordine a volumi finiti. È un'evoluzione dello schema di Godunov di
cui va a modificare la rappresentazione costante a tratti della funzione inserendo una rappresentazione
lineare a tratti, mantenendo le varie condizioni agli estremi delle singole celle.
Godunov vs MUSCL: in ogni cella dello schema di Godunov, è rappresentata la funzione normale, mentre in
ogni cella MUSCL è rappresentata una linea che rappresenta la derivata della funzione all'interno della cella.
Metodi ad elementi finiti: metodi che implementa la divisione di un sistema in più sotto parti, delle quali si
andrà a calcolare la soluzione e si uniranno alla fine per trovare la soluzione finale. Esempi: filo che viene
diviso in più parti, doppio pendolo. Lavorano sull'energia e utilizzano le matrici associate.
6. Sistemi stocastici
Un modello deterministico effettua una previsione fornendo come output un valore numerico senza dare
nessuna misura della distribuzione probabilistica del risultato.
Un modello stocastico è caratterizzato invece dal contenere procedure che tengano conto delle distribuzioni
di probabilità, assieme ad elementi che aggiungono una componente casuale nel caratterizzare lo stato di
alcune o tutte le variabili. Questo in genere è attuato considerando le variabili ed i parametri del modello
come variabili casuali. Viene in questo caso utilizzata la capacità del modello di generare numeri casuali
oppure si utilizzano stime della variabilità dei parametri, verificando l'effetto di questa variabilità nel
comportamento del sistema.
Se alpha >= 1 significa che x*i+1 risulta essere un valore più probabile di xi e lo si accetta;
Se alpha < 1 si accetta x*i+1 con probabilità alpha; un modo per fare ciò è quello di generare un
numero casuale r compreso in [0, 1]:
a) Se r < alpha allora si accetta x*i+1;
b) se r >= alpha allora si setta xi+1 = xi.
Tale metodo può però diventare lento, quando il numero dei possibili campioni aumenta, nel generare nuovi
campioni, in quanto le nuove proposte vengono rifiutate nel maggiore dei casi. Questo accade in quanto non
esiste un vero e proprio criterio, che permette di esplorare l'intero spazio dei possibili valori, che sia
efficiente.
Dinamica Hamiltoniana: modifica il metodo Metropolis-Hastings cercando di guidare la regione dei valori da
visitare in modo tale che il numero di nuovi valori scartati sia minore. Utilizza per l'integrazione il metodo
leapfrog, che è un metodo di secondo ordine. Utilizza come criterio per l'accettazione o meno l'energia, che
deve essere minore di zero. Se l'energia è maggiore di zero, viene calcolata la probabilità alpha con cui il
valore verrà accettato o meno come succedeva con il metodo MH. Applicato per la risoluzione del modello
Ising.
Se si utilizza uno spazio di valori da visitare ristretto, HMC (Hybrid Monte Carlo o dinamica Hamiltoniana)
non è molto più efficiente di quanto è il metodo MH, ma all'aumentare dello spazio dei valori esso è molto
più efficiente in quanto i valori vengono scartati molto meno spesso.
7. Soluzione delle equazioni ellittiche
Tutti i metodi citati sopra sono stati introdotti nello studio di problemi in cui non interessa l'evoluzione
nel tempo ma bensì lo stato in cui il sistema si trova una volta rilassato; consentono infatti di rilassare
il sistema fino a raggiungere la condizione desiderata.
e l’equazione di Laplace:
le quali permettono di descrivere fenomeni fisici non dipendenti dal tempo, quali ad esempio, il campo
gravitazionale prodotto da un enorme oggetto, il potenziale elettrico di una distribuzione di carica, ecc.
(Esempio di utilizzo equazione del calore 2D indipendente dal tempo con dx=dy e discretizzata con uno
schema alle differenze centrali)
Metodi:
▪ Jacobi: per ogni punto viene effettuata una media dei punti ad esso vicini(quindi i 4 elementi a
nord, sud, est e ovest).
Questa procedura viene utilizzata in maniera iterativa finché la differenza tra due iterazioni
successive non è abbastanza piccola.
▪ Gauss-Seidel: diversamente dal metodo Jacobi prevede di utilizzare i valori noti, appena calcolati,
non appena risultano disponibili
Dipende da un parametro w, che porta ad una simulazione stabile solo se compreso in (0, 2), inoltre
determina quanto veloce il metodo SOR risulterà essere rispetto al metodo Gauss-Seidel.
o Se w < 1, è meno efficiente di Gauss (converge più lentamente)(under-relaxation)
o Se w = 1, è efficiente come Gauss
o Se w > 1, allora, è più efficiente di Gauss (converge più velocemente)(over-relaxation)
o w = 2 / (1 + pi / nx) valore ottimale.
• Metodo a discesa rapida (steepest descent): consente di rilassare il sistema considerato in maniera
molto più efficiente, rispetto ai metodi visti in precedenza. Nella prima iterazione si individua un
valore casuale come soluzione dell’equazione di Poisson, e poi si va a raffinare fino ad ottenere la
soluzione accettabile andando a diminuire l’errore, cioè il residuo a poco a poco. In ogni iterazione,
le soluzioni sono ortogonali, come in un reticolo, ma non c’è nessun meccanismo che controlla le
direzioni dei vari passi.
In particolare, considerando l’equazione di Poisson discretizzata:
dove d è il vettore che stabilisce in che direzione muoversi per poter raggiungere in maniera più
efficiente la soluzione e alpha determina di quanto muoversi, la grandezza dello step.
Viene introdotto il concetto di residuo, il quale risulta corrispondere al vettore d, ed indica qual è il
vettore da aggiungere a A * p per raggiungere il vettore b, quindi per raggiungere la soluzione.
Ad ogni iterazione si procede quindi nel seguente modo:
1. Viene calcolato r come: r = b - A * p
2. Viene calcolato alpha come: alpha = (r_k * r_k) / (r_k * A * r_k)
• Gradiente Coniugato: utilizza una matrice simmetrica e positiva di coefficienti. È più efficiente del
metodo Jacobi perché arriva alla condizione di uscita del ciclo del calcolo della soluzione con molte
meno iterazioni. Si utilizza il residuo, che è la differenza, l’errore per ogni punto della matrice tra il
valore calcolato ed il valore esatto. Rispetto al metodo di discesa rapida, controlla che due soluzioni
successive non abbiano mai la stessa direzione. Inoltre, è molto più efficiente quando si deve
risolvere una equazione di Poisson molto complicata, altrimenti se si tratta di una equazione di
Poisson base e semplice la sua efficienza è simile a quella del metodo a discesa rapida.
• Metodo MULTIGRID: si basano su
o Restrizione: trasferimento di dati da una griglia fine ad una più grezza. Abbiamo due
modalità:
▪ Iniezione: si trasportano i valori nella stessa grigia ignorando i valori che nella
nuova griglia più grezza non sono presenti.
▪ Adattamento a dimensione massima: si tiene conto dei valori intermedi
effettuando una media per avere una rappresentazione migliore.
o Interpolazione: passaggio da una griglia grezza ad una fine. Nel momento in cui aggiungo
un valore tra due valori della griglia grezza, inserisco la media dei due valori.
I metodi multigrid permettono di avere una convergenza più veloce, cioè l’errore si avvicina a
zero con un numero molto minore di iterazioni. Tutto questo appunto perché un salto in una
griglia singola, come per i metodi precedenti, è in realtà una griglia anche esso stesso. Ovvero,
per passare da una soluzione ad un’altra, mentre nei metodi a griglia singola il passaggio è
diretto, e l’errore quindi viene azzerato con un minor numero di iterazioni, nei metodi
multigrid, un singolo passo tra una soluzione ed un’altra è anche esso stesso una griglia grezza.
L’utilizzo di più griglie è utile per raffinare il residuo, che a mano a mano si fa sempre minore.
8. Simulazioni da dinamiche emergenti
Automa cellulare: è un modello matematico usato per descrivere l'evoluzione di sistemi discreti. È un
insieme di cellule dello stesso tipo. Ogni cellula ha un insieme di possibili stati, lo stato di ogni cellula viene
aggiornato in maniera sincronizzata, ovvero tutte le cellule aggiornano il proprio stato nello stesso istante.
Le regole per l’aggiornamento dello stato delle cellule dipendono dalle cellule circostanti alla cellula che si
vuole aggiornare. Se le cellule sono disposte in modo regolare, si dice automa a lattice (a reticolo).
Automa cellulare 1D: viene chiamato laccio, e ha due stati, pieno o vuoto. Lo stato della cella i-esima
dipende dallo stato delle n cellule precedenti e dalle n cellule successive.
Modello Nagel-Schreckenberg: modello che utilizza un automa cellulare 1D in cui ogni macchina presente
occupa una cella dell’automa. Le macchine non si scontrano mai. Ogni macchina che non viaggia a velocità
massima aumenta la sua accelerazione di una unità, se la distanza (espressa in celle) dalla macchina davanti
è minore della velocità dell’auto, la velocità viene diminuita. Il modello NS viene utilizzato per gestire gli
shock negli automi cellulari.
Numero di Reynolds: valore che caratterizza un flusso, U indica la velocità del flusso, L la
dimensione dell’ostacolo e v indica la diffusità cinematica
Modello HPP: reticolo quadrato, ogni nodo ha 4 cellule. Ogni particella ha la sua direzione e la sua velocità,
nel momento in cui due particelle hanno direzioni opposte, ovvero tendono a scontrarsi, la loro direzione
viene dirottata in maniera ortogonale, una particella andrà nella direzione destra e una sinistra. Ai bordi
però devono essere poste delle condizioni poiché alcune particelle rappresentate nelle cellule potrebbero
sparire dal rettangolo. Le possibili soluzioni sono:
- Periodiche: a sinistra escono e a destra del quadrato rientrano
- Outflow: le particelle sono assorbite e semplicemente spariscono
- Inflow: le particelle sono create dai bordi
- Free-slip: le particelle rimbalzano sui bordi seguendo la legge di distribuzione
- No-slip: le particelle rimbalzano sui bordi come se fosse uno specchio
Non riesce a rappresentare l’equazione di Navier-Stokes, che descrive il flusso di un fluido incompressibile.
Automa cellulare a reticolo FHP: è un tipo di automa a reticolo in cui ogni nodo ha sei nodi vicini, cioè è il
centro di un esagono. In ogni nodo ci sono 7 cellule, ovvero la cellula centrale e le sue 6 cellule vicine. Ci
sono più regole per gestire le collisioni, le più utilizzate sono la FHP-I, la FHP-II e la FHAP-III. La FHP-I
gestisce le collisioni in maniera simmetrica, cioè come se fosse uno specchio. Permette di risolvere
l’equazione di Navier-Stokes, in quando l’angolo di riflessione di simmetria è di 120° e non di 90° come
nell’automa HPP.
Automi a reticolo di Boltzmann: sono automi a reticolo più generali, infatti è dimostrato che da un automa
di a reticolo di Boltzmann si possa risalire tramite una particolare configurazione ad un automa a reticolo
cellulare (LGCA). La differenza sta nel fatto che i valori che possono assumere le cellule non sono più
discreti, ma continui, cioè potenzialmente infiniti. Cioè una cellula non potrà essere piena o vuota, cioè 0 o
1, ma potrà assumere un valore compreso tra 0 e 1.
Il reticolo è un reticolo quadrato e non esagonale, in cui è presente un valore c che rappresenta la scala del
reticolo. Il processo di propagazione è composto da 2 fasi: si calcola il nuovo valore della distribuzione per
ogni nodo, e si inoltra il nuovo valore ai nodi vicini corrispondenti. Quando si incontra un bordo del reticolo,
come per gli automi cellulari a reticolo normali, si possono assumere vari comportamenti:
- No slip at an obastacle: le funzioni di distribuzione vengono riflesse come in uno specchio
- In flow condition: le funzioni di distribuzione vengono create direttamente dai bordi, in questo
modo si possono assegnare delle velocità prestabilite alle particelle, ecc.ecc.
- Outflow: le particelle che vanno in contatto con il bordo vengono assorbite