• Non ci sono risultati.

Come gi`a osservato, utilizzando un approccio esplicito si pu`o pervenire ad una soluzione che non risulta essere stabile qualora il valore del passo della variabile marciante supera un determinato valore soglia. Quest’ultimo `e ben determinato dallo studio della stabilit`a effettuato sull’equazione alle dif-ferenze sotto esame. Il comportamento di una data equazione `e strettamente legato agli errori concernenti il processo tramite il quale si ottiene una sua soluzione. E’ facilmente intuibile allora che se tale errore durante il processo cresce in continuazione da un passo al successivo, la soluzione non pu`o esse-re stabile. Viceversa se esso esse-resta costante, o ancora meglio diminuisce, la soluzione pu`o avere un comportamento stabile.

Gli errori che riguardano il processo di discretizzazione sono di due diffe-renti tipi. Il primo `e l’errore di discretizzazione propriamente detto in quanto riguarda l’errore che si commette approssimando la soluzione esatta, ottenuta analiticamente, con quella derivante dall’equazione alle differenze finite. Questo `e dato dall’ errore di troncamento e da altri errori che possono riguardare le condizioni al contorno. Il secondo tipo di errore `e detto errore di arrotondamento ed `e relativo agli arrotondamenti alle cifre significative compiuti dal calcolatore.

Per capire meglio l’argomento della discussione, studiamo la stabilit`a della gi`a nota equazione differenziale lineare (2.28), riportata qui di seguito

∂T

∂t = α∂2T

∂x2.

La relativa equazione alle differenze ottenuta col metodo esplicito `e data dalla (2.34)

Tin+1− Tin

∆t = αTi+1n − 2Tin+ Ti−1n (∆x)2 . Se poniamo

A = soluzione analitica dell’equazione alle derivate parziali D = soluzione esatta dell’equazione alle differenze

N = soluzione numerica data da un computer reale avente precisione finita allora

Errore di discretizzazione = A - D Errore di arrotondamento = ² = N - D.

Dall’ultima si ricava che

N = D + ². (2.53)

Questa, essendo una soluzione dell’equazione alle differenze, rispetta la (2.34).

Quindi, da tale equazione, con N al posto di T , si ottiene Dn+1i + ²n+1i − Dni − ²ni

α∆t = Di+1n + ²ni+1− 2Dni − 2²ni + Di−1n + ²ni−1

(∆x)2 . (2.54)

A questo punto, ricordando che D `e per definizione la soluzione esatta del-l’equazione alle differenze, possiamo scrivere

Dn+1i − Dni

α∆t = Di+1n − 2Dni + Dni−1

(∆x)2 . (2.55)

Essendo l’equazione differenziale di partenza lineare, possiamo sottrarre in-fine la (2.55) dalla (2.54)

²n+1i − ²ni

α∆t = ²ni+1− 2²ni + ²ni−1

(∆x)2 (2.56)

notando come anche l’errore (di arrotondamento) ² rispetta l’equazione alle differenze.

Solitamente gli errori ²i sono presenti in ogni fase del processo risolutivo dell’equazione alle differenze per cui la relativa soluzione risulta essere stabile se tali ²i non aumentano, o meglio diminuiscono, procedendo da un passo al

successivo. Possiamo allora dire che una soluzione risulta essere stabile se viene rispettata la seguente condizione

¯¯

¯¯²n+1i

²ni

¯¯

¯¯ ≤ 1. (2.57)

Dobbiamo allora cercare di vedere quando questa condizione viene rispetta-ta. Per fare ci`o consideriamo il fatto che il valore dell’errore ²i pu`o variare in maniera del tutto casuale lungo il dominio sul quale si vuole risolvere l’e-quazione.

Denotando tale lunghezza con L possiamo immaginare che l’andamento di ² in funzione di x venga schematizzato come in figura 2.11.

Figura 2.11: Esempio di andamento di ²(x)

Come si vede, l’errore relativo ai punti caratterizzati da x = ±L/2 `e nullo dal momento che ci troviamo agli estremi dove il valore della funzione `e fissato dalle condizioni al contorno.

Sfruttando poi la teoria di Fourier possiamo pensare di poter esprimere analiticamente il comportamento di ²(x) attraverso una serie, cio`e

²(x) =X

m

Ameikmx (2.58)

in cui Am rappresenta la fase e km il vettore d’onda dato da km =

λ (2.59)

o equivalentemente, ricordando che il dominio L deve essere pari a un numero intero di λ,

km = (L/m) =

µ L

m. (2.60)

Capiamo quindi come l’indice m, presente nel numero d’onda k, indichi il numero delle onde che ricadono all’interno del dominio L.

Passiamo ora a considerare la massima e la minima lunghezza d’onda permes-sa. La prima, come ci si aspetta, `e data dalla lunghezza stessa del dominio della funzione, quindi λM AX = L (con m = 1). La minima lunghezza d’onda

`e quella che si annulla in tre punti adiacenti del reticolo. Con riferimento alla figura 2.12 possiamo allora dire che λmin = 2∆x.

Figura 2.12: Lunghezza d’onda massima e minima

Immaginiamo di avere un reticolo di N + 1 punti distanziati con spaziatura

∆x = L/N, avendo N intervalli sulla lunghezza L del dominio. Allora nel caso in cui λ = λmin otteniamo

km = (2L/N) =

µ L

N

2. (2.61)

Ne consegue che nella sommatoria della (2.58) corre da 1 a N/2

²(x) = XN/2 m=1

Ameikmx. (2.62)

La precedente equazione fornisce una stima dell’errore in funzione della sola variabile spaziale x, tuttavia siamo interessati al valore di ² in due istanti consecutivi perci`o immaginiamo che l’ampiezza Am sia funzione anche di t.

Supponendo che tale ampiezza abbia un andamento esponenziale

²(x, t) = XN/2 m=1

eateikmx (2.63)

in cui a `e una costante.

Notiamo che, essendo l’equazione alle differenze (2.34) di tipo lineare e l’er-rore ² una soluzione della stessa, sostituendo la (2.63) nella (2.56), il com-portamento di ogni singolo termine `e equivalente a quello della stessa serie, perci`o

²m(x, t) = eateikmx. (2.64)

Senza perdere in generalit`a, sostituiamo l’espressione di ² data dalla prece-dente (2.64) nell’equazione (2.56)

ea(t+∆t)eikmx− eateikmx Ricordando poi l’espressione del coseno

cos δ = eδ+ e−δ 2 scriviamo

ea∆t = 1 + 2α∆t

(∆x)2[cos(km∆x) − 1]. (2.68) Facendo ricorso a questo punto ad un’altra equazione trigonometrica

sin2 δ

Inoltre ea∆t pu`o anche essere visto come ea∆t= ea(t+∆t)eikmx

eateikmx = ²n+1i

²ni . (2.70)

Sfruttando queste due ultime equazioni possiamo mettere la (2.57) nella forma seguente in cui indichiamo col termine di fattore di amplificazione G la quantit`a

G ≡

Affinch`e la soluzione numerica della (2.28), ottenuta con un approccio espli-cito al metodo delle differenze finite, sia stabile occorre allora che G ≤ 1.

Possono presentarsi due casi:

1. 1 − (∆x)4α∆t2 sin2¡k

La condizione espressa dall’ultima equazione risulta essere sempre ri-spettata dal momento che il fattore 4α∆t/(∆x)2 `e sempre positivo;

2. 1 − (∆x)4α∆t2 sin2¡k

da cui si ricava che

α∆t (∆x)2 1

2. (2.72)

La precedente (2.72) esprime in termini di ∆x e ∆t il criterio di stabilit`a per la soluzione della (2.34) nel senso che finch`e tale condizione viene verificata l’errore ² non cresce e la soluzione 00non esplode00; viceversa nel caso in cui il ∆t scelto non la rispetti.

Il procedimento appena presentato prende il nome di metodo di stabilit`a alla von Neumann ed `e spesso utilizzato per lo studio della stabilit`a delle equazioni alle differenze lineari.

Presentiamo di seguito, attraverso un altro esempio, un metodo che per-mette di studiare la stabilit`a delle soluzioni di equazioni iperboliche come quella delle onde al primo ordine data da

∂u

∂t + c∂u

∂x = 0. (2.73)

Utilizzando per la derivata spaziale una differenza centrale del tipo

∂u

∂x = uni+1− uni−1

2∆x (2.74)

e per la derivata temporale una differenza al primo ordine avanti, allora l’equazione delle differenze per la (2.73) sar`a data dalla seguente

un+1i − uni

∆t = −cuni+1− uni−1

2∆x . (2.75)

L’equazione trovata `e anche detta forma esplicita di Eulero. Applicando a tale equazione il metodo di von Neumann per lo studio della stabilit`a si nota che essa `e incondizionatamente instabile, cio`e risulta essere instabile per ogni valore di ∆t.

Immaginiamo allora di poter esprimere u(t) nel punto di coordinate (i, n) come media dei valori di u sui due punti ad esso adiacenti sulla stessa mesh, cio`e

u(t) = 1

2(uni+1+ uni−1).

Quindi riscriviamo la derivata temporale come differenza al primo ordine con il valore di u(t) = uni ottenuto precedentemente

∂u

∂t = un+1i 12(uni+1+ uni−1)

∆t . (2.76)

Sostituendo la (2.74) e la (2.76) nella (2.73), e risolvendo si perviene a un+1i = uni+1+ uni−1

2 − c∆t

∆x

uni+1− uni−1

2 . (2.77)

Tale metodo di approssimazione `e detto metodo di Lax. Se poi supponiamo che l’errore abbia la gi`a nota forma ²m(x, t) = eateikmted andiamo a sostituirlo nella (2.77) troviamo un’espressione del fattore di amplificazione del tipo

ea∆t = cos(km∆x) − iC sin(km∆x) (2.78) in cui C = c∆t/∆x `e il numero di Courant.

Il requisito di stabilit`a |ea∆t| ≤ 1 diviene allora C = c∆t

∆x ≤ 1. (2.79)

Capiamo bene che, secondo quanto affermato dalla precedente (2.79), affin-ch`e una soluzione della (2.77) risulti essere stabile occorre che ∆t ≤ ∆x/c.

La (2.79) esprime allora la condizione di stabilit`a ed `e definita come condi-zione di Courant-Friedrichs-Lewy (CFL).

La CFL risulta essere per giunta anche la condizione di stabilit`a per le soluzioni dell’equazione delle onde al secondo ordine

2u

∂t2 = c22u

∂x2. (2.80)

Proprio a partire da quest’ultima equazione possiamo ricavare un’interpreta-zione fisica della (2.79). Consideriamo a tal proposito le linee caratteristiche della (2.80). Esse sono date da

x =

½ ct cammino destro

−ct cammino sinistro (2.81)

Naturalmente si possono presentare due situazioni, schematizzate nelle im-magini della figura 2.13, che dipendono dal valore del numero di Courant C.

Nella figura 2.13 si nota come il punto b sia dato, in entrambe i grafici, dal-l’intersezione tra la linea caratteristica destra, passante per il punto i − 1, e quella sinistra, passante per i + 1.

Figura 2.13: Esempi di situazione stabile (a) ed instabile (b).

Nel disegno (a) della figura 2.13 supponiamo C < 1 ed in quello (b) C > 1.

E’ ovvio che se C = 1 allora dalla (2.79) segue che

∆tC=1 = ∆x

c . (2.82)

Dalle equazioni (2.81) si ricava invece, considerando un incremento finito di x e t

∆t = ±∆x

c . (2.83)

A questo punto notiamo che la (2.82) ha a che fare con la condizione di stabilit`a espressa dalla (2.79), mentre la (2.83) prende le mosse dalle linee caratteristiche indicate nelle (2.81).

Dal momento che ∆t `e il medesimo allora capiamo come ∆tC=1 sia proprio la distanza del punto b dall’asse x.

Se C < 1, allora dalla (2.79) segue che ∆tC<1 < ∆tC=1 ed il punto d, di coordinate (i, t + ∆tC<1) si trova al di sotto di b. In questo caso il dominio numerico, dato dal triangolo abc, contiene quello analitico, dato dall’interse-zione della retta con t = n con le parallele alle linee caratteristiche passanti per il punto d.

Se C > 1 invece si ha che ∆tC>1 > ∆tC=1 ed il punto d, di coordinate (i, t + ∆tC>1) si trova al di sopra di b. In tal caso il dominio numerico non contiene pi`u quello analitico.

Perveniamo cos`ı all’interpretazione della CFL cercata, secondo la quale af-finch`e una funzione sia stabile il dominio numerico deve contenere quello analitico.

In ultima analisi consideriamo l’accuratezza del processo. Il comportamento della funzione nel punto b dipende solo dai punti compresi tra le due linee caratteristiche tuttavia la soluzione numerica attinge alle informazioni dei punti i − 1 e i + 1 che si trovano al di fuori del dominio analitico. Anche se il processo risulta essere stabile la soluzione numerica pu`o essere poco accurata rispetto al valore analitico cosicch`e si preferisce considerare un C ≤ 1, ma molto prossimo all’unit`a.

2.6 Risoluzione numerica dell’equazione di

Documenti correlati