Vai al contenuto
ELECTRONICS ENGINEERINGelectronics-engineering.com
Metodi Matematici Calcolo Numerico

Differenze finite per le equazioni iperboliche: upwind, Lax-Wendroff e condizione CFL

Equazione di trasporto, instabilità dello schema centrato con l'analisi di von Neumann, upwind e diffusione numerica, Lax-Friedrichs, Lax-Wendroff, teorema di Godunov e linee di trasmissione.

https://www.electronics-engineering.com/articolo_3181-introduzione_ai_metodi_numerici_alle_differenze_finite_per_equazioni_di_evoluzione.htm

Ti è stata utile questa pagina? Votala:
media 3,0 su 1 voto

Questo approfondimento completa la lezione sulle differenze finite con la classe di equazioni più delicata da risolvere numericamente: le equazioni iperboliche, che descrivono fenomeni di trasporto e propagazione a velocità finita, come un inquinante portato da un fiume, un segnale su una linea di trasmissione, un’onda d’urto. Partiamo dal modello più semplice, l’equazione di trasporto lineare, e vediamo perché lo schema più “naturale” è instabile, come lo si corregge e che cosa dice la condizione di Courant.

L’equazione di trasporto

    \[ u_t + a\,u_x = 0,\qquad a \gt 0 \]

ha soluzione esatta u(x, t) = u_0(x - at): il profilo iniziale trasla verso destra con velocità a senza deformarsi. Lungo le caratteristiche x - at = \text{costante} la soluzione è costante: l’informazione viaggia da sinistra verso destra. È un banco di prova ideale, perché la soluzione esatta è nota e ogni deformazione del profilo è un errore del metodo.

Lo schema centrato è instabile

Con la differenza in avanti nel tempo e quella centrata nello spazio, la più precisa:

    \[ u_i^{n+1} = u_i^n - \frac C2\big(u_{i+1}^n - u_{i-1}^n\big),\qquad C = \frac{a\,\Delta t}{\Delta x} \]

Sembra ragionevole, ma è instabile per qualsiasi \Delta t. Per vederlo si usa l’analisi di von Neumann: si sostituisce u_i^n = g^n e^{i\theta i} (un’onda di numero d’onda \theta) e si calcola il fattore di amplificazione g:

    \[ g = 1 - iC\sin\theta,\qquad |g|^2 = 1 + C^2\sin^2\theta \gt 1 \]

Ogni componente cresce a ogni passo. Lo schema è consistente ma non stabile, e per il teorema di Lax-Richtmyer non converge.

Lo schema upwind

La correzione è guardare da dove arriva l’informazione. Con a \gt 0 arriva da sinistra, quindi si usa la differenza all’indietro:

    \[ u_i^{n+1} = u_i^n - C\big(u_i^n - u_{i-1}^n\big) = (1 - C)\,u_i^n + C\,u_{i-1}^n \]

Se 0 \le C \le 1 il nuovo valore è una media pesata con pesi positivi: lo schema è stabile e non crea oscillazioni. Il fattore di amplificazione ha |g| \le 1 proprio quando C \le 1: è la condizione di Courant-Friedrichs-Lewy. Con C = 1 lo schema è esatto (u_i^{n+1} = u_{i-1}^n, il profilo si sposta di una cella a ogni passo).

Il prezzo è l’accuratezza: l’upwind è del primo ordine e introduce diffusione numerica. Un gradino viene trasportato ma i suoi spigoli si arrotondano progressivamente, come se ci fosse un piccolo termine di diffusione che l’equazione vera non ha. Si vede scrivendo l’equazione modificata: lo schema risolve in realtà u_t + au_x = \frac{a\Delta x}{2}(1 - C)\,u_{xx}.

Lax-Friedrichs e Lax-Wendroff

  • Lax-Friedrichs sostituisce u_i^n nello schema centrato con la media dei vicini, \frac12(u_{i+1}^n + u_{i-1}^n). Diventa stabile per C \le 1, ma è ancora più diffusivo dell’upwind.
  • Lax-Wendroff usa lo sviluppo di Taylor al secondo ordine nel tempo e l’equazione stessa per sostituire u_{tt} = a^2u_{xx}:

    \[ u_i^{n+1} = u_i^n - \frac C2\big(u_{i+1}^n - u_{i-1}^n\big) + \frac{C^2}{2}\big(u_{i+1}^n - 2u_i^n + u_{i-1}^n\big) \]

È del secondo ordine e stabile per C \le 1, con poca diffusione. Ma vicino ai salti produce oscillazioni spurie (sovraelongazioni prima e dopo il gradino), simili al fenomeno di Gibbs della serie di Fourier.

Trasporto di un gradino con due schemi
Un gradino, grigio tratteggiato, trasportato con C uguale a 0,5 per 80 passi. La soluzione esatta, nera tratteggiata, è lo stesso gradino spostato. L’upwind, blu, è stabile ma arrotonda gli spigoli (diffusione numerica); Lax-Wendroff, arancione, è più preciso ma crea oscillazioni vicino ai salti, come previsto dal teorema di Godunov.

Il teorema di Godunov e gli schemi moderni

Godunov dimostrò nel 1959 che nessuno schema lineare di ordine superiore al primo può trasportare un salto senza creare oscillazioni. O si accetta la diffusione (primo ordine) o le oscillazioni (ordine superiore). Gli schemi moderni aggirano il teorema essendo non lineari: usano un metodo del secondo ordine dove la soluzione è regolare e passano automaticamente a uno del primo ordine vicino ai salti, con i cosiddetti limitatori di flusso (schemi TVD, MUSCL, WENO). Sono gli schemi usati nei programmi di fluidodinamica computazionale per simulare onde d’urto e flussi supersonici.

Sistemi iperbolici e coefficienti variabili

Le equazioni dei telegrafisti per una linea di trasmissione,

    \[ \frac{\partial v}{\partial t} = -\frac1C\frac{\partial i}{\partial x},\qquad \frac{\partial i}{\partial t} = -\frac1L\frac{\partial v}{\partial x} \]

(con L e C induttanza e capacità per unità di lunghezza), sono un sistema iperbolico. Diagonalizzando la matrice dei coefficienti (gli autovalori sono \pm 1/\sqrt{LC}) il sistema si spezza in due equazioni di trasporto, un’onda che va avanti e una che torna indietro: le stesse onde progressive e riflesse dell’analisi delle linee. Per ciascuna si applica l’upwind nella direzione giusta, e la condizione di Courant si impone con la velocità più grande. Con coefficienti variabili (una linea con impedenza che cambia lungo il percorso) la velocità locale cambia da punto a punto, e il passo temporale va scelto in base alla velocità massima su tutta la griglia.

Iscriviti
Notificami
guest
1 commento
Vecchi
Più recenti Le più votate
1
0
Esprimete la vostra opinione commentando.x