Sei sulla pagina 1di 115

Capitolo 1

Equazioni alle Derivate Parziali

1.1 Introduzione
Un’Equazione alle Derivate Parziali (in breve PDE, acronimo dei termini
inglesi Partial Differential Equation) è un’equazione che mette in relazione
una funzione incognita dipendente da due (o più) variabili indipendenti alle
sue derivate parziali rispetto a queste variabili. La necessità di utilizzare
tali equazioni sta nel fatto che queste consentono di descrivere in modo più
accurato determinati fenomeni naturali. Infatti quando si cerca di descrivere
fenomeni dipendenti da diverse variabili indipendenti (più comunemente po-
sizione e tempo) allora è necessario utilizzare un modello differenziale alle
derivate parziali. Un esempio di PDE è il seguente

∂2u ∂ 2u ∂2u
 
∂u ∂u
a 2 + 2b + c 2 + f x, y, u, , =0
∂x ∂x∂y ∂y ∂x ∂y

dove anche a, b, c possono essere funzioni di x, y, u e delle derivate parziali


prime di u. Generalmente le derivate parziali del secondo ordine possono
essere indicate anche in forma più compatta:

∂2u ∂2u ∂2u


uxx = , uxy = , uyy = 2
∂x2 ∂y∂x ∂y
e, analogamente quelle del primo ordine.
∂u ∂u
ux = , uy =
∂x ∂y

1
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 2

cosicchè la forma dell’equazione appena vista diviene:

auxx + 2buxy + cuyy + f (x, y, u, ux , uy ) = 0.

Le equazioni alle derivate parziali del secondo ordine:

a(x, y, u)uxx + 2b(x, y, u)uxy + c(x, y, u)uyy + f (x, y, u, ux , uy ) = 0

sono le più diffuse. Un’equazione alle derivate parziali si dice di ordine p se


p è il massimo ordine di derivata che vi compare.
Generalmente la scelta delle variabili indipendenti dipende dal problema fisi-
co: infatti le variabili x, y, z indicano una posizione nello spazio, mentre la
varibile t indica il tempo. Talvolta anche le variabili x1 , x2 , x3 indicano una
posizione nello spazio. Considerando quindi le due equazioni

uxx + uyy + f (x, y, u) = 0, uxx + utt + f (x, t, u) = 0

esse sono matematicamente equivalenti ma fisicamente no, perchè la prima


descrive un fenomeno indipendente dal tempo (cioè stazionario) che riguarda
un dominio bidimensionale (la posizione è descritta dalle variabili (x, y))
mentre nel secondo caso il fenomeno descritto evolve nel tempo in un dominio
monodimensionale.
Nell’equazione del secondo ordine

a(x, y, u)uxx + 2b(x, y, u)uxy + c(x, y, u)uyy + f (x, y, u, ux , uy ) = 0

non compare la derivata uyx perchè, in ipotesi di continuità, applicando il


Teorema di Schwarz, le derivate parziali miste sono uguali, cioè:

uxy = uyx .

Va anche precisato che nelle equazioni più diffuse non è presente la deriva-
ta uxy , perchè talvolta non ha significato fisico mentre in altri casi con un
opportuno cambiamento di variabile essa può diventare nulla.

1.1.1 Operatori Differenziali


Spesso le equazioni alle derivate parziali sono rappresentate in forma più
compatta utilizzando determinati operatori differenziali, tra i quali:
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 3

1. Il Gradiente di u(x, y, t):


 
ux (x, y, t)
gradu(x, y, t) = ∇u(x, y, t) =  uy (x, y, t) 
ut (x, y, t)

2. La Divergenza di una funzione vettoriale u(x, y, t) = (u1 , u2 , u3 ):

∂u1 ∂u2 ∂u3


divu(x, y, t) = + + .
∂x ∂y ∂t

3. Il Laplaciano di u(x, y, t):

∂ 2u ∂ 2u ∂ 2u
∆u = ∇2 u(x, y, t) = div(grad(u(x, y, t)) = + + 2.
∂x2 ∂y 2 ∂t

4. Il Curl (o Rotore) della funzione vettoriale (o del campo vettoriale)


u = (u1 , u2 , u3 ):

∂u3 ∂u2
 
 ∂y − ∂z 
 
 
 ∂u1 ∂u3 
 
Curl(u) = gradu × u =  − 
 ∂z ∂x 
 
 
 ∂u2 ∂u1 

∂x ∂y

che trova applicazione nella terza equazione di Maxwell (la cosiddetta


Legge di Faraday-Neumann-Lenz) che stabilisce che il rotore del cam-
po elettrico è uguale e opposto alla derivata dell’intensità del campo
magnetico e che, in generale, consente di descrivere il comportamento
di un campo vettoriale a ruotare rispetto ad un punto.

Descriviamo ora i più noti esempi di equazioni del secondo ordine.

Esempio 1.1.1 L’equazione d’onda

∂2u ∂2u 1 ∂2u


+ =
∂x2 ∂y 2 c2 ∂t2
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 4

descrive, in funzione della posizione e del tempo, lo spostamento, rispetto


al punto di equilibrio, di una corda vibrante. L’equazione descrive anche il
campo elettrico o magnetico in un’onda elettromagnetica oppure l’intensità di
corrente oppure il potenziale lungo una linea di trasmissione. La quantità c
è la velocità di propagazione dell’onda.
Esempio 1.1.2 L’equazione di diffusione
 2
∂ u ∂ 2u

∂u
κ + =
∂x2 ∂y 2 ∂t
descrive la temperatura in una regione che non contiene sorgenti di calore, e si
applica anche alla diffusione di un composto chimico in un mezzo permeabile
(liquido, mezzo poroso) avente concentrazione u(x, y, t). La costante κ viene
detta diffusività.
Esempio 1.1.3 L’equazione di Laplace
∂2u ∂2u
∇2 u = 0 ⇔ + =0
∂2x ∂2y
può essere ottenuta dall’equazione di diffusione ponendo a zero la deriva-
ta rispetto al tempo e descrive la distribuzione di temperatura in regime
stazionario di un solido privo di sorgenti di calore. L’equazione di Laplace
descrive anche il potenziale elettrostatico in una regione priva di carica elet-
trica. Si applica anche al flusso di un fluido incompromibile in una regione
senza vortici, sorgenti o scarichi.
Esempio 1.1.4 L’equazione di Poisson
∂2u ∂2u
∇2 u = ρ(x, y) ⇔ + = ρ(x, y)
∂2x ∂2y
descrive la stessa situazione dell’equazione di Laplace ma in una regione in
cui c’è carica elettrica oppure una sorgente di calore o di fluido. La funzione
ρ(x, y) si chiama densità di sorgente e dipende anche da costanti fisiche. Per
esempio nell’equazione di Poisson:
∂ 2u ∂ 2u ρ(x, y)
2
+ 2 =−
∂ x ∂ y ε
dove u(x, y) rappresenta il potenziale elettrostatico di una regione dello spazio,
ρ(x, y) rappresenta la densità della carica elettrica e ε è la permittività della
sostanza.
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 5

Esempio 1.1.5 Studiando il fenomeno della filtrazione dell’acqua nel sotto-


suolo supponiamo che Ω sia una regione dello spazio occupata da un cosiddet-
to mezzo poroso (terra o argilla per esempio), che abbia conduttività idraulica
K. Indicando con φ(x, y, z) il livello dell’acqua, e con

q = (qx , qy , qz )

la velocità di filtrazione, allora applicando la legge di Darcy risulta che tale


velocità è proporzionale alla variazione del livello dell’acqua:
 
∂φ ∂φ ∂φ
q = −K , ,
∂x ∂y ∂z
e inoltre, per la proprietà di conservazione della massa, la divergenza di q
deve essere nulla:
divq = 0.
Applicando la definizione di divergenza segue:
∂qx ∂qy ∂qz
divq = + + =
∂x ∂y ∂z
 2
∂ φ ∂ 2φ ∂ 2φ

= −K + + 2 = 0.
∂x2 ∂y 2 ∂z
Da cui segue che la funzione φ soddisfa l’equazione di Laplace:

∆φ = 0.

La principale motivazione che spinge a risolvere numericamente le equazioni


alle derivate parziali sta nel fatto che non esistono tecniche analitiche generali
per ottenere la soluzione anche se per alcuni tipi di equazioni (soprattutto
lineari) può essere scritta esplicitamente sotto forma di serie di Fourier. Tut-
tavia la convergenza di tali sviluppi in serie è lenta quindi per ottenere una
buona approssimazione è richiesto il calcolo di un numero di termini parti-
colarmente elevato. Per altri tipi di equazioni si può scrivere l’espressione
della soluzione teorica sotto forma di integrali che spesso non possono essere
calcolati esattemente ma solo approssimati numericamente.
Considerando un’equazione alle derivate parziali del secondo ordine essa può
essere di tipo Lineare:

a(x, y)uxx +2b(x, y)uxy +c(x, y)uyy +d(x, y)ux +e(x, y)uy +f (x, y)u+g(x, y) = 0
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 6

oppure Quasi-Lineare:

a(x, y, u, ux , uy )uxx + 2b(x, y, u, ux , uy )uxy + c(x, y, u, ux , uy )uyy +

+f (x, y, u, ux , uy ) = 0
oppure ancora Semi-Lineare:

a(x, y)uxx + 2b(x, y)uxy + c(x, y)uyy + f (x, y, u, ux , uy ) = 0.

1.2 Classificazione delle equazioni alle deri-


vate parziali
Consideriamo l’equazione alle derivate parziali lineare

auxx + 2buxy + cuyy + dux + euy + f u + g = 0, (1.1)

con (x, y) ∈ Ω ⊂ R2 e tale che a2 + b2 + c2 6= 0 per ogni (x, y) ∈ Ω. La


classificazione delle equazioni alle derivate parziali avviene in base al segno
assunto dalla quantità
∆ = b2 − ac.
Infatti un’equazione alle derivate parziali del secondo ordine si dice:
1. iperbolica se ∆ > 0,

2. ellittica se ∆ < 0,

3. parabolica se ∆ = 0.
Tale classificazione (per la verità un po’ superata) dipende solo dall’analogia
formale tra la (1.1) e l’equazione completa di una conica

ax2 + 2bxy + cy 2 + dx + ey + f = 0,

che, in funzione del valore assunto dal discriminante ∆, rappresenta


1. un’iperbole se b2 − ac > 0,

2. un’ellisse se b2 − ac < 0,

3. una parabola se b2 − ac = 0.
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 7

Si tratta di una classificazione non univoca perchè se i coefficienti a, b, c dipen-


dono da x e y allora il tipo di equazione dipende dal dominio dell’equazione.
Per esempio, considerando l’equazione del secondo ordine:

y(x2 + 1)uxx + (x2 − 1)uyy + 3x + y = 0

con (x, y) ∈ Ω ⊂ R2 risulta

∆ = −y(x2 − 1)(x2 + 1)

e la situazione è schematizzata nel seguente grafico, in cui lungo le rette


rosse l’equazione è parabolica, nella zona verde è iperbolica, mentre nella
zona arancio è ellittica.
y
x = −1 x=1

Ovviamente questo tipo di classificazione presenta anche un altro problema,


in quanto consente di riconoscere solo equazioni alle derivate parziali del
secondo ordine. Un modo indubbiamente migliore, e sicuramente univoco,
per classificare un’equazione alle derivate parziali è quello di farlo in base
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 8

al tipo di fenomeno che essa descrive. Le equazioni alle derivate parziali


possono essere divise sommariamente in due tipi: equazioni stazionarie, in
cui tutte le variabili sono spaziali, ed equazioni di evoluzione, le quali pre-
sentano una derivazione sia rispetto allo spazio che rispetto al tempo. Le
equazioni di evoluzione rappresentano modelli matematici di fenomeni fisici
che subiscono variazioni nel tempo e sono molto importanti nella descrizione
dei fenomeni ondulatori, termodinamici, nei processi di diffusione e nella di-
namica delle popolazioni. Le equazioni alle derivate parziali, come detto
in precedenza, vengono anche classificate in ellittiche, paraboliche ed iper-
boliche. Le equazioni ellittiche sono di tipo stazionario mentre le paraboliche
e le iperboliche sono equazioni di evoluzione. Le equazioni di evoluzione
possono essere viste come delle equazioni differenziali ordinarie senza vari-
abili spaziali, infatti uno dei metodi più efficaci per risolvere le equazioni di
evoluzione è quello di approssimarle con un sistema di equazioni differenziali
ordinarie. Questo tipo di classificazione può essere ulteriormente raffinato
considerando altre classi di fenomeni fisici, per esempio i cosiddetti Problemi
di avvezione che descrivono il moto di masse gassose (e che sono particolar-
mente utilizzati nella descrizione di fenomeni meteorologici).
Volendo classificare le equazioni introdotte in precedenza si può osservare che

• L’equazione di Laplace

∂2u ∂2u
+ = 0.
∂x2 ∂y 2

è Stazionaria ed Ellittica (∆ = −1);

• L’equazione di Poisson

∂ 2u ∂ 2u
+ = ρ(x, y)
∂x2 ∂y 2

è Stazionaria ed Ellittica (∆ = −1);

• L’equazione d’onda

∂ 2u ∂ 2u
− µ 2 = 0, µ>0
∂x2 ∂t
è di Evoluzione ed Iperbolica (∆ = µ);
CAPITOLO 1. EQUAZIONI ALLE DERIVATE PARZIALI 9

• L’equazione di diffusione

∂ 2 u ∂u
κ − = 0,
∂x2 ∂t
è di Evoluzione e Parabolica (∆ = 0);

• L’equazione di Burgers
∂u ∂u
+u = 0, (1.2)
∂t ∂x
è di Evoluzione, ed ha numerose applicazioni in idrodinamica e gasdi-
namica e nello studio delle onde acustiche.

Anche se l’ultimo tipo di equazione non rientra nella classificazione vista in


precedenza (infatti non è del secondo ordine), si può verificare che è di tipo
Iperbolico, in quanto può essere riscritta nel seguente modo:
 2
∂2u 2
2∂ u ∂u ∂u ∂u
2
−u 2
+ −u = 0. (1.3)
∂t ∂x ∂t ∂x ∂x

Infatti derivando (1.2) rispetto a x e a t si ottiene:


2
∂2u ∂ 2u

∂u
+ +u =0
∂x∂t ∂x ∂x2
e
∂ 2 u ∂u ∂u ∂2u
+ + u = 0.
∂t2 ∂t ∂x ∂t∂x
Ricavando la derivata mista dalla prima equazione e sostituendo il valore
nella seconda si ottiene la relazione (1.3). In questo caso ∆ = u2 , da cui
segue che l’equazione è appunto iperbolica (purchè u 6= 0).
Capitolo 2

Derivazione numerica

2.1 Introduzione
I metodi per la risoluzione numerica di equazioni alle derivate parziali che
saranno descritti nei prossimi capitoli sono detti Metodi alle differenze finite
e sono basati sull’approssimazione discreta delle derivate parziali che com-
paiono nell’equazione. In questo capitolo affronteremo quindi il problema
relativo all’approssimazione delle derivate prima e seconda di una funzione
in un punto del dominio utilizzando opportune combinazioni lineari tra i
valori assunti dalla funzione in tale punto e in altri punti ad esso adiacenti.
Nei successivi paragrafi considereremo il caso di una funzione in una singola
variabile. Per semplicità supponiamo che tale funzione, f (t), sia continua
e differenziabile in un intervallo [a, b] fino ad un opportuno ordine k. In-
izialmente considereremo il caso in cui l’intervallo [a, b] sia stato suddiviso
in un insieme di sottointervalli di uguale ampiezza (griglia uniforme), per
poi considerare il caso in cui la funzione sia nota in un insieme di punti non
equidistanti (griglia non uniforme). Nei capitoli successivi sarà descritto l’u-
so di tali approssimazioni per le derivate parziali di funzioni definite su un
insieme Ω ⊂ R2 (oppure Ω ⊂ R3 ).

2.2 Approssimazione discreta delle derivate


Come detto in precedenza supponiamo che f ∈ C k ([a, b]) e suddividiamo
l’intervallo di variabilità di t in sottointervalli di ampiezza h. Consideriamo
tre punti consecutivi appartenenti a tale reticolazione, rispettivamente ti−1 ,

10
CAPITOLO 2. DERIVAZIONE NUMERICA 11

ti e ti+1 tali che


ti−1 = ti − h, ti+1 = ti + h.
Scriviamo lo sviluppo in serie di Taylor di f (ti+1 ) prendendo come punto
iniziale ti :

h2 ′′ h3 h4
f (ti+1 ) = f (ti ) + hf ′ (ti ) + f (ti ) + f ′′′ (ti ) + f iv (ξi ), ξi ∈ [ti , ti+1 ]
2 6 24
e procediamo in modo analogo per f (ti−1 ):

h2 ′′ h3 h4
f (ti−1 ) = f (ti ) − hf ′ (ti ) + f (ti ) − f ′′′ (ti ) + f iv (ηi ), ηi ∈ [ti−1 , ti ].
2 6 24
Sommiamo ora le due espressioni

h4  iv
f (ti+1 ) + f (ti−1 ) = 2f (ti ) + h2 f ′′ (ti ) + f (ξi ) + f iv (ηi )

24
ricavando
f (ti+1 ) − 2f (ti ) + f (ti−1 ) h2  iv iv
f ′′ (ti ) =

− f (ξi ) + f (η i )
h2 24
e, trascurando l’ultimo termine, l’approssimazione della derivata seconda è:

f (ti+1 ) − 2f (ti ) + f (ti−1 )


f ′′ (ti ) ≃ (2.1)
h2
mentre si può provare che l’errore vale:

h2 iv
E(f ′′ (ti )) = − f (ξ), ξ ∈ [ti−1 , ti+1 ].
12
Nel seguente grafico viene evidenziata l’interpretazione geometrica della for-
mula appena ricavata.
CAPITOLO 2. DERIVAZIONE NUMERICA 12

y = f (t)

ti−1 ti ti+1

Infatti l’approssimazione appena trovata coincide con il valore della deriva-


ta seconda della parabola passante per i punti (ti−1 , f (ti−1 )), (ti , f (ti )) e
(ti+1 , f (ti+1 )).
Infatti scrivendo l’equazione di tale parabola come:
p(t) = a(t − ti )(t − ti−1 ) + b(t − ti−1 ) + c
risulta
c = f (ti−1 )

f (ti ) − f (ti−1 )
b =
h
f (ti+1 ) − 2f (ti ) + f (ti−1 )
a =
2h2
e la proprietà segue poichè:
f (ti+1 ) − 2f (ti ) + f (ti−1 )
p′′ (t) = 2a = .
h2
Poniamoci il problema di approssimare derivata prima e procediamo nello
stesso modo cioè scrivendo le serie di Taylor per f (ti+1 ) e f (ti−1 ) :

′ h2 ′′ h3 ′′′
f (ti+1 ) = f (ti ) + hf (ti ) + f (ti ) + f (σi ), σi ∈ [ti , ti+1 ]
2 6
CAPITOLO 2. DERIVAZIONE NUMERICA 13

h2 ′′ h3
f (ti−1 ) = f (ti ) − hf ′ (ti ) +
f (ti ) − f ′′′ (µi ), µi ∈ [ti−1 , ti ]
2 6
e questa volta sottraiamo la seconda dalla prima:

h3 ′′′
f (ti+1 ) − f (ti−1 ) = 2hf ′ (ti ) + [f (σi ) + f ′′′ (µi )]
6
ottenendo
f (ti+1 ) − f (ti−1 ) h2 ′′′
f ′ (ti ) = − [f (σi ) + f ′′′ (µi )]
2h 12
e, trascurando l’ultimo termine, l’approssimazione della derivata prima è:

f (ti+1 ) − f (ti−1 )
f ′ (ti ) ≃ (2.2)
2h
mentre si può provare che l’errore vale:

h2 ′′′
E(f ′ (ti )) = − f (δ), δ ∈ [ti−1 , ti+1 ].
6

f (ti+1 ) − f (ti−1 )
m=
2h

y = f (t)

ti−1 ti ti+1

La formula (2.2) prende il nome di formula alle differenze centrali. Osservi-


amo che sia per questa che per l’approssimazione numerica per la derivata
CAPITOLO 2. DERIVAZIONE NUMERICA 14

seconda l’errore dipende da h2 , sono formule cioè del secondo ordine. Vedi-
amo ora altre due approssimazioni per la derivata prima. Infatti possiamo
anche scrivere:
h2 ′′
f (ti+1 ) = f (ti ) + hf ′ (ti ) + f (ξi ), ξi ∈ [ti , ti+1 ]
2
da cui si ricava immediatamente la formula alle differenze in avanti:
f (ti+1 ) − f (ti )
f ′ (ti ) ≃ (2.3)
h
con errore
h
E(f ′ (ti )) = − f ′′ (ξi ).
2

f (ti+1 ) − f (ti )
m=
h

y = f (t)

ti−1 ti ti+1

Analogamente si ricava

′ h2 ′′
f (ti−1 ) = f (ti ) − hf (ti ) + f (µi ), µi ∈ [ti−1 , ti ]
2
da cui si ricava immediatamente la formula alle differenze all’indietro:
f (ti ) − f (ti−1 )
f ′ (ti ) ≃ (2.4)
h
CAPITOLO 2. DERIVAZIONE NUMERICA 15

con errore
h
E(f ′ (ti )) = − f ′′ (µi ).
2
Queste due formule hanno ordine 1, quindi sono meno precise rispetto al-
la formula alle differenze centrali, tuttavia hanno il pregio di poter essere
applicate quando la derivata prima è discontinua in ti .

f (ti ) − f (ti−1 )
m=
h

y = f (t)

ti−1 ti ti+1

2.3 Approssimazioni di ordine superiore e di


derivate di grado superiore
Per determinare approssimazioni di ordine superiore per le derivate prima e
seconda di una funzione di variabile reale è necessario aumentare il numero
di punti che sono coinvolti. A puro titolo di esempio calcoliamo un’approssi-
mazione per la derivata seconda in ti che coinvolge due a punti a destra e due
a sinistra (quindi in tutto 5 punti). Il modo di procedere risulta ovviamente
molto più complesso e sicuramente meno intuitivo rispetto a quanto visto
finora. Si vogliono determinare i coefficienti della seguente relazione

f ′′ (ti ) ≃ αf (ti−2 ) + βf (ti−1 ) + γf (ti ) + δf (ti+1 ) + εf (ti+2 ) (2.5)


CAPITOLO 2. DERIVAZIONE NUMERICA 16

in modo tale che l’approssimazione a sinistra abbia l’ordine p voluto, cioè


risulti:

f ′′ (ti ) = αf (ti−2 ) + βf (ti−1 ) + γf (ti ) + δf (ti+1 ) + εf (ti+2 ) + chp f (p) (ηi )

con ηi ∈]ti−2 , ti+2 [. Scriviamo ora gli sviluppi in serie di Taylor rispetto al
punto ti dei valori che compaiono in (2.5):
4h3 ′′′ 2h4 iv 4h5 v
f (ti±2 ) = f (ti ) ± 2hf ′ (ti ) + 2h2 f ′′ (ti ) ± f (ti ) + f (ti ) ± f (σi )
3 3 15
(2.6)
2 3 4 5
h h h h
f (ti±1 ) = f (ti )±hf ′ (ti )+ f ′′ (ti )± f ′′′ (ti )+ f iv (ti )± f v (µi ). (2.7)
2 6 24 120
Sostituendo (2.6) e (2.7) in (2.5) e raccogliendo i termini con il medesimo
ordine di derivata si deve imporre che il risultato abbia nulli i coefficienti
dei termini differenziali di ordine 0,1,3 e 4, mentre quello di ordine 2 deve
essere uguale a 1. In questo modo si arriva ad ottenere un sistema di cinque
equazioni nelle cinque incognite:
α +β +γ +δ +ε = 0






−2hα −hβ +hδ +2hε = 0







 2 2
2h2 α + h2 β + h2 δ +2h2 ε = 1



3 3

− 34 h3 α − h6 β + h6 δ + 34 h3 ε = 0








 2 4 4 4
3
hα + h24 β + h24 δ + 23 h4 ε = 0
che ammette come soluzione
1 5 4
α=ε=− , γ=− , β=δ=
12h2 2h2 3h2
che consente di ottenere la seguente approssimazione
 
′′ 1 1 4 5 4 1
f (ti ) ≃ 2 − f (ti−2 ) + f (ti−1 ) − f (ti ) + f (ti+1 ) − f (ti+2 )
h 12 3 2 3 12
(2.8)
con un errore
E(f ′′ (ti )) = ch4 f (vi) (ξi ), c ∈ R,
CAPITOLO 2. DERIVAZIONE NUMERICA 17

e pertanto di ordine 4, purchè f (t) sia una funzione di classe C vi ([a, b]).
Anche per la derivata prima è possibile ricavare approssimazioni discrete di
ordine maggiore coinvolgendo un numero di punti superiore. Consideriamo i
seguenti sviluppi in serie di Taylor:
h2 ′′ h3
f (ti+1 ) = f (ti ) + hf ′ (ti ) + f (ti ) + f ′′′ (ηi ) (2.9)
2 6
4
f (ti+2 ) = f (ti ) + 2hf ′ (ti ) + 2h2 f ′′ (ti ) + h3 f ′′′ (σi ) (2.10)
3
Moltiplicando (2.9) per 4 e sottraendo la (2.10) si ottiene
2 4
4f (ti+1 ) − f (ti+2 ) = 3f (ti ) + 2hf ′ (ti ) + h3 f ′′′ (ηi ) − h3 f ′′′ (σi ),
3 3
che consente di ottenere la seguente approssimazione
4f (ti+1 ) − 3f (ti ) − f (ti+2 )
f ′ (ti ) ≃ (2.11)
2h
con errore
2
E(f ′′ (ti )) = h2 [f ′′′ (ηi ) − 2f ′′′ (σi )] ,
3
da cui segue che la formula ha ordine 2.
Procedendo come per la (2.8) e prendendo 2 punti a sinistra di ti e uno a
destra, si può ottenere, per la derivata prima, la seguente approssimazione
di ordine 3:
f (ti−2 ) − 6f (ti−1 ) + 3f (ti ) + 2f (ti+1 )
f ′ (ti ) ≃ , (2.12)
6h
e la seguente di ordine 4:
f (ti−2 ) − 8f (ti−1 ) + 8f (ti+1 ) − f (ti+2 )
f ′ (ti ) ≃ .
12h
Come esempio si riporta nella seguente tabella l’errore che si commette
approssimando il valore della derivata prima della funzione

f (x) = log x

in x = 4, utilizzando le formule introdotte in questo paragrafo e per valori di


h decrescenti. Si osservi come la diminuzione dell’errore rispetto al valore di
h sia molto più accentuata per le formule di ordine più elevato.
CAPITOLO 2. DERIVAZIONE NUMERICA 18

h (2.2) (2.3) (2.4) (2.11) (2.12)


1 5.41E − 3 2.69E − 2 3.77E − 2 6.45E − 3 3.46E − 3
0.5 1.31E − 3 1.44E − 2 1.71E − 2 2.01E − 3 3.09E − 4
0.25 3.26E − 4 7.50E − 3 8.15E − 3 5.69E − 4 3.40E − 5
0.1 5.21E − 5 3.07E − 3 3.18E − 3 9.86E − 5 2.04E − 6
0.01 5.21E − 7 3.18E − 3 3.13E − 4 1.04E − 6 1.96E − 9
0.005 1.30E − 7 1.56E − 4 1.56E − 4 2.60E − 7 2.45E − 10

Nella seguente tabella sono riportati gli errori commessi nell’approssimazione


della derivata seconda per la stessa funzione f (x) = log x, in x = 4.

h (2.1) (2.8)
1 2.0385E − 3 4.2214E − 4
0.5 4.9343E − 4 2.1603E − 5
0.25 1.2239E − 4 1.2904E − 6
0.1 1.9539E − 5 3.2629E − 8
0.01 1.9531E − 7 4.9546E − 12
0.005 4.8825E − 8 1.4567E − 13

Approssimazione di derivate di ordine superiore


Per motivi di completezza citiamo al termine di questo paragrafo alcune
approssimazioni di derivate di ordine superiore al secondo. In particolare per
la derivata terza possiamo ottenere la seguente approssimazione, di ordine 2:

f (ti+2 ) − 2f (ti+1 ) + 2f (ti−1 ) − f (ti−2 )


f ′′′ (ti ) ≃ .
2h3
Per quello che riguarda la derivata quarta la seguente approssimazione

f (ti+2 ) − 4f (ti+1 ) + 6f (ti ) − 4f (ti−1 ) + f (ti−2 )


f iv (ti ) ≃
h4
ha ordine 2. Bisogna considerare che, in realtà, tali approssimazioni ven-
gono utilizzate piuttosto raramente poichè le equazioni alle derivate parziali
che consideremo nel seguito, e che sono quelle incontrate più spesso nelle
applicazioni, sono al più del secondo ordine.
CAPITOLO 2. DERIVAZIONE NUMERICA 19

2.4 Approssimazione delle derivate su griglie


non uniformi
Su griglie non uniformi l’approssimazione della derivata prima è piuttosto
semplice. Infatti supponendo di conoscere i valori (ti − h1 , f (ti − h1 )) e
(ti + h2 , f (ti + h2 )) la derivata prima in ti può essere approssimata con il
coefficiente angolare della retta che passa per tali punti:
f (ti + h2 ) − f (ti − h1 )
f ′ (ti ) ≃
h1 + h2
Consideriamo, a puro titolo di esempio, il problema di approssimare la deriva-
ta seconda della funzione f (t) nel punto di ascissa ti ma considerando i valori
della funzione nei punti non equidistanti ti −h e ti +sh, con 0 < s < 1. Svilup-
piamo in serie di Taylor la funzione nel punto ti + sh prendendo come punto
iniziale ti
s2 h2 ′′ s3 h3 ′′′
f (ti + sh) = f (ti ) + shf ′ (ti ) + f (ti ) + f (ξi ), ξi ∈ [ti , ti + sh]
2 6
e procediamo in modo analogo per f (ti−1 ):
h2 ′′ h3
f (ti−1 ) = f (ti ) − hf ′ (ti ) + f (ti ) − f ′′′ (ηi ), ηi ∈ [ti−1 , ti ].
2 6
Moltiplichiamo per s quest’ultima espressione
sh2 ′′ sh3 ′′′
sf (ti−1 ) = sf (ti ) − shf ′ (ti ) + f (ti ) − f (ηi )
2 6
e sommiamola con quella di f (ti + sh):
h2 ′′ sh3  2 ′′′
s f (ξi ) − f ′′′ (ηi )

f (ti +sh)+sf (ti−1 ) = f (ti )(1+s)+ f (ti )s(1+s)+
2 6
ricavando
f (ti + sh) − f (ti )(1 + s) + sf (ti−1 ) h 2 ′′′
f ′′ (ti ) = 2
 ′′′ 
+ f (η i ) − s f (ξi )
sh2 (1 + s) 3(1 + s)
e, trascurando l’ultimo termine, l’approssimazione della derivata seconda è:
f (ti + sh) − f (ti )(1 + s) + sf (ti−1 )
f ′′ (ti ) ≃ 2 (2.13)
sh2 (1 + s)
CAPITOLO 2. DERIVAZIONE NUMERICA 20

mentre l’errore vale:


h
E(f ′′ (ti )) = f (ηi ) − s2 f ′′′ (ξi ) .
 ′′′ 
3(1 + s)

Volendo ottenere un’approssimazione più accurata si può utilizzare la se-


guente formula, della quale si omette la dimostrazione, che utilizza l’ulteriore
valore f (ti−2 ) ma è di ordine 2:
 
′′ 1 s−1 2(2 − s) 3−s 6f (ti + sh)
f (ti ) ≃ 2 f (ti−2 ) + f (ti−1 ) − f (ti ) + .
h s+2 s+1 s s(s + 1)(s + 2)
Capitolo 3

Equazioni ellittiche

3.1 L’equazione di Laplace


Vediamo ora di descrivere una tecnica per la risoluzione numerica della più
elementare equazione ellittica lineare, l’equazione di Laplace:

uxx + uyy = 0, (3.1)

ovvero
∂ 2u ∂ 2u
△u ≡ + = 0.
∂x2 ∂y 2
Se una funzione u(x, y) è di classe C 2 in un determinato sottoinsieme Ω ⊆ R2
ed è una soluzione di (3.1) nello stesso Ω allora prende il nome di funzione
armonica. L a principale proprietà di queste funzioni è enunciata nel seguente
teorema.
Teorema 3.1.1 (Principio del massimo) Sia Ω una regione limitata e
semplicemente connessa e sia Γ la sua frontiera. Sia Ω = Ω ∪ Γ. Se u(x, y) è
armonica su Ω e continua su Ω, allora u(x, y) assume il suo valore massimo
su Γ.
L’equazione di Laplace può essere associata ad un problema di Dirichlet
quando, assegnata una funzione f (x, y) di classe C 2 (Γ) si cerca una funzione
u(x, y) tale che:
1. u(x, y) è continua su Ω ∪ Γ;
2. u(x, y) = f (x, y) per ogni (x, y) ∈ Γ;

21
CAPITOLO 3. EQUAZIONI ELLITTICHE 22

3. u(x, y) è armonica in Ω.
In alternativa si può imporre la cosiddetta condizione di Neumann in cui, al
posto della condizione 2., si impone che sia
∂u
= f (x, y)
∂n
cioè sia assegnata la derivata normale di u(x, y) rispetto alla curva Γ. Ricor-
diamo che se nT = (nx , ny ), è il vettore normale allora
∂u ∂u ∂u
= nx + ny .
∂n ∂x ∂y
Consideriamo ora la risoluzione dell’equazione di Laplace prendendo Ω uguale
al rettangolo [a, b] × [c, d], con b > a e d > c. In questo caso un metodo
è quello di approssimare l’operatore differenziale dopo avere discretizzato
l’insieme Ω. Innanzitutto si suddivide l’intervallo [a, b] in N parti uguali,
ognuna di ampiezza
b−a
h=
N
per poi porre x0 = a, e
xi = xi−1 + k = a + ih i = 1, 2, . . . , N.
Lo stesso procedimento si segue per le ordinate suddividendo l’intervallo [c, d]
in M parti uguali, ciascuna di ampiezza
d−c
k=
M
per poi porre y0 = c, e
yj = yj−1 + h = c + jk j = 1, 2, . . . , M.
In questo modo si ottiene l’insieme discreto di punti del piano
RN +1,M +1 = (xi , yj ) ∈ R2 |xi = a + ih, i = 0, N, yj = c + jk, j = 0, M .


La risoluzione numerica del problema di Dirichlet associato consiste nell’ap-


prossimare opportunamente la funzione u(x, y) nei punti appartenenti all’in-
sieme RN +1,M +1 , tenendo presente che la soluzione è nota sul perimetro del
rettangolo [a, b] × [c, d]. L’insieme discretizzato è evidenziato nella seguente
figura.
CAPITOLO 3. EQUAZIONI ELLITTICHE 23

O a b x

3.2 Il metodo a 5 punti per l’equazione di


Laplace
L’idea alla base del metodo a 5 punti è quella di approssimare le derivate
parziali seconde nei punti del reticolo RN +1,M +1 e imporre che tali approssi-
mazioni soddisfano l’equazione di Laplace. Poniamo innanzitutto
ui,j ≃ u(xi , yj ), i = 0, 1, . . . , N, j = 0, 1, . . . , M
e, per approssimare la derivata parziale seconda uxx (xi , yj ), consideriamo i
seguenti 3 punti del reticolo (xi−1 , yj ), (xi , yj ) e (xi+1 , yj ) e, applicando la
formula (2.1) supponendo costante il valore yj , risulta:
∂ 2u ui+1,j − 2ui,j + ui−1,j
2
(xi , yj ) ≃ .
∂x h2
Analogamente per approssimare uyy (xi , yj ) consideriamo i seguenti 3 pun-
ti del reticolo (xi , yj−1 ), (xi , yj ) e (xi , yj+1 ) e, applicando la formula (2.1),
risulta:
∂ 2u ui,j+1 − 2ui,j + ui,j−1
2
(xi , yj ) ≃ .
∂y k2
CAPITOLO 3. EQUAZIONI ELLITTICHE 24

Adesso possiamo imporre che queste approssimazioni soddisfano l’equazione


di Laplace
ui+1,j − 2ui,j + ui−1,j ui,j+1 − 2ui,j + ui,j−1
+ =0
h2 k2
(ui+1,j − 2ui,j + ui−1,j )k 2 + (ui,j+1 − 2ui,j + ui,j−1 )h2 = 0.
Il metodo a cinque punti assume quindi la forma finale

h2 ui,j−1 + k 2 ui−1,j − 2(h2 + k 2 )ui,j + k 2 ui+1,j + h2 ui,j+1 = 0

con i = 1, . . . , N − 1, e j = 1, . . . , M − 1.
Tenendo presente che la funzione u(x, y) è nota sul bordo del rettangolo
alcune delle approssimazioni non devono essere calcolate, infatti:

u0,j = u(x0 , yj ) = u(a, yj ) = f (a, yj ), j = 0, . . . , M


ui,0 = u(xi , y0 ) = u(xi , c) = f (xi , c), i = 0, . . . , N
uN,j = u(xN , yj ) = u(b, yj ) = f (b, yj ), j = 0, . . . , M
ui,M = u(xi , yM ) = u(xi , d) = f (xi , d), i = 0, . . . , N.

Lo schema numerico è sintetizzato nel seguente stencil:

h2

k2 −2(h2 + k 2 ) k2

h2
CAPITOLO 3. EQUAZIONI ELLITTICHE 25

3.2.1 Ordinamento delle incognite


Le relazioni che legano le incognite ui,j formano un sistema lineare la cui
struttura dipende dal modo con cui vengono ordinate tali incognite. Un
primo modo di riordinare le incognite ui,j è quello di porre

uT = (u1,1 , u2,1 , . . . , uN −1,1 , u1,2 , . . . , uN −1,2 , . . . , u1,M −1 , . . . , uN −1,M −1 )

ed è schematizzato dal seguente grafico.

25 26 27 28 29 30 31 32

17 18 19 20 21 22 23 24

9 10 11 12 13 14 15 16

1 2 3 4 5 6 7 8

Tale ordinamento prende il nome di Ordinamento naturale (o lessicografico).


Si inizia quindi dal punto (x1 , y1 ), che viene numerato con 1, e si procede verso
destra. Appena terminata la riga si passa a quella superiore, si considera
il punto (x1 , y2 ) e cosı̀ via. La prima equazione (cioè quella per la prima
incognita) si ottiene quindi per i = j = 1:

k 2 u1,0 + h2 u0,1 − 2(h2 + k 2 )u1,1 + h2 u2,1 + k 2 u1,2 = 0

equivalente a

−2(h2 + k 2 )u1,1 + h2 u2,1 + k 2 u1,2 = −k 2 u1,0 − h2 u0,1 ,

in quanto ogni volta che una delle relazioni coinvolge un punto sulla fron-
tiera dell’insieme tale valore, essenco noto, contribuisce al termine noto del
CAPITOLO 3. EQUAZIONI ELLITTICHE 26

sistema.
La seconda equazione si ottiene per i = 2 e j = 1:

k 2 u2,0 + h2 u1,1 − 2(h2 + k 2 )u2,1 + h2 u3,1 + k 2 u2,2 = 0

equivalente a

h2 u1,1 − 2(h2 + k 2 )u2,1 + h2 u3,1 + k 2 u2,2 = −k 2 u2,0 .

L’equazione relativa alla generica incognita di posto (i, j) ha al più 5 coef-


ficienti diversi da 0: 3 relativi alle 3 incognite numerate consecutivamente
(i − 1, j), (i, j) e (i + 1, j), uno relativo ad una precedente, (i, j − 1), e uno
ad una successiva (i, j + 1), numerate rispettivamente N − 1 prima ed N − 1
dopo. Per ottenere le approssimazioni è quindi necessario risolvere un sistema
lineare
Au = b
che ha la seguente struttura tridiagonale a blocchi
 
T J
 J T J 
 
A=
 . . . . . . . . .


 
 J T J 
J T

dove J = k 2 IN −1 , essendo IN −1 è la matrice identità di ordine N − 1, e T è


la seguente matrice tridiagonale di dimensione N − 1:
 
−2(h2 + k 2 ) h2

 h2 −2(h2 + k 2 ) h2 

T =
 . . . . . . . . . .

2 2 2 2
 
 h −2(h + k ) h 
2 2 2
h −2(h + k )

Nella Figura 3.1 è riportata la struttura della matrice nel caso della griglia
riportata come esempio in precedenza. Il sistema lineare da risolvere ha
una struttura molto sparsa: se indichiamo con n la sua dimensione (n =
(M − 1)(N − 1)) poco meno di 5n elementi sono diversi da zero su n2 ele-
menti della matrice dei coefficienti. Questo significa che il sistema può essere
CAPITOLO 3. EQUAZIONI ELLITTICHE 27

risolto in modo più efficiente utilizzando i cosiddetti metodi iterativi (vedere


Capitolo 7) e non diretti (tipo fattorizzazione LU ) che distruggerebbero la
struttura sparsa della matrice. Come esempio di questa affermazione nella
Figura 3.2 riportiamo la struttura della matrice triangolare superiore U della
fattorizzazione LU di A, come si può osservare ha ben 231 elementi diversi
da zero (da confrontare con i 136 di A).

Ordinamento Lessicografico
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 136

Figura 3.1: Struttura della matrice dei coefficienti per l’ordinamento


Lessicografico

L’ordinamento lessicografico non è l’unico modo di numerare le incognite del


sistema lineare in oggetto, altri sono:

1. Ordinamento Cuthill-McKee;

2. Ordinamento Red-Black;

3. Ordinamento Multicolore.
CAPITOLO 3. EQUAZIONI ELLITTICHE 28

Ordinamento Lessicografico−Fattore U
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 231

Figura 3.2: Struttura del fattore triangolare U per la matrice dei coefficienti
definita dall’ordinamento Lessicografico

Nell’ordinamento Cuthill-McKee, proposto nel 1969, si ordinano le incognite


partendo da un punto fissato e numerando i punti adiacenti in modo tale da
privilegiare quelli che si trovano lungo una determinata direzione (di solito
quella diagonale); se non ce ne sono si prende un altro nodo adiacente (o quel-
lo a destra oppure quello in alto) e si prosegue. La tecnica è schematizzata
nel seguente grafico.
CAPITOLO 3. EQUAZIONI ELLITTICHE 29

Ordinamento di Cuthill-McKee

10 11 18 19 26 27 31 32

4 9 12 17 20 25 28 30

3 5 8 13 16 21 24 29

1 2 6 7 14 15 22 23

L’obiettivo di questo ordinamento è quello di diminuire l’ampiezza di banda


della matrice. Infatti in Figura 3.3 è visualizzata la struttura della matrice A
con tale ordinamento mentre la Figura 3.4 mostra la struttura della matrice
U triangolare superiore. Osserviamo come il numero di elementi diversi da
zero sia piuttosto basso (148) rispetto al caso precedente.
Altri due ordinamenti, cui accenniamo per motivi di completezza prevedono
che i nodi vengano suddivisi (colorati) in due (o più) tipi. Nell’ordinamen-
to Red-Black sono divisi in rossi e neri, in modo tale che due nodi adiacenti
abbiano colori diversi. Finita la colorazione i nodi sono numerati usando l’or-
dinamento lessicografico applicato ad un colore per volta, come si evidenzia
nel seguente schema.
CAPITOLO 3. EQUAZIONI ELLITTICHE 30

Ordinamento Cuthill−McKee
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 136

Figura 3.3: Struttura della matrice dei coefficienti per l’ordinamento Cuthill-
McKee

Ordinamento di Red-Black

29 13 30 14 31 15 32 16

9 25 10 26 11 27 12 28

21 5 22 6 23 7 24 8

1 17 2 18 3 19 4 20
CAPITOLO 3. EQUAZIONI ELLITTICHE 31

Ordinamento Cuthill−McKee−Fattore U
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 148

Figura 3.4: Struttura del fattore triangolare U per la matrice dei coefficienti
definita dall’ordinamento Cuthill-McKee

In Figura 3.5 è visualizzata la struttura della matrice A con tale ordinamento


mentre la Figura 3.6 mostra la struttura della matrice U triangolare superi-
ore. Osserviamo come il numero di elementi diversi da zero (170) sia più alto
rispetto all’ordinamento Cuthill-McKee ma inferiore rispetto all’ordinamento
lessicografico.
L’ordinamento multicolore è uguale al Red-Black ma si usano più colori, soli-
tamente 4 o 6, e comunque un numero pari. I nodi sono ordinati colorandoli
in sequenza uno di ogni colore diverso, mentre per la riga successiva si parte
dalla coppia di colori successiva, in modo tale che su ogni colonna ci siano
solo due colori. Nella figura seguente vediamo un esempio con 4 colori.
CAPITOLO 3. EQUAZIONI ELLITTICHE 32

Ordinamento Red−Black
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 136

Figura 3.5: Struttura della matrice dei coefficienti per l’ordinamento Red-
Black

Ordinamento Multicolore con 4 colori

23 31 7 15 24 32 8 16

5 13 21 29 6 14 22 30

19 27 3 11 20 28 4 12

1 9 17 25 2 10 18 26
CAPITOLO 3. EQUAZIONI ELLITTICHE 33

Ordinamento Red−Black−Fattore U
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 170

Figura 3.6: Struttura del fattore triangolare U per la matrice dei coefficienti
definita dall’ordinamento Red-Black

Nel caso in cui i colori siano sei il primo colore della seconda riga coincide
con il quarto della sequenza, cosicchè sulla stessa colonna siano accoppiati
sempre il primo ed il quarto, il secondo con il quinto ed il terzo con il sesto.
Se sono otto allora i colori accoppiati sono il primo con il quinto, il secondo
con il sesto e cosı̀ via.
In Figura 3.7 è visualizzata la struttura della matrice A con tale ordinamento
mentre la Figura 3.8 mostra la struttura della matrice U triangolare superi-
ore. Osserviamo come il numero di elementi diversi da zero (191) sia più alto
rispetto agli ordinamenti Cuthill-McKee e Red-Black ma inferiore rispetto
all’ordinamento lessicografico.
Se il dominio è quadrato, oppure si può scegliere h = k, l’espressione del
metodo a 5 punti si semplifica:

ui,j−1 + ui−1,j − 4ui,j + ui+1,j + ui,j+1 = 0


CAPITOLO 3. EQUAZIONI ELLITTICHE 34

Ordinamento Multicolor
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 136

Figura 3.7: Struttura della matrice dei coefficienti per l’ordinamento a 4


colori

e gli elementi della matrice A sono indipendenti da h e k:


 
T IN −1
 IN −1 T IN −1 
 
A=
 ... ... ... 

 
 IN −1 T IN −1 
IN −1 T
CAPITOLO 3. EQUAZIONI ELLITTICHE 35

Ordinamento Multicolor−Fattore U
0

10

15

20

25

30

0 5 10 15 20 25 30
nz = 191

Figura 3.8: Struttura del fattore triangolare U per la matrice dei coefficienti
definita dall’ordinamento Multicolore con 4 colori

dove IN −1 è la matrice identità di ordine N − 1 e T è la seguente matrice


tridiagonale di dimensione N − 1:
 
−4 1
 1 −4 1 
 
T =
 ... ... ... .

 
 1 −4 1 
1 −4

Esercizio. Ordinare le incognite dell’equazione di Laplace con condizione di


Dirichlet definita nel dominio in figura utilizzando gli ordinamenti lessicogra-
fico e Red-Black. Supponendo di risolvere l’equazione applicando il metodo
a 5 punti schematizzare, a fianco del dominio, la struttura della matrice dei
coefficienti del relativo sistema lineare.
CAPITOLO 3. EQUAZIONI ELLITTICHE 36

Ordinamento Lessicografico

17 18

15 16

13 14

7 8 9 10 11 12

1 2 3 4 5 6
CAPITOLO 3. EQUAZIONI ELLITTICHE 37

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Ordinamento Red-Black

9 18

17 8

7 16

13 4 14 5 15 6

1 10 2 11 3 12
CAPITOLO 3. EQUAZIONI ELLITTICHE 38

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

3.3 Convergenza del metodo a 5 punti


L’esistenza della soluzione numerica fornita dal metodo a 5 punti è con-
seguenza dell’unicità della soluzione del sistema lineare definito dal metodo.
Più complessa risulta l’analisi dell’errore, cioè la valutazione dell’affidabilità
della soluzione numerica rispetto a quella teorica. Infatti è intuitivo che l’in-
troduzione delle approssimazioni delle derivate parziali è causa di errore nella
soluzione numerica. Supponendo, per semplicità che h = k, allora si dice che
un metodo numerico è convergente se
lim max |u(xi , yj ) − uij | = 0,
h→0 i,j

cioè se la massima differenza tra la soluzione numerica e quella teorica tende


a zero al tendere a zero del passo di discretizzazione. Definiamo il cosiddet-
to errore di troncamento locale come l’errore che si ottiene sostituendo la
soluzione teorica al posto di quella numerica nello schema:
u(xi , yj−1 ) + u(xi−1 , yj ) − 4u(xi , yj ) + u(xi+1 , yj ) + u(xi , yj+1 )
τh (xi , yj ) = .
h2
Condizione necessaria per la convergenza è che il metodo sia consistente,
condizione che si verifica quando l’errore di troncamento locale tende a zero
CAPITOLO 3. EQUAZIONI ELLITTICHE 39

quando h → 0. In questo caso, considerando che la funzione u(x, y) soddisfa


l’equazione di Laplace possiamo scrivere l’errore di troncamento locale come

u(xi−1 , yj ) − 2u(xi , yj ) + u(xi+1 , yj ) ∂ 2 u(xi , yj )



τh (xi , yj ) = − +
h2 ∂x2

u(xi , yj−1 ) − 2u(xi , yj ) + u(xi , yj+1 ) ∂ 2 u(xi , yj )



+ − .
h2 ∂y 2

da cui segue la consistenza del metodo poichè l’errore nell’approssimazione


delle derivate tende a zero quando h → 0. In realtà vale il seguente risultato
da cui segue la convergenza dello schema.

Teorema 3.3.1 Sia u ∈ C 4 (Ω), allora esiste una costante C ∈ R tale che

max |u(xi , yj ) − uij | ≤ CM h2


i,j

dove M è il massimo valore assoluto assunto dalle derivate quarte di u in Ω.

Esempio 3.3.1 Applichiamo il metodo a 5 punti all’equazione di Laplace

uyy + uxx = 0

definita sul rettangolo [0, 4π] × [0, 2] e con condizioni iniziali:

u(x, 0) = 2 sin x, 0 ≤ x ≤ 4π
u(x, 2) = (e2 + e−2 ) sin x, 0 ≤ x ≤ 4π
u(0, y) = 0, 0≤y≤2
u(4π, y) = 0, 0≤y≤2

che ammette come soluzione teorica u(x, t) = sin x(ey + e−y ).


Nella Figura 3.9, viene riportato l’andamento della soluzione numerica pren-
dendo N = M = 20, (il numero di punti della discretizzazione è pari, circa,
a 1600).
CAPITOLO 3. EQUAZIONI ELLITTICHE 40

10

−5

−10
2

1.5

1
14
12
0.5 10
8
6
4
y 0 2
0
x

Figura 3.9: Soluzione dell’equazione di Laplace ottenuta con il metodo a 5


punti.

3.4 Equazione di Laplace su domini non po-


ligonali
L’uso delle differenze divise funziona bene quando il dominio Ω è un rettan-
golo, oppure un quadrato o un poligono che può essere scomposto come un
unione di quadrati o rettangoli. Quando invece il contorno Γ del dominio di
integrazione Ω è un poligono oppure una curva regolare a tratti l’approssi-
mazione delle derivate parziali è piuttosto problematica. Vediamo prima un
caso particolare.
CAPITOLO 3. EQUAZIONI ELLITTICHE 41

3.4.1 Il caso del cerchio unitario


Se il dominio Ω coincide con un cerchio e quindi Γ è una circonferenza, allora
è possibile ricondursi ad un dominio rettangolare. Infatti, supponiamo, per
semplicità, che sia

Γ = (x, y) ∈ R2 : x2 + y 2 = 1


mentre Ω è, ovviamente, il cerchio

Ω = (x, y) ∈ R2 : x2 + y 2 < 1 .


In questo caso il dominio può essere trasformato in un rettangolo cambiando


le coordinate cartesiane in polari:

x = ρ cos θ, y = ρ sin θ.

In coordinate polari il dominio diventa

Ω = (ρ, θ) ∈ R2 : 0 ≤ ρ < 1, 0 ≤ θ < 2π




mentre
Γ = (ρ, θ) ∈ R2 : ρ = 1 .


Per evitare confusione poniamo

v(ρ, θ) = u(ρ cos θ, ρ sin θ).

Nella seguente figura è riportata la corrispondenza tra il dominio circolare in


coordinate cartesiane ed il rettangolo in coordinate polari. Ad ogni circon-
ferenza di raggio r < 1 viene associato un segmento parallelo all’asse θ, di
equazione ρ = r e 0 ≤ θ < 2π. Ad ogni raggio della circonferenza unitaria
viene invece associato un segmento parallelo all’asse ρ, di equazione θ = θ0 ,
ed 0 ≤ ρ ≤ 1, (se θ0 è l’angolo che il raggio forma con l’asse delle ascisse
orientato nel verso positivo).
CAPITOLO 3. EQUAZIONI ELLITTICHE 42

y θ

x ρ
La condizione al contorno è assegnata ovviamente su Γ cioè:

u(x, y) = u(cos θ, sin θ) = f (cos θ, sin θ).

L’equazione di Laplace in coordinate polari diventa


∂2v 1 ∂ 2 v 1 ∂v
+ + = 0.
∂ρ2 ρ2 ∂θ2 ρ ∂ρ
Il problema più delicato riguarda la trasformazione delle condizioni iniziali
in coordinate polari. Il caso più semplice è il segmento ρ = 1 che coincide
con la circonferenza Γ in coordinate cartesiane, quindi

v(1, θ) = f (cos θ, sin θ), 0 ≤ θ ≤ 2π.

I segmenti che si ottengono per 0 < ρ < 1 e θ = 0 e 0 < ρ < 1 e θ = 2π sono


esattamente lo stesso segmento nel cerchio originale. Il valore della funzione
su tale segmento non è noto perciò è necessario assegnare una cosiddetta
condizione di periodicità:

v(r, 0) = v(ρ, 2π), 0 < ρ < 1.


CAPITOLO 3. EQUAZIONI ELLITTICHE 43

L’ultimo segmento da considerare è quello che si ottiene assegnando il valore


ρ = 0, 0 ≤ θ ≤ 2π. L’intero segmento corrisponde ad un unico punto, cioè
l’origine del piano cartesiano. Quindi la funzione v deve essere costante
lungo tale linea e, per esprimere tale condizione imponiamo la condizione di
Neumann:
∂v
(0, θ) = 0.
∂θ
Una volta determinate le condizioni sulla frontiera del dominio nel piano po-
lare è possibile risolvere numericamente l’equazione di Laplace in coordinate
polari usando le approssimazioni alle differenze divise per le derivate parziali.

3.4.2 Il caso di un qualsiasi dominio irregolare


Analizziamo ora il caso in cui la frontiera del dominio Ω sia una curva chiusa
e regolare senza una particolare forma. In questo caso si considera un ret-
tangolo [a, b] × [c, d] tale da contenere sia Ω che Γ e si discretizza tale regione
come già visto in precedenza, definendo l’insieme discreto:

RN +1,M +1 = {(xi , yj ) ∈ [a, b] × [c, d]|i = 0, . . . , N, j = 0, . . . , M } .

O a b x
CAPITOLO 3. EQUAZIONI ELLITTICHE 44

L’insieme dei punti discreti che appartengono sia al rettangolo [a, b] × [c, d]
che al dominio Ω si denota con
Ωhk = RN +1,M +1 ∩ Ω.
Tale insieme viene detto insieme dei punti interni. Ogni punto interno (xi , yj )
ha quattro punti vicini, cioè (xi±1 , yj ) e (xi , yj±1 ).
Un punto vicino ad un punto interno che non appartiene a Ωhk si dice punto
di confine. L’insieme dei punti di confine si indica con Γhk .
I punti angolari sono invece i punti dell’insieme RN +1,M +1 che non sono nè
interni nè di confine, ma risultano essere vertici di una cella che contiene
almeno un punto interno.

t
u

bc rs t
u t
u rs Punti di confine
bc rs t
u t Punti angolari
u

c
b rs bc Punti interni
c
b rs t
u

c
b rs

I punti angolari non hanno alcun ruolo nella soluzione numerica di equazioni
ellittiche. L’ipotesi che si deve fare sulla griglia che si considera è che i
segmenti che congiungono punti interni devono essere interamente contenuti
nel dominio Ω. Si evita cioè il caso evidenziato dal secondo grafico:

(xi , yj ) (xi+1 , yj ) (xi , yj ) (xi+1 , yj )


CAPITOLO 3. EQUAZIONI ELLITTICHE 45

Tale situazione può essere evitata scegliendo opportunamente il passo di


discretizzazione oppure effettuando un opportuno cambio di variabile (per
esempio una rotazione degli assi). Il problema dei domini irregolari sorge
quando nelle approssimazioni delle derivate seconde intervengono valori del-
la funzione calcolati nei punti di confine. Per ovviare a tale inconveniente ci
sono diverse tecniche, due sono le più usate:

1. come valori nei punti di confine si utilizzano gli stessi valori assunti
dalla condizione al contorno;

2. si utilizza il valore della condizione al contorno nel punto sulla curva Γ


più vicino al punto interno.

Nel primo caso, considerando la seguente situazione:

Γ bc (xi , yj+1 )

(xi , yj ) bc bc (xi+1 , yj )

si pone:

u(xi , yj+1 ) = f (xi , yj+1 ), u(xi+1 , yj ) = f (xi+1 , yj ).

Tale assegnazione rappresenta, dal punto di vista matematico, una forzatura,


poichè in realtà non è noto neanche se la funzione f (x, y) sia calcolabile in
tali punti. Nel secondo caso, evidenziato dal seguente grafico, si utilizza il
punto nel quale si conosce il valore della soluzione.
CAPITOLO 3. EQUAZIONI ELLITTICHE 46

bc bc bc

xi − h xi xi + h
xi + sh
Applicando la formula (2.13) si otterrebbe l’approssimazione:

u(xi + sh, yj ) − (1 + s)u(xi , yj ) + su(xi−1 , yj )


uxx (xi + sh, yj ) ≃ 2 .
sh2 (1 + s)

Tale approssimazione risulta essere del primo ordine quindi meno precisa
rispetto all’approssimazione della derivata seconda su punti equidistanti.
Questo risultato ha come conseguenza un’approssimazione numerica meno
precisa in prossimità del contorno del dominio di integrazione.

3.5 Metodi di ordine elevato per equazioni


ellittiche
Consideriamo per semplicità l’equazione ellittica di Poisson

∂2u ∂2u
+ = g(x, y)
∂x2 ∂y 2

definita sul quadrato Ω = [0, 1] × [0, 1].


Il metodo a 5 punti ovviamente può essere applicato anche all’equazione di
Poisson. La matrice dei coefficienti è la stessa che abbiamo visto nel caso
dell’equazione di Laplace, cambia il termine noto del sistema lineare che è
uguale ai valori della funzione g(x, y) calcolata nei punti del dominio discreto.
Avendo definito l’equazione su un quadrato possiamo scegliere un numero di
punti uguale sia per la variabile x che per y (e quindi h = k), ottenendo una
matrice dei coefficienti indipendente dal valore del passo di discretizzazione.
CAPITOLO 3. EQUAZIONI ELLITTICHE 47

Il metodo a 5 punti ha ordine 2 perchè l’errore di discretizzazione dipende


da h2 .
Si possono ottenere metodi di ordine superiore cercando di approssimare in
modo più accurato le derivate parziali seconde.
Utilizzando l’approssimazione (2.8) per le derivate parziali seconde porta al
seguente metodo
1 4 1 4 4
− ui,j−2 + ui,j−1 − ui−2,j + ui−1,j − 5ui,j + ui+1,j +
12 3 12 3 3
1 4 1
−ui+2,j + ui,j+1 − ui,j+2 = h2 g(xi , yj )
12 3 12
Il metodo può essere descritto dal seguente stencil:
1
− 12

4
3

1
− 12 4
3 −5 4
3
1
− 12 uij = h2 g(xi , yj )

4
3

1
− 12

Il metodo è più preciso del metodo a 5 punti ma ci sono problemi quando


viene applicato in prossimità della frontiera in quanto non è disponibile un
numero di punti sufficiente.
Il sistema lineare
Au = b
CAPITOLO 3. EQUAZIONI ELLITTICHE 48

che si deve risolvere ha una struttura più complessa di quello ottenuto con il
metodo a 5 punti. La matrice dei coefficienti è la seguente
 
T0 J0 O
 J 1 T J1 J 2 
 
 J 2 J 1 T J1 J 2 
 
A=
 ... ... ... ... ... 

 

 J 2 J 1 T J 1 J 2 

 J 2 J 1 T J1 
O J0 T0
dove, utilizzando l’ordinamento lessicografico, la matrice T ha una struttura
a 5 diagonali (pentadiagonale), la matrice T0 è tridiagonale, mentre le matrici
J0 , J1 e J2 sono matrici diagonali.

3.6 Il Metodo a 9 punti


Utilizzando una diversa approssimazione delle derivate parziali seconde della
funzione u(x, y) si può derivare uno schema numerico che utilizza nove punti
collocati intorno al nodo di riferimento. Senza descrivere in dettaglio tale
tecnica, lo stencil del metodo applicato con lo stesso passo di discretizzazione
rispetto alle variabili x e y, è il seguente:

1 2 1
6 3 6

2
3 - 103 2
3 uij = h2 g(xi , yj )

1 2 1
6 3 6

Il metodo è preciso quanto il metodo a 5 punti (l’errore dipende da h2 ) ma


l’uso di maggiori informazioni (l’approssimazione coinvolge appunto 9 punti)
CAPITOLO 3. EQUAZIONI ELLITTICHE 49

consente di ottenere in pratica risultati migliori;


Il sistema lineare
Au = b
che si deve risolvere ha una struttura più complessa di quello ottenuto con il
metodo a 5 punti. La matrice dei coefficienti è la seguente
 
T J
 J T J 
 

 J T J 

A=
 . . . . . . . . .


 

 J T J 

 J T J 
J T

dove, utilizzando l’ordinamento lessicografico, le matrici T e J sono entrambe


tridiagonali.
Capitolo 4

Equazioni paraboliche

4.1 Equazioni di Evoluzione


Le equazioni di evoluzione sono, in modo molto semplicistico, le equazioni
alle derivate parziali che descrivono fenomeni dipendenti dal tempo e che
contengono termini con derivate rispetto al tempo. Si tratta sostanzialmente
delle equazioni differenziali ordinarie alle quali sono aggiunte le variabili
spaziali. Numericamente vengono risolte considerando prima una discretiz-
zazione dell’intervallo temporale di osservazione del fenomeno, e, successi-
vamente, vengono poste in relazione le approssimazioni in istanti di tempo
consecutivi. La conoscenza delle approssimazioni numeriche nei punti al tem-
po tn consente di calcolare simultaneamente quelle in tn+1 . I metodi possono
essere di due tipi:
1. Metodi Espliciti: partendo dalla conoscenza delle approssimazioni nu-
meriche in un istante di tempo è possibile calcolare esplicitamente quelle
all’istante successivo;

2. Metodi Impliciti: lo schema numerico mette simultaneamente in re-


lazione le approssimazioni in due (o più) istanti di tempo consecutivi
e, per calcolare l’approssimazione nell’istante di tempo successivo, è
necessario risolvere un sistema lineare.
I metodi numerici descritti nel capitolo precedente per le equazioni ellit-
tiche appartengono a questa seconda classe di metodi, in quanto, poichè la
soluzione è indipendente dal tempo, le approssimazioni sono calcolate simul-
taneamente in tutti i punti del dominio dicreto.

50
CAPITOLO 4. EQUAZIONI PARABOLICHE 51

Una buona parte delle equazioni di evoluzione in una dimensione possono


essere descritte attraverso la cosiddetta equazione conservativa del flusso:
∂u ∂F (u)
=− (4.1)
∂t ∂x
dove u ed F possono anche essere vettori, e, in alcuni casi, F può dipendere
non solo da u ma anche dalle derivate parziali di u. La funzione (o il vet-
tore) F è detto flusso conservativo. Le equazioni di evoluzione corrispondono
(grossolanamente) a quelle di tipo parabolico e iperbolico. In questo capitolo
saranno descritti alcuni metodi numerici per equazioni paraboliche, inizian-
do da quella che viene considerata come il prototipo appartenente ad essa,
l’equazione del calore.

4.2 Problemi di diffusione


I problemi di diffusione sono caratterizzati da un’equazione del tipo
 
∂u ∂ ∂u
= σ (4.2)
∂t ∂x ∂x
dove σ è il cosiddetto coefficiente di diffusione (o anche dissipazione). Con-
siderando l’equazione (4.1) questa si ottiene scegliendo
∂u
F (u) = −σ .
∂x
Si deve supporre che sia σ > 0 altrimenti l’equazione (4.2) ha soluzioni fisi-
camente instabili: la soluzione tenderebbe a concentrarsi e non a diffondersi.
Se il coefficiente di diffusione è costante allora l’equazione (4.2) diventa
ut (x, t) = σuxx (x, t), (4.3)
che è nota come Equazione del Calore, supponendo t ≥ 0 e 0 ≤ x ≤ L,
con L costante reale positiva. Supponiamo inoltre che sia stata assegnata la
condizione iniziale all’istante t = 0:
u(x, 0) = f (x), 0≤x≤L
e le condizioni al contorno in x = 0 e x = L:
u(0, t) = g1 (t) t≥0
u(L, t) = g2 (t) t≥0
CAPITOLO 4. EQUAZIONI PARABOLICHE 52

in cui le funzioni f (x), g1 (t) e g2 (t) soddisfano le cosiddette condizioni di


omogeneità:
f (0) = g1 (0), f (L) = g2 (0). (4.4)

g1 (t) g2 (t)

x
O f (x) L

L’equazione del calore descrive fenomeni di diffusione termodinamica, infatti


u(x, t) può rappresentare, per esempio, l’evoluzione nel tempo della densità
di calore di una sbarra termoconduttrice di lunghezza L e spessore trascur-
abile che viene sottoposta ad una certa temperatura iniziale (la condizione
al contorno f (x)) e tale che la temperatura agli estremi sia fissata dalle con-
dizioni poste dalle funzioni g1 (t) e g2 (t). Se dopo l’istante iniziale la sorgente
di calore viene tolta allora la densità di calore u(x, t) del punto della barra
di ascissa x al tempo t soddisfa l’equazione del calore.
L’equazione di conducibilità del calore può essere generalizzata in molti modi:

1. aggiungendo una variabile spaziale (cioè u = u(x, y, t)):

ut (x, y, t) = σ(uxx (x, y, t) + uyy (x, y, t));

2. aggiungendo un termine forzante f (x, t):

ut (x, t) = σuxx (x, t) + f (x, t);


CAPITOLO 4. EQUAZIONI PARABOLICHE 53

3. aggiungendo un coefficiente di diffusione variabile a(x):


 
∂u ∂ ∂u
= a(x)
∂t ∂x ∂x

con a(x) funzione differenziabile e tale che 0 < a(x) < ∞ per x ∈ [0, L];

4. prendendo x appartenente ad un intervallo arbitrario della retta reale e


sostituendo le condizioni al contorno con la condizione che la funzione
u(x, t) abbia quadrato integrabile, cioè:
Z +∞
[u(x, t)]2 dx < ∞, t ≥ 0,
−∞

condizione che si verifica considerando un’altra equazione paraboli-


ca, l’equazione di Schrödinger, equazione alla base della meccanica
quantistica:
∂u ~2 ∂ 2 u
ι~ =− + U (x)u
∂t 2m ∂x2
in cui m è la massa della particella, ι è l’unità immaginaria, ~ è la
costante di Plank, U (x) è l’energia potenziale della particella e u(x, t)
è la funzione d’onda. In questo caso si deve richiedere che, oltre alle
condizioni iniziali venga soddisfatta anche la seguene relazione
Z +∞
|u(x, t)|2 dx = 1,
−∞

in quanto il modulo della soluzione rappresenta una densità di proba-


bilità.

Per l’equazione parabolica è possibile definire due tipi di problemi. Il primo


è il problema ai valori iniziali, in cui si tratta di trovare una funzione u(x, t),
definita e continua per x ∈ R e t ≥ 0, che soddisfi l’equazione alle derivate
parziali per x ∈ R e t > 0 e la condizione iniziale u(x, 0) = f (x), x ∈ R,
come schematizzato nella seguente figura.
CAPITOLO 4. EQUAZIONI PARABOLICHE 54

u(x, 0) = f (x) O x

Il secondo è il problema ai valori al contorno, in cui, assegnata una costante


L > 0, si deve trovare una funzione u(x, t), definita e continua per 0 ≤ x ≤ L
e t ≥ 0, che soddisfi l’equazione alle derivate parziali per 0 < x < L e t > 0
e le condizioni iniziali:
u(x, 0) = f (x) 0≤x≤L
u(0, t) = g1 (t) t≥0
u(L, t) = g2 (t) t ≥ 0.
che, a loro volta, devono soddisfare le condizioni di omogeneità (4.4).

u(0, t) = g1 (t)

u(L, t) = g2 (t)

O u(x, 0) = f (x) x
L
CAPITOLO 4. EQUAZIONI PARABOLICHE 55

4.3 Il metodo di Eulero Esplicito per l’equa-


zione del calore
Supponiamo ora di dover risolvere l’equazione del calore

ut = σuxx , 0 ≤ x ≤ L, t ≥ 0,

con condizione iniziale

u(x, 0) = f (x), 0≤x≤L (4.5)

e condizioni al contorno

u(0, t) = g1 (t), u(L, t) = g2 (t), t ≥ 0. (4.6)

Poiché t ≥ 0 e non è ovviamente possibile calcolare la soluzione all’infini-


to si sostituisce t ≥ 0 con t ∈ [0, Tmax ]. La costante Tmax è generalmente
determinata dalla fisica del fenomeno in osservazione. L’equazione viene
integrata numericamente negli istanti di tempo tn ≤ Tmax . La risoluzione
numerica di questa equazione richiede la sua discretizzazione sia rispetto al
tempo che rispetto allo spazio. Il problema discreto è ottenuto mediante l’ap-
prossimazione delle derivate parziali attraverso differenze finite. Scegliamo
un intero positivo Nx e definiamo nella striscia

{(x, t) : x ∈ [0, L], t ≥ 0}

una griglia rettangolare formata dai punti di coordinate (xj , tn ) tale che

xj = j∆x, j = 0, 1, . . . , Nx + 1, tn = n∆t, n ≥ 0,

con
L Tmax
∆x = , ∆t = .
(Nx + 1) Nt
Il valore ∆t rappresenta l’intervallo di tempo tra due approssimazioni suc-
cessive. I punti (xj , tn ) del dominio discreto sono di tre tipi, evidenziati nel
seguente grafico.
CAPITOLO 4. EQUAZIONI PARABOLICHE 56

t
Punti al contorno
Punti iniziali
Punti interni

..
.
..
.
t2
t1 x
O x1 x2 ... xNx L

L’approssimazione di u(xj , tn ) è denotata con unj . Utilizzando l’operatore


differenza centrale possiamo approssimare la derivata parziale seconda nel
modo già visto in precedenza:

∂2u unj+1 − 2unj + unj−1


(xj , tn ) ≃
∂x2 (∆x)2

mentre utilizzando l’operatore differenza in avanti per la derivata temporale,


si ottiene
∂u un+1
j − unj
(xj , tn ) ≃ .
∂t ∆t
Sostituendo in (4.3) si ha

un+1
j − unj unj+1 − 2unj + unj−1

∆t (∆x)2

σ∆t
un+1 = unj + n n n

j u j+1 − 2u j + u j−1
(∆x)2
e infine si ha come risultato il seguente Metodo di Eulero Esplicito:

un+1
j = αunj−1 + (1 − 2α)unj + αunj+1 (4.7)
CAPITOLO 4. EQUAZIONI PARABOLICHE 57

dove
σ∆t
α=
(∆x)2
è una costante che prende il nome di Numero di Courant. Partendo da n = 0
la formula (4.7) consente di determinare esplicitamente le approssimazioni
u1j , j = 1, . . . , Nx , pertanto si tratta di un metodo di tipo esplicito. In modo
analogo, conoscendo le approssimazioni al livello n, consente di calcolare
quelle al livello n + 1. La condizione iniziale (4.5) fornisce i valori
u0j = f (j∆x), j = 0, 1, 2, . . . , Nx + 1.
Quando j = 1 e j = Nx la formula (4.7) utilizza le condizioni sulla frontiera
(4.6):
un0 = g1 (tn ), unNx = g2 (tn ).

4.3.1 Condizione di Stabilità per il metodo di Eulero


Esplicito
Come è noto i metodi semplici non sono sempre quelli migliori, infatti consi-
deriamo che la soluzione teorica di un’equazione parabolica possiede la stessa
proprietà di massimo-minimo delle funzioni armoniche (cioè il massimo ed
il minimo della soluzione teorica si trovano sulla frontiera del dominio). È
quindi auspicabile che anche la soluzione numerica possieda tale proprietà.
Per analizzare tale proprietà consideriamo il caso in cui il dominio discretiz-
zato ha un solo nodo interno, prendendo quindi ∆x = L/2, e come condizione
iniziale la funzione che assume valore ε > 0 nel nodo interno e 0 nei due punti
al contorno. Il dominio discreto è rappresentato nella seguente figura.

..
..
.
t3
t2
t1
x
O L/2 L
CAPITOLO 4. EQUAZIONI PARABOLICHE 58

Quindi
u00 = u02 = 0, u01 = ε.
Applicando lo schema di Eulero Esplicito si ottiene:

u11 = (1 − 2α)u01 = (1 − 2α)ε

e, ad un generico istante di tempo tn :

un1 = (1 − 2α)n ε.

Ora, in base alla proprietà di massimo-minimo, deve essere

0 ≤ un1 ≤ ε ⇒ 0 ≤ (1 − 2α)n ≤ 1

e quindi
0 ≤ 1 − 2α ≤ 1.
Poichè α > 0 la seconda disuguaglianza è sicuramente verificata, quindi deve
essere
1
1 ≥ 2α ⇒ α ≤ .
2
Tale disuguaglianza, supponendo σ = 1, implica la seguente restrizione sui
passi di discretizzazione
(∆x)2
∆t ≤ .
2
Se ∆x ≃ 10−2 deve essere
∆t ≤ 0.5 · 10−4
quindi se è necessario integrare l’equazione su un intervallo di tempo molto
grande si deve usare un valore ∆t molto piccolo e di conseguenza il numero
di passi temporali è incredibilmente grande.

4.4 Analisi di Stabilità di von Neumann


Come dimostra il semplice esempio descritto nel paragrafo precedente la sosti-
tuzione delle derivate parziali con approssimazioni discrete non garantisce che
le soluzioni numeriche siano affidabili, a meno di porre determinati vincoli sui
passi di dicretizzazione. Per studiare questo fenomeno è necessario introdurre
una tecnica, detta analisi di stabilità di von Neumann. Tale analisi è di tipo
CAPITOLO 4. EQUAZIONI PARABOLICHE 59

locale, nel senso che si suppone che i coefficienti dell’equazione che definisce
il metodo (detta equazione alle differenze) siano costanti rispetto al tempo e
allo spazio (o cambiano di poco). Si suppone inoltre che le soluzioni di tali
equazioni siano della forma:
unj = ξ n eικj∆x (4.8)
dove κ è un numero reale, detto numero d’onda, e ξ è un numero complesso
dipendente da κ. Il numero ξ, ed in particolare le sue potenze, indicano la
dipendenza della soluzione rispetto al tempo. Infatti la soluzione numerica
unj cresce esponenzialmente se |ξ(κ)| > 1 per un certo valore di κ. Per questo
il numero ξ è detto fattore di amplificazione per il numero d’onda κ. La
semplice analisi della stabilità vista nel precedente paragrafo corrisponde,
in realtà, allo studio dei valori che può assumere il numero di Courant in
modo tale che la soluzione numerica si mantenga limitata. In questo caso ciò
equivale a richiedere che il fattore di amplificazione abbia modulo minore di
(o uguale a) 1. Per applicare l’analisi di von Neumann al metodo di Eulero
Esplicito sostituiamo l’espressione (4.8) nello schema numerico (4.7):
ξ n+1 eικj∆x = ξ n eικj∆x + α ξ n eικ(j+1)∆x − 2ξ n eικj∆x + ξ n eικ(j−1)∆x .
 

Dividendo per ξ n eικj∆x si ottiene


ξ = 1 + α eικ∆x − 2 + e−ικ∆x = 1 + α [2 cos(κ∆x) − 2] .
 

Poichè
   
2 κ∆x 2 κ∆x
cos(κ∆x) = 1 − 2 sin ⇒ cos(κ∆x) − 1 = −2 sin
2 2
quindi  
κ∆x 2
ξ = 1 − 4α sin .
2
Poichè ξ è un numero reale devono essere soddisfatte simultaneamente le
disequazioni:
−1 ≤ ξ ≤ 1.
In particolare la seconda risulta sempre soddisfatta, mentre dalla prima segue
che  
2 κ∆x
2α sin ≤1
2
che è soddisfatta, come visto prima, se α ≤ 1/2.
CAPITOLO 4. EQUAZIONI PARABOLICHE 60

4.5 θ−Metodi
Il metodo di Eulero esplicito fa parte di una pià ampia classe di schemi
numerici, detti θ−Metodi perchè dipendono da un parametro reale θ. La
derivata prima viene approssimata utilizzando la formula alle differenze in
avanti:
un+1
j − unj
ut (xj , tn ) ≃ ,
∆t
mentre la derivata parziale seconda rispetto a x viene approssimata attraverso
una combinazione lineare tra i valori in due istanti di tempo consecutivi:
uxx (xj , tn ) ≃ [(1 − θ)uxx (xj , tn ) + θuxx (xj , tn+1 )] ,
con θ ∈ R (in particolare θ ∈ [0, 1]). Approssimando le derivate seconde nel
modo consueto si ottiene la formula:
" #
un+1
j − u n
j u n
j+1 − 2u n
j + u n
j−1 u n+1
j+1 − 2u n+1
j + u n+1
j−1
= σ (1 − θ) +θ ,
∆t (∆x)2 (∆x)2

da cui, indicato con α il numero di Courant, si ricava


un+1 = unj + (1 − θ)α unj+1 − 2unj + unj−1 + θα un+1 n+1
+ un+1
   
j j+1 − 2uj j−1 .

Un metodo di questa classe può essere rappresentato attraverso il seguente


stencil, in cui i punti celesti rappresentano quelli coinvolti nell’approssi-
mazione delle derivate seconde mentre i rossi quelli nell’approssimazione della
derivata prima.
(xj−1 , tn+1 ) (xj , tn+1 ) (xj+1 , tn+1 )

(xj−1 , tn ) (xj , tn ) (xj+1 , tn )


CAPITOLO 4. EQUAZIONI PARABOLICHE 61

Se θ = 0 il metodo coincide con il Metodo di Eulero Esplicito:

un+1 = unj + α unj+1 − 2unj + unj−1


 
j

Stencil per il Metodo di Eulero Esplicito


(xj , tn+1 )

(xj−1 , tn ) (xj , tn ) (xj+1 , tn )

Se θ = 0.5 il metodo viene detto Metodo di Crank-Nicolson:


α n  α  n+1
un+1 = unj + uj+1 − 2unj + unj−1 + uj+1 − 2un+1 + un+1

j j j−1 ,
2 2
ovvero
α α α n α
− un+1 n+1
j−1 + (1 + α)uj − un+1
j+1 = uj−1 + (1 − α)unj + unj+1 .
2 2 2 2

Stencil per il Metodo di Crank-Nicolson


(xj−1 , tn+1 ) (xj , tn+1 ) (xj+1 , tn+1 )

(xj−1 , tn ) (xj , tn ) (xj+1 , tn )


CAPITOLO 4. EQUAZIONI PARABOLICHE 62

Se θ = 1 il metodo coincide con il Metodo alle Differenze Centrali Implicito:

un+1 = unj + α un+1 n+1


+ un+1
 
j j+1 − 2uj j−1 ,

ovvero
−αun+1 n+1
j−1 + (1 + 2α)uj − αun+1 n
j+1 = uj .

Stencil per il Metodo alle Differenze Centrali Implicito


(xj−1 , tn+1 ) (xj , tn+1 ) (xj+1 , tn+1 )

(xj , tn )

I metodi di Crank-Nicolson e alle differenze centrali implicito sono entrambi


di tipo implicito, poichè ad ogni istante consentono di determinare simul-
taneamente tutti i valori delle approssimazioni numeriche all’istante tn+1 ri-
solvendo un sistema lineare a struttura tridiagonale (l’espressione del metodo
coinvolge solo 3 incognite al livello n + 1).
Applicando l’analisi di stabilità di von Neumann si scopre che se θ ≥ 0.5
allora la stabilità è incondizionata (non c’è alcuna restrizione sui passi di
integrazione), mentre se 0 ≤ θ < 0.5 la condizione di stabilità è la seguente
1
α≤ .
2(1 − 2θ)

Esempio 4.5.1 Applichiamo i metodi descritti alla seguente equazione del


calore:
ut − uxx = 0
con condizioni iniziali:

u(x, 0) = sin πx, 0≤x≤1


CAPITOLO 4. EQUAZIONI PARABOLICHE 63

u(0, t) = u(1, t) = 0, t≥0


2
che ammette come soluzione teorica u(x, t) = e−π t sin πx.
Nelle Figure 4.1, 4.2 e 4.3, è stato applicato il metodo di Eulero esplicito
nell’intervallo temporale [0, 0.4] con il numero di Courant che è, rispettiva-
mente, inferiore, uguale o maggiore di 0.5. Nelle prime due figure si osserva
che la soluzione numerica concorda con quella teorica, anche se il passo di
discretizzazione è molto piccolo (si osservi la griglia temporale molto fitta).
Nella terza figura la soluzione numerica presenta un andamento fortemente
oscillatorio che non soddisfa la proprietà del massimo. Nelle Figure 4.4 e 4.5
sono riportate le soluzioni numeriche fornite, rispettivamente, dai metodi alle
differenze centrali implicito e di Crank-Nicolson. Si osserva facilmente che
le soluzioni numeriche concordano con quella teorica indipendentemente dal
valore del numero di Courant riportato nei grafici.

Metodo di Eulero Esplicito−α=0.25

0.8

0.6

0.4

0.2

0
0.4

0.3 1
0.8
0.2 0.6
0.1 0.4
0.2
0 0
t
x

Figura 4.1: Soluzione dell’equazione del calore ottenuta con il metodo di


Eulero esplicito con α = 0.25.
CAPITOLO 4. EQUAZIONI PARABOLICHE 64

Metodo di Eulero Esplicito−α=0.5

0.8

0.6

0.4

0.2

0
0.4

0.3 1
0.8
0.2 0.6
0.1 0.4
0.2
0 0
t
x

Figura 4.2: Soluzione dell’equazione del calore ottenuta con il metodo di


Eulero esplicito con α = 0.5.

4.6 L’equazione del calore in due dimensioni


Aggiungendo una seconda variabile spaziale l’equazione del calore diventa
ut = σ(uxx + uyy ), (x, y, t) ∈ D × R+
dove D è un sottoinsieme di R2 , con condizioni al contorno
u(x, y, 0) = u0 (x, y), (x, y) ∈ D
u(x, y, t) = g(x, y, t), (x, y) ∈ ∂D, t ≥ 0.
Tale equazione descrive, per esempio, la temperatura di una piastra bidimen-
sionale la cui forma coincide con quella dell’insieme D e altezza trascurabile
(rispetto alle altre dimensioni), che viene a contatto con una sorgente di
calore (descritta dalla funzione u0 (x, y)) all’istante t = 0, e il cui bordo (cioè
∂D) viene tenuto a temperatura costante.
Nei paragrafi seguenti sono descritti alcuni semplici metodi numerici per la
risoluzione numerica di tale equazione.
CAPITOLO 4. EQUAZIONI PARABOLICHE 65

Metodo di Eulero Esplicito−α=2

1.2

0.8

0.6

0.4

0.2

−0.2
0.1
0.08 1
0.06 0.8
0.04 0.6
0.4
0.02
0.2
0 0
t
x

Figura 4.3: Soluzione dell’equazione del calore ottenuta con il metodo di


Eulero esplicito con α = 2.

Il metodo di Eulero Esplicito in due dimensioni


Supponiamo che il dominio spaziale D sia il rettangolo [0, L] × [0, M ] che
viene discretizzato definendo, al solito, i valori

xi = i∆x, yj = j∆y,

mentre anche il tempo viene suddiviso nel solito modo

tn = n∆t, n = 0, 1, . . .

Sia
uni,j ≃ u(xi , yj , tn ),
il metodo di Eulero Esplicito è la generalizzazione di quello già incontrato

un+1 n  n
i,j − ui,j ui+1,j − 2uni,j + uni−1,j uni,j+1 − 2uni,j + uni,j−1

=σ + .
∆t (∆x)2 (∆y)2
CAPITOLO 4. EQUAZIONI PARABOLICHE 66

Metodo alle differenze centrali implicito−α=44

0.8

0.6

0.4

0.2

0
2

1.5 1
0.8
1 0.6
0.5 0.4
0.2
0 0
t
x

Figura 4.4: Soluzione dell’equazione del calore ottenuta con il metodo alle
differenze divise implicito.

Livello n + 1

j+1

Livello n j

j−1
i−1 i i+1
CAPITOLO 4. EQUAZIONI PARABOLICHE 67

Metodo di Crank−Nicolson implicito−α=88

0.8

0.6

0.4

0.2

−0.2
2

1.5 1
0.8
1 0.6
0.5 0.4
0.2
0 0
t
x

Figura 4.5: Soluzione dell’equazione del calore ottenuta con il metodo di


Crank-Nicolson.

La condizione di stabilità diventa:


∆t ∆t 1
2
+ 2
≤ .
(∆x) (∆y) 2

Osserviamo che tale condizione è ben più restrittiva di quella vista in prece-
denza, infatti supponendo di utilizzare lo stesso passo di discretizzazione sia
per x che per y la condizione di stabilità diventa:
∆t 1
≤ .
(∆x)2 4

Il Metodo di Crank-Nicolson
Esattamente come nel caso unidimensionale è possibile definire la classe dei
θ−metodi. Nel caso del metodo di Crank-Nicolson la derivata seconda nel
punto della griglia di coordinate (xi , yj , tn ) viene approssimato con il valor
CAPITOLO 4. EQUAZIONI PARABOLICHE 68

medio tra due istanti di tempo successivi:


1
ut (xi , yj , tn ) ≃ σ [uxx (xi , yj , tn+1 ) + uyy (xi , yj , tn+1 )]
2
1
+σ [uxx (xi , yj , tn ) + uyy (xi , yj , tn )]
2
Il metodo assume la seguente espressione
" #
un+1
i,j − u n
i,j σ u n+1
i+1,j − 2u n+1
i,j + u n+1
i−1,j u n+1
i,j+1 − 2u n+1
i,j + u n+1
i,j−1
= 2
+ 2
∆t 2 (∆x) (∆y)

σ uni+1,j − 2uni,j + uni−1,j uni,j+1 − 2uni,j + uni,j−1


 
+ + .
2 (∆x)2 (∆y)2

Livello n + 1

j+1

Livello n j

j−1
i−1 i i+1

Il Metodo alle Differenze Centrali Implicito


Il metodo alle differenze centrali implicito consiste nell’approssimare al livello
temporale n + 1 le derivate parziali seconde:
" #
un+1 n
i,j − ui,j un+1 n+1 n+1
i+1,j − 2ui,j + ui−1,j un+1 n+1 n+1
i,j+1 − 2ui,j + ui,j−1
=σ + .
∆t (∆x)2 (∆y)2
CAPITOLO 4. EQUAZIONI PARABOLICHE 69

Ad ogni passo si deve risolvere un sistema lineare con struttura pentadiag-


onale. Il metodo è incondizionatamente stabile (non ci sono restrizioni sul
passo temporale di discretizzazione).

Livello n + 1

j+1

Livello n j

j−1
i−1 i i+1

Il Metodo delle Direzioni Alternate


Si effettuano due mezzi passi temporali, uno in ogni direzione:
n+1/2
ui,j − uni,j h
n+1/2 n
i
= σ Lxx ui,j + Lyy ui,j (4.9)
∆t/2
n+1/2
un+1
i,j − ui,j
h
n+1/2
i
= σ Lxx ui,j + Lyy un+1
i,j (4.10)
∆t/2
dove Lxx ed Lyy indicano le approssimazioni delle derivate seconde rispetto
ad x e ad y. Esplicitando la relazione (4.9) si ottiene
n+1/2
" n+1/2 n+1/2 n+1/2
#
ui,j − uni,j ui−1,j − 2ui,j + ui+1,j uni,j−1 − 2uni,j + uni,j+1
=σ + ,
∆t/2 (∆x)2 (∆y)2

da cui, posto α = σ∆t/(2(∆x)2 ) e β = σ∆t/(2(∆y)2 ) si ottiene la relazione


relativa al primo mezzo passo temporale:
n+1/2 n+1/2 n+1/2
−αui−1,j + (1 + 2α)ui,j − αui+1,j = βuni,j−1 + (1 − 2β)uni,j + βuni,j+1 .
CAPITOLO 4. EQUAZIONI PARABOLICHE 70

In modo simile si ricava l’espressione relativa al secondo mezzo passo tempo-


rale (4.10):
n+1/2 n+1/2 n+1/2
−βun+1 n+1 n+1
i,j−1 + (1 + 2β)ui,j − βui,j+1 = αui−1,j + (1 − 2α)ui,j + αui+1,j .

Il metodo è implicito ma ad ogni passo temporale si devono risolvere due siste-


mi lineari che hanno struttura tridiagonale, ed inoltre è incondizionatamente
stabile.

Livello n + 1

Livello n + 1/2
j+1

Livello n j

j−1
i−1 i i+1

Lo Schema di Yanenko
Si effettuano due discretizzazioni temporali con passo dimezzato ognuna
rispetto ad una direzione diversa (la prima verso x la seconda verso y).
n+1/2
ui,j − uni,j n+1/2
= σLxx ui,j (4.11)
∆t/2
n+1/2
un+1
i,j − ui,j
= σLyy un+1
i,j (4.12)
∆t/2
Esplicitando la relazione (4.11) si ottiene
n+1/2 n+1/2 n+1/2 n+1/2
ui,j − uni,j ui−1,j − 2ui,j + ui+1,j

∆t/2 (∆x)2
CAPITOLO 4. EQUAZIONI PARABOLICHE 71

da cui, posto α = σ∆t/(2(∆x)2 ) si ottiene la relazione relativa al primo


mezzo passo temporale:
n+1/2 n+1/2 n+1/2
−αui−1,j + (1 + 2α)ui,j − αui+1,j = uni,j .

Posto β = σ∆t/(2(∆y)2 ) ed esplicitando la relazione (4.12) si ottiene l’e-


spressione eaplicita del secondo mezzo passo temporale:
n+1/2
−βun+1 n+1 n+1
i,j−1 + (1 + 2β)ui,j + βui,j+1 = ui,j .

Ad ogni passo temporale si devono risolvere due sistemi lineari che hanno
struttura tridiagonale, ed inoltre il metodo è incondizionatamente stabile.

Il Metodo di Hopscotch
È uno schema che è composto da due parti, una esplicita e l’altra implicita.

un+1 n
i,j − ui,j
= σ Lxx uni,j + Lyy uni,j ,
 
se i + j + n pari;
∆t
un+1 n
i,j − ui,j
= σ Lxx un+1 n+1
 
i,j + L yy u i,j , se i + j + n dispari.
∆t
Se n è pari e si pone σα = ∆t/(∆x)2 e β = σ∆t/(∆x)2 , allora si ottiene la
seguente espressione se i + j è pari:

un+1 n n n n n
i,j = βui,j−1 + αui−1,j + (1 − 2α − 2β)ui,j + αui+1,j + βui−1,j ,

e la seguente se i + j è dispari:
1
un+1 n
 n+1
βui,j−1 + αun+1 n+1 n+1

i,j = ui,j + i−1,j + αui+1,j + βui−1,j .
1 + 2α + 2β
Quando n è dispari allora la prima formula vale se i + j è dispari e la seconda
se i + j è pari. Il metodo è poco costoso, in quanto è esplicito, poichè nella
seconda relazione vengono utilizzate le approssimazioni al passo n + 1 che
sono già state calcolate. Inoltre il metodo è incondizionatamente stabile.

Esempio 4.6.1 Applichiamo il metodo di Eulero esplicito al’equazione del


calore in due dimensioni
ut = uyy + uxx
CAPITOLO 4. EQUAZIONI PARABOLICHE 72

definita sul quadrato [0, 1] × [0, 1] e con condizioni iniziali:



 300 (x − 0.5)2 + (y − 0.5)2 ≤ 0.2
u(x, y, 0) =
0 altrimenti

u(x, y, t) = 0, x = 0, x = 1, 0 ≤ y ≤ 1, t ≥ 0
y = 0, y = 1, 0 ≤ x ≤ 1, t ≥ 0

Nella Figure 4.6, 4.7 e 4.8 viene riportato l’andamento della condizione in-
iziale e della soluzione numerica in una griglia composta da 100 punti circa
e in due istanti di tempo successivi (t pari a circa otto millesimi di secondo e
mezzo secondo rispettivamente). Si può osservare che una condizione iniziale
discontinua dia luogo ad una soluzione che invece è molto regolare. I valori
∆x, ∆y e ∆t sono stati scelti in modo tale che venga soddisfatta la condizione
di stabilità (in particolare è stato posto ∆x = ∆y = 10−2 e ∆t = 2.5 · 10−5 .

300

250

200

150

100

50

0
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
y
x

Figura 4.6: Condizione iniziale per l’equazione del calore in due dimensioni.
CAPITOLO 4. EQUAZIONI PARABOLICHE 73

300

250

200

150

100

50

0
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
y
x

Figura 4.7: Soluzione numerica per l’equazione del calore dopo circa 8
millisecondi.

300

250

200

150

100

50

0
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
y
x

Figura 4.8: Soluzione numerica per l’equazione del calore dopo circa mezzo
secondo.
Capitolo 5

Equazioni iperboliche

5.1 L’equazione d’onda


Le equazioni iperboliche rappresentano probabilmente la classe che descrive il
più ampio numero di fenomeni in diversi campi della fisica (fluidodinamica,
acustica, elettromagnetismo e cosı̀ via). Le equazioni di Eulero per fluidi
comprimibili, le equazioni di Einstein per la relatività generale, sono esempi
di equazioni iperboliche. L’equazione del secondo ordine di tipo iperbolico
più nota è sicuramente l’equazione d’onda:
utt (x, t) − c2 uxx (x, t) = 0, c 6= 0, (5.1)
infatti
∆ = c2 > 0.
L’equazione (5.1) ammette una formulazione come equazione del primo or-
dine:
ut (x, t) + cux (x, t) = 0, c ∈ R. (5.2)
Infatti derivando l’equazione (5.2) rispetto al tempo
∂ 2u ∂2u
+ c = 0,
∂t2 ∂t∂x
e rispetto allo spazio
∂ 2u ∂ 2u
+ c 2 = 0, (5.3)
∂t∂x ∂x
e, sostituendo la derivata mista in (5.3) si ricava appunto l’equazione (5.1). In
entrambe le equazioni c rappresenta una costante prefissata, cioè la velocità di

74
CAPITOLO 5. EQUAZIONI IPERBOLICHE 75

propagazione dell’onda (per un’onda sonora che si propaga nell’aria il valore


c è pari a circa 340 m/sec, in genere il valore dipende dal tipo di onda). La
funzione u(x, t) esprime l’ampiezza dell’onda, una misura della sua intensità
in funzione della posizione x al tempo t. Per un’onda sonora nell’aria u(x, t)
esprime la pressione dell’aria in diversi punti dello spazio, per una corda
vibrante esprime lo spostamento fisico della corda rispetto alla posizione di
riposo. Se il dominio spaziale è bidimensionale (l’onda si propaga nel piano
xy) l’equazione (5.1) può essere conseguentemente modificata:

utt (x, t) = c2 (uxx (x, t) + uyy (x, t)), (x, y) ∈ D ⊆ R2 .

Un esempio di tale equazione si ha con il modo della pelle di un tamburo


circolare tesa rigidamente. Ovviamente nulla vieta di inserire un’ulteriore
variabile spaziale per descrivere fenomeni quali la propagazione di onde in
un mezzo omogeneo elastico, è il caso per esempio delle onde sismiche della
Terra oppure le onde ultrasoniche usate per rilevare difetti nei materiali. Una
modifica dell’equazione d’onda consiste nel fatto che, più realisticamente, la
velocità può dipendere dall’ampiezza, il che conduce all’equazione non lineare

utt (x, t) = c(u)2 (uxx (x, t) + uyy (x, t)), (x, y) ∈ D ⊆ R2 .

All’equazione d’onda del secondo ordine (5.1) è possibile associare due tipi
problemi. Il primo è il il problema ai valori iniziali (o Problema di Cauchy)
in cui si deve determinare una funzione u(x, t), definita e continua per x ∈ R
e t ≥ 0, che soddisfi l’equazione alle derivate parziali per x ∈ R e t > 0 e le
condizioni iniziali:
u(x, 0) = f1 (x) x∈R
ut (x, 0) = f2 (x) x ∈ R,

come schematizzato nella seguente figura.


CAPITOLO 5. EQUAZIONI IPERBOLICHE 76

u(x, 0) = f1 (x) O ut (x, 0) = f2 (x) x

Il secondo è il problema ai valori iniziali e al contorno, in cui, assegnata


una costante L > 0, si deve trovare una funzione u(x, t), definita e continua
per 0 ≤ x ≤ L e t ≥ 0, che soddisfi l’equazione alle derivate parziali per
0 < x < L e t > 0 e le condizioni iniziali:
u(x, 0) = f1 (x) 0≤x≤L
ut (x, 0) = f2 (x) 0≤x≤L
u(0, t) = g1 (t) t≥0
u(L, t) = g2 (t) t ≥ 0.

u(0, t) = g1 (t)

u(L, t) = g2 (t)

u(x, 0) = f1 (x), ut (x, 0) = f2 (x) x


O L
CAPITOLO 5. EQUAZIONI IPERBOLICHE 77

Le funzioni che definiscono le condizioni al contorno devono soddisfare le


condizioni di omogeneità agli angoli del dominio:

f1 (0) = g1 (0), f1 (L) = g2 (0), f2 (0) = g1′ (0), f2 (L) = g2′ (0).

g1 (t) g2 (t)

x
O f1 (x), f2 (x) L

La risoluzione per via analitica del problema di Cauchy è possibile suppo-


nendo per semplicità c = 1 ed effettuando il seguente cambio di variabile:

ξ = x + t, ψ =x−t

ovvero
ξ+ψ ξ−ψ
x= , t=
2 2
e definendo la funzione
 
1 1
U(ξ, ψ) = u(x(ξ, ψ), t(ξ, ψ)) = u (ξ + ψ), (ξ − ψ) .
2 2

Si osserva innanzitutto che


∂2U
= 0. (5.4)
∂ξ∂ψ
Infatti
∂U ∂u ∂x ∂u ∂t 1 ∂u 1 ∂u
= + = +
∂ξ ∂x ∂ξ ∂t ∂ξ 2 ∂x 2 ∂t
CAPITOLO 5. EQUAZIONI IPERBOLICHE 78

e, calcolando la derivata parziale seconda:


∂2U
 
1 ∂ ∂u ∂u
= + =
∂ξ∂ψ 2 ∂ψ ∂x ∂t

1 ∂x ∂ 2 u ∂2u
 2
∂ 2u
   
∂t ∂ u
= + + + 2 =
2 ∂ψ ∂x2 ∂x∂t ∂ψ ∂t∂x ∂t

1 1 ∂ 2u 1 ∂ 2u 1 ∂2u 1 ∂2u
 
= + − − = 0.
2 2 ∂x2 2 ∂t∂x 2 ∂x∂t 2 ∂t2
L’uguaglianza a zero deriva dall’ipotesi che la funzione u(x, t) soddisfa l’e-
quazione d’onda e dall’uguaglianza delle derivate parziali miste.
Poichè Uξψ = 0 possiamo considerare la derivata Uξ come funzione della sola
variabile ξ quindi integrando (5.4) rispetto a ψ si ottiene:

Uξ = F1 (ξ)

e, integrando nuovamente rispetto a ξ:


Z ξ
U(ξ, ψ) = F1 (z)dz + G2 (ψ),
0

dove F1 e G2 sono due funzioni arbitarie differenziabili. Posto


Z ξ
G1 (ξ) = F1 (z)dz
0

risulta
U(ξ, ψ) = G1 (ξ) + G2 (ψ).
Tornando alle variabili x e t si ha che la soluzione deve essere:

u(x, t) = G1 (x + t) + G2 (x − t).

Sostituendo le condizioni iniziali risulta:


u(x, 0) = G1 (x) + G2 (x) = f1 (x)
ut (x, 0) = G′1 (x) − G′2 (x) = f2 (x).
e, differenziando la prima equazione:

G′1 (x) + G′2 (x) = f1′ (x)


CAPITOLO 5. EQUAZIONI IPERBOLICHE 79

si ricava:
1 ′
G′1 (x) = [f (x) + f2 (x)]
2 1
1 ′
G′2 (x) = [f (x) − f2 (x)] ,
2 1
da cui, integrando rispetto a x, risulta:
 Z x 
1
G1 (x) = f1 (x) + f2 (z)dz
2 Z0 x 
1
G2 (x) = f1 (x) − f2 (z)dz .
2 0

Sostituendo tali formule nell’espressioni di u(x, t) si ottiene:


 Z x+t   Z x−t 
1 1
u(x, t) = f1 (x + t) + f2 (z)dz + f1 (x − t) − f2 (z)dz =
2 0 2 0

 Z x+t 
1
= f1 (x + t) + f1 (x − t) + f2 (z)dz
2 x−t

che prende il nome di Formula di D’Alembert. Da tale formula segue che


la funzione u(x, t) è determinata univocamente in base alla conoscenza delle
funzioni f1 ed f2 tra i punti (x − t, 0) e (x + t, 0). L’intervallo [x − t, x + t]
viene detto intervallo di dipendenza del punto (x, t). Il dominio interno al
triangolo di vertici (x, t), (x − t, 0) e (x + t, 0) ed evidenziata nella figura
seguente si chiama regione di dipendenza.
CAPITOLO 5. EQUAZIONI IPERBOLICHE 80

(x, t)

O x
(x − t, 0) (x + t, 0)

Le rette congiungenti i punti (x, t) e (x − t, 0), (x, t) e (x + t, 0) sono dette


caratteristiche dell’equazione d’onda in (x, t).
Osserviamo che, nel caso in cui il problema sia ai valori al contorno, la formula
di D’Alembert può essere usata per calcolare la soluzione solo nel triangolo
di vertici (0, 0), (L, 0) e (L/2, L/2).

(L/2, L/2)

x
(0, 0) (L, 0)
CAPITOLO 5. EQUAZIONI IPERBOLICHE 81

Il metodo delle caratteristiche


Considerando, in generale, l’equazione iperbolica
∂u ∂u
+c =0
∂t ∂x
le caratteristiche sono le rette di equazione
x = x0 ± ct
Considerando la caratteristica x(t) = x0 + ct, lungo questa la funzione
u(x(t), t) rimane costante, infatti calcolando la derivata rispetto a t,
du ∂u ∂u dx
(x(t), t) = + = 0.
dt ∂t ∂x dt
Volendo calcolare la soluzione in un punto (x, t) si individua l’equazione della
caratteristica
x = x0 + ct
e, sapendo che
u(x, t) = u(x0 + ct, t) = u(x0 , 0) = f1 (x0 ),
poichè il valore della funzione lungo la caratteristica è indipendente dal tem-
po. Se la condizione iniziale è discontinua (per esempio presenta un salto)
allora anche la discontinuità si propaga alla medesima velocità dell’onda,
come si evince dal seguente grafico.
t
u
t = t3
t = t2
t = t1
t=0

x
CAPITOLO 5. EQUAZIONI IPERBOLICHE 82

5.2 L’equazione d’onda del primo ordine


I metodi che sono stati descritti nel Capitolo 4 possono essere applicati, in mo-
do più o meno naturale, anche alle equazioni d’onda. In particolare il Metodo
di Crank-Nicolson fornisce buoni risultati anche in questo caso, soprattutto
nel caso di problema ai valori iniziali e al contorno. È opportuno evitare
di ripetere la descrizione di metodi già discussi e considerare metodi diversi
che possono essere applicati esclusivamente ad equazioni iperboliche, anche
di tipo non lineare, come sarà descritto in seguito. Nei seguenti paragrafi
saranno descritti alcuni metodi che possono essere applicati all’equazione del
primo ordine (5.2).

5.2.1 Il metodo di Lax-Friedrichs


Un primo modo per risolvere numericamente l’equazione d’onda del primo
ordine potrebbe essere quello di approssimare la derivata temporale con la
formula alle differenze in avanti e la derivata spaziale con quella alle differenze
centrali, ottenendo la seguente formula:
c∆t n
un+1 = unj − (u − unj−1 ). (5.5)
j
2∆x j+1
Tale metodo risulta, in verità, piuttosto instabile (basta applicare l’analisi di
von Neumann e verificare che il fattore di amplificazione è sempre, in modulo,
maggiore di 1). Il metodo di Lax-Friedrichs consiste nello stabilizzare il
metodo (5.5) sostituendo il valore l’approssimazione unj con il valor medio:
unj+1 + unj−1
unj −→
2
ottenendo, appunto, l’espressione del metodo di Lax-Friedrichs:
1 c∆t n
un+1
j = (unj+1 + unj−1 ) − (uj+1 − unj−1 ).
2 2∆x

5.2.2 Il metodo di Lax-Wendroff


Il metodo di Lax-Wendroff, esplicito, risolve numericamente l’equazione (5.2)
partendo dall’espansione in serie di Taylor della funzione u(xj , tn +∆t) rispet-
to alla variabile temporale e prendendo (xj , tn ) come punto iniziale:
(∆t)2
u(xj , tn + ∆t) ≃ u(xj , tn ) + ∆tut (xj , tn ) + utt (xj , tn ).
2
CAPITOLO 5. EQUAZIONI IPERBOLICHE 83

Applicando la relazione (5.2):

(∆t)2
u(xj , tn + ∆t) ≃ u(xj , tn ) − c∆tux (xj , tn ) + utt (xj , tn ).
2
Poichè la funzione u(x, t) soddisfa l’equazione (5.1) si ha

(c∆t)2
u(xj , tn + ∆t) ≃ u(xj , tn ) − c∆tux (xj , tn ) + uxx (xj , tn ). (5.6)
2
Le derivate spaziali vengono approssimate usando la consueta formula del sec-
ondo ordine mentre per la derivata prima si applica la formula alle differenze
centrali.
c∆t n  (c∆t)2 n
un+1 = unj − uj+1 − unj−1 + uj+1 − 2unj + unj−1 .

j 2
2∆x 2(∆x)

Posto
c∆t
α=
∆x
si ottiene lo schema
α n  α2 n
un+1 = unj − uj+1 − unj−1 + uj+1 − 2unj + unj−1

j
2 2
α α
= (1 + α)unj−1 + (1 − α2 )unj − (1 − α)unj+1 .
2 2

5.2.3 Condizione di Courant, Friedrichs e Lewy


Consideriamo ora la risoluzione numerica dell’equazione d’onda (5.2) con-
siderando per ora c = 1. L’approssimazione un+1 j dipende, sia nei metodi
impliciti che espliciti, da approssimazioni al livello precedente n, in parti-
colare da unj , unj−1 e unj+1 . A loro volta tali approssimazioni dipendono da
n−1
altre al livello n − 1, in particolare da uj±k , con k = −2, . . . , 2, cosı̀ via. In
questo modo procedendo a ritroso è possibile definire una specie di dominio
di dipendenza discreto che composto dalle approssimazioni, dal livello 0 al
livello n, necessarie al calcolo di un+1
j .
CAPITOLO 5. EQUAZIONI IPERBOLICHE 84

t
(xj , tn+1 )

O x

Appare ovvio che tale dominio discreto debba avere necessariamente un


legame con quello continuo che abbiamo definito in precedenza. Se il do-
minio continuo includesse quello discreto questo vorrebbe dire che l’approssi-
mazione un+1
j è stata ottenuta considerando solo una parte dei valori da cui
dipende il valore teorico u(xj , tn+1 ), sicuramente tale approssimazione nu-
merica non può essere un valore affidabile. Al contrario se il dominio discre-
to contiene quello continuo significa che la soluzione numerica ha utilizzato
effettivamente tutti i dati necessari (e anche altri).

t
(xj , tn+1 )

O x

Dal punto di vista matematico si deve richiedere che tale situazione si verifi-
chi, imponendo opportune condizioni sui passi di discretizzazione spaziale e
CAPITOLO 5. EQUAZIONI IPERBOLICHE 85

temporale. Infatti è necessario richiedere che la retta caratteristica passante


per (xj , tn+1 ) intersechi l’intervallo di dipendenza del metodo numerico.

(xj , tn+1 )

∆t

(xj−1 , tn ) (xj+1 , tn )
h h

(xj , tn )
La condizione viene verificata se la retta di colore blu tratteggiata ha un
coefficiente angolare inferiore rispetto a quello della retta caratteristica (che
in questo caso vale 1), cioè se
∆t
≤ 1. (5.7)
∆x
La relazione (5.7) prende il nome di Condizione di Courant, Friedrichs e Lewy
(spesso indicata come condizione CFL). Se la velocità c 6= 1 allora il rapporto
∆t/∆x deve essere inferiore al coefficiente angolare delle rette caratteristiche,
che hanno equazione
x = x0 + ct
e quindi
∆t 1 c∆t
≤ ⇒ ≤ 1.
∆x c ∆x

5.3 L’equazione d’onda del secondo ordine


Nei successivi paragrafi saranno descritti alcuni metodi numerici per risolvere
l’equazione del secondo ordine (5.1) con velocità costante c 6= 0. Si suppone
che siano assegnate le funzioni f1 (x) ed f2 (x) tali che
u(x, 0) = f1 (x), ut (x, 0) = f2 (x), 0 ≤ x ≤ L.
CAPITOLO 5. EQUAZIONI IPERBOLICHE 86

Un metodo esplicito
Innanzitutto si definisce la griglia suddividendo l’intervallo [0, L] in sottoint-
ervalli di ampiezza ∆x = L/(N + 1) e definendo gli istanti di tempo multipli
di un valore ∆t:

xj = j∆x, j = 0, 1, 2, . . . , N + 1, tn = n∆t, n = 0, 1, 2, . . . .

Le derivate parziali seconde sono approssimate nel modo consueto:

unj+1 − 2unj + unj−1 un+1


j − 2unj + ujn−1
uxx (xj , tn ) ≃ , utt (xj , tn ) ≃
(∆x)2 (∆t)2

un+1
j − 2unj + ujn−1 un − 2unj + unj−1
2 j+1
−c =0
(∆t)2 (∆x)2
(∆t)2 n
un+1
j − 2unj + ujn−1 =c 2
2
(uj+1 − 2unj + unj−1 )
(∆x)
Posto
(c∆t)2
α=
(∆x)2
e ricavato un+1
j :

un+1
j = 2unj − ujn−1 + α(unj+1 − 2unj + unj−1 )

un+1
j = αunj−1 + 2(1 − α)unj + αunj+1 − ujn−1 , j = 1, . . . , N.
I primi valori che è possibile calcolare sono u2j , che necessitano della conoscen-
za di u1j , poichè i valori u0j sono forniti dalla condizione iniziale

u0j = u(xj , 0) = f1 (xj ).

Il problema è ora quello di approssimare la soluzione nei punti (xj , ∆t), cioè
conoscere i valori:

u1j ≃ u(xj , ∆t), j = 1, . . . , N.

Per questo motivo si utilizza l’espansione in serie di Taylor:

(∆t)2
u(xj , ∆t) ≃ u(xj , 0) + ∆t ut (xj , 0) + utt (xj , 0). (5.8)
2
CAPITOLO 5. EQUAZIONI IPERBOLICHE 87

Poichè la funzione u(x, t) soddisfa l’equazione d’onda, allora possiamo sosti-


tuire utt (x, t) con c2 uxx (x, t), e le condizioni iniziali per u(x, t) e ut (x, t):
(c∆t)2
u(xj , ∆t) ≃ f1 (xj ) + ∆tf2 (xj ) + uxx (xj , 0).
2
L’ultimo termine della serie viene approssimato come al solito:
u(xj+1 , 0) − 2u(xj , 0) + u(xj−1 , 0)
uxx (xj , 0) ≃ =
(∆x)2

f1 (xj+1 ) − 2f1 (xj ) + f1 (xj−1 )


=
(∆x)2
cosicchè si ottiene la seguente approssimazione:
(c∆t)2 f1 (xj+1 ) − 2f1 (xj ) + f1 (xj−1 )
ui,1 ≃ f1 (xj ) + ∆tf2 (xj ) + .
2 (∆x)2

Un metodo implicito
Per risolvere l’equazione d’onda si può discretizzare in modo diverso la deriva-
ta seconda di tipo spaziale:
1
uxx (xj , tn ) ≃ [uxx (xj , tn+1 ) + uxx (xj , tn−1 )]
2
un+1
j − 2unj + ujn−1
utt (xj , tn ) ≃
(∆t)2

un+1 n+1
j+1 − 2uj + un+1
j−1
uxx (xj , tn+1 ) ≃ 2
(∆x)
n−1
uj+1 − 2ujn−1 + uj−1
n−1
uxx (xj , tn−1 ) ≃
(∆x)2
" #
n+1 n+1 n+1 n−1
1 uj+1 − 2uj + uj−1 uj+1 − 2ujn−1 + uj−1
n−1
uxx (xj , tn ) ≃ + .
2 (∆x)2 (∆x)2
Sostituendo le approssimazioni nell’equazione alle derivate parziali si ottiene:
" #
un+1
j − 2unj + ujn−1 u n+1
j+1 − 2u n+1
j + u n+1
j−1 u n−1
j+1 − 2u n−1
j + u n−1
j−1
= c2 + .
(∆t)2 2(∆x)2 2(∆x)2
CAPITOLO 5. EQUAZIONI IPERBOLICHE 88

Ponendo
(c∆t)2
α=
2(∆x)2
si giunge all’espressione finale del metodo

−α un+1 n+1
j−1 + (2α + 1)uj − αun+1 n−1 n−1
j+1 = αuj−1 + (2α − 1)uj
n−1
+ αuj+1 + 2unj .

Se la soluzione numerica è nota ai livelli tn e tn−1 allora, utilizzando le con-


dizioni al contorno, la formulazione del metodo costituisce un sistema lineare
di N − 1 equazioni nelle N − 1 incognite un+1
j , j = 1, N − 1. Il sistema ha una
struttura tridiagonale a predominanza diagonale quindi ammette un’unica
soluzione. Per calcolare la soluzione al livello t1 si può utilizzare lo stesso
metodo di approssimazione (5.8) visto per il metodo esplicito.

5.4 Equazioni Iperboliche non Lineari


La risoluzione numerica di equazioni iperboliche non lineari è decisamente
più complessa rispetto al caso lineare. Il problema è che spesso le non linear-
ità inducono delle discontinuità nelle soluzioni teoriche anche in presenza di
condizioni iniziali regolari. In questo paragrafo considereremo soltanto una
classe di equazioni iperboliche non lineari e descriveremo brevemente alcune
problematiche connesse alla loro risoluzione numerica e contemporaneamente
alcuni semplici metodi numerici senza avere la pretesa di esaurire un argo-
mento che è molto complesso e che richiederebbe una trattazione molto più
dettagliata. Consideriamo la seguente equazione, già incontrata nel capitolo
precedente (equazione (4.1)),

ut (x, t) + [F (u)]x = 0 x ∈ R, t ≥ 0
u(x, 0) = u0 (x) x∈R

che viene detta in forma conservativa. Nell’ipotesi che la funzione F (u)


sia sufficientemente regolare rispetto a u e a x allora l’equazione può essere
riscritta nella forma non conservativa:
ut (x, t) + F ′ (u)ux = 0

x ∈ R, t ≥ 0
u(x, 0) = u0 (x) x ∈ R.
Spesso alla condizione iniziale si aggiunge una condizione di periodicità:

u(a, t) = u(b, t), t ≥ 0,


CAPITOLO 5. EQUAZIONI IPERBOLICHE 89

cosicchè l’equazioni viene risolta quando x ∈ [a, b]. L’esempio più noto di
equazione di questo tipo è probabilmente l’equazione di Burgers:
1
F (u) = u2
2
in cui
F ′ (u) = u
e quindi l’equazione in forma non conservativa è
ut (x, t) + u(x, t)ux (x, t) = 0
cioè la velocità dell’onda coincide con il valore della funzione stessa. In questo
caso le caratteristiche x(t) sono le soluzioni dell’equazione differenziale
x′ (t) = u(x, t)
infatti
d dx
u(x(t), t) = ux (x, t) + ut (x, t) = ux (x, t)u(x, t) + ut (x, t) = 0.
dt dt
Poichè lungo le caratteristiche la funzione u(x, t) è costante allora queste
devono essere necessariamente delle rette, infatti partendo dalla condizione
iniziale u0 (x0 ) = u(x0 , 0), esse si determinano sostituendo tale valore nell’e-
quazione differenziale
x′ (t) = u(x0 , 0).
Le rette caratteristiche hanno equazione
x(t) = x0 + u(x0 , 0)t = x0 + u0 (x0 )t
e coefficiente angolare 1/u0 (x0 ), quindi non sono parallele, e possono in-
tersecarsi. Nel punto in cui avviene tale intersezione la funzione u(x, t) è
discontinua, poichè presenta un salto. In questi casi si introduce il concet-
to di soluzione debole dell’equazione differenziale per indicare una soluzione
che può essere discontinua, oppure non differenziabile in qualche punto del
dominio, in contrapposizione con le cosiddette soluzioni classiche. Se due
caratteristiche si intersecano in un punto verso la direzione crescente di t al-
lora la discontinuità (o la soluzione debole) viene detta shock. Un altro caso
in cui le caratteristiche possono dare luogo a discontinuità si verifica qualora
le due rette partono dai due lati di una discontinuità e si allontanano da ques-
ta. In questo caso la discontinuità prende il nome di onda di rarefazione. La
situazione è schematizzata nel seguente grafico in cui le caratteristiche celesti
formano un’onda di rarefazione, mentre quelle verdi formano uno shock.
CAPITOLO 5. EQUAZIONI IPERBOLICHE 90

Rarefazione Shock
u

u0 (x) x

Per risolvere numericamente equazioni iperboliche non lineari, l’intervallo


[a, b] di variabilità di x viene suddiviso in sottointervalli [xj , xj+1 ] di uguale
ampiezza ∆x (nell’eventualità in cui l’intervallo sia infinito allora si fissano
gli estremi in modo opportuno), si definisce una decomposizione detta duale
di intervalli: i h ∆x
Ij = xj− 1 , xj+ 1 , xj+ 1 = xj + .
2 2 2 2
Integrando la forma conservativa dell’equazione iperbolica tra tn e tn+1 rispet-
to al tempo e tra xj− 1 e xj+ 1 rispetto allo spazio si ottiene
2 2

Z xj+ 1 Z tn+1
2
dx [ut (x, t) + [F (u)]x ] dt = 0
xj− 1 tn
2

Z xj+ 1 Z tn+1 Z tn+1 Z xj+ 1


2 2
dx ut (x, t)dt + dt [F (u)]x dt = 0
xj− 1 tn tn xj− 1
2 2
Z xj+ 1
2
[u(x, tn+1 ) − u(x, tn )] dx+
xj− 1
2
Z tn+1 h      i
+ F u xj+ , t − F u xj− , t
1 1 dt = 0.
2 2
tn
CAPITOLO 5. EQUAZIONI IPERBOLICHE 91

Definiamo l’approssimazione della media di u(x, tn ) sull’intervallo Ij :


Z x 1
n 1 j+ 2
uj = u(x, tn )dx.
∆x x 1
j− 2

Sia tn+1
1
Z   
n
Hj+1/2 = F u xj+ 1 , t dt
∆t tn
2

la media sull’intervallo temporale [tn , tn+1 ] del flusso in xj+ 1 . Posto


2

∆t
α=
∆x
allora la relazione precedente può essere riscritta come

un+1
j = unj − α[Hj+1/2
n n
− Hj−1/2 ]

Da tale relazione si può dedurre il seguente schema numerico

un+1
j = unj − α[Φnj+1/2 − Φnj−1/2 ]

in cui Φnj+1/2 = Φ(unj , un+1


j ) è il cosiddetto flusso numerico che approssima
n n
Hj+1/2 , mentre uj indica l’approssimazione del valore u(xj , tn ). In generale
ogni schema numerico può essere scritto sotto forma

un+1
j = G(unj−l , . . . , unj−1 , unj , unj+1 , . . . , unj+l ) (5.9)

in cui G è una determinata funzione.


Definizione 5.4.1 Uno schema numerico del tipo (5.9) è detto consistente
se la funzione di flusso numerica coincide con il vero flusso F nel caso di
funzioni costanti, cioè:

Φ(u, u) = F (u), ∀u.

Definizione 5.4.2 Si dice che uno schema numerico è detto monotono se la


funzione G aumenta in maniera monotona rispetto ad ognuna delle variabili.
In questo caso un tale schema è limitato, cioè:

∃C > 0 : sup |unj | ≤ C.


j,n
CAPITOLO 5. EQUAZIONI IPERBOLICHE 92

La condizione di Courant-Friedrichs-Lewy
Per l’equazione iperbolica non lineare la condizione di Courant-Friedrichs-
Lewy diventa
∆t
|F ′ (u)| ≤ 1,
∆x
disequazione che è sicuramente soddisfatta se
∆t 1
≤ . (5.10)
∆x max |F ′ (u)|
Il passo di discretizzazione temporale deve soddisfare la seguente disequazio-
ne
∆x
∆t ≤ .
max |F ′ (u)|
Il problema di tale vincolo è che è molto difficile stimare il massimo di F ′ (u),
funzione che spesso è non lineare. Poichè si può ragionevolmente ipotizzare
che la funzione soddisfa la proprietà di massimo-minimo (dipende dal feno-
meno ondulatorio descritto) allora si può stimare che il massimo di u(x, t)
coincida con il massimo della condizione iniziale:
max |F ′ (u)| = max |u(x, t)| = max |u(x, 0)|.
x

La condizione (5.10) diventa quindi


∆t 1
≤ . (5.11)
∆x maxx |u(x, 0)|

Lo Schema di Lax-Friedrichs
La funzione di flusso numerica ha la seguente espressione:
1 n 1  n
Φnj+1/2 = Fj+1 − Fjn − uj+1 − unj
 
2 2α
n n
con Fj = F (uj ).
Lo schema numerico si scrive quindi
1 n  α n
un+1 uj+1 + unj−1 − n

j = Fj+1 − Fj−1 .
2 2
Si tratta di uno schema del primo ordine che è monotono se
∆x 1
|F ′ (unj )| ≤ = , ∀j, n.
∆t α
CAPITOLO 5. EQUAZIONI IPERBOLICHE 93

Lo Schema di Godunov
La soluzione viene approssimata utilizzando una funzione costante a trat-
ti. Il problema viene affrontato come se fosse un insieme di problemi con
condizione iniziale che presenta diversi salti. In particolare si cerca, ad un
generico istante di tempo tn la funzione u∗ (x, t), con t ∈ [tn , tn+1 ], soluzione
del problema

ut + [F (u)]x = 0 x ∈ R, t ≥ 0
n
u(x, tn ) = uj xj−1/2 ≤ x ≤ xj+1/2 .
Se ∆t è sufficientemente piccolo allora non ci sono interazioni tra questi
problemi locali. Si ha quindi
x − xj+1/2 n n
 

u (x, t) = u ; uj , uj+1
t − tn
dove x ∈ [xj , xj+1 ] e t ∈ [tn , tn+1 ].
Il valore un+1
j è ottenuto come media di u∗ (x, tn+1 ) su [xj−1/2 , xj+1/2 ] :
Z x 1
n+1 1 j+ 2
uj = u∗ (x, tn+1 )dx.
∆x x 1
j− 2

Lo schema numerico di Godunov diventa


∆t 
un+1 n n n+1 n n

j = u j − F (u(0; u j , u j ) − F (u(0; u j−1 , u j ) .
∆x
In generale solitamente lo schema di Godunov non si usa esattamente nei
termini visti ma viene semplificato scegliendo il valore del flusso numerico
uguale a quello del flusso dell’equazione valutato in un’approssimazione in xj
o xj+1 . In questo caso si sceglie il flusso numerico ponendo:
F (unj+1 ) − F (unj )

n

 F (uj ) se ≥0
unj+1 − unj



Φnj+1/2 =


n
F (unj+1 ) − F (unj )
 F (uj+1 ) se < 0.


unj+1 − unj
e quindi il metodo numerico ha la seguente espressione

un+1 n
 n n

j = u j − α Φj+1/2 − Φj−1/2 .
CAPITOLO 5. EQUAZIONI IPERBOLICHE 94

Esempio 5.4.1 Consideriamo l’equazione di Burgers con condizione iniziale

u(x, 0) = 1 + 0.5 sin(2πx), 0≤x≤1

per t ∈ [0, 3]. Nelle figure seguenti sono riportate le soluzioni numeriche
ottenute con i metodi di Lax-Friedrichs e di Godunov. Il metodo di Godunov
consente di evidenziare meglio la formazione di uno shock. I valori di ∆x
e ∆t sono stati scelti in modo tale che venga soddisfatta la condizione di
Courant, Friedrichs e Lewy (5.11), considerando che

max |u(x, 0)| = 1.5.


x∈[0,1]

Figura 5.1: Soluzione delll’equazione di Burgers ottenuta con il metodo di


Lax-Friedrichs.
CAPITOLO 5. EQUAZIONI IPERBOLICHE 95

Figura 5.2: Soluzione dell’equazione di Burgers ottenuta con il metodo di


Godunov.
Capitolo 6

Il Metodo agli Elementi Finiti

6.1 La formula di Green


Il metodo agli elementi finiti può essere descritto efficacemente consideran-
do la soluzione della semplice equazione ellittica di Poisson in un dominio
bidimensionale. Sia assegnata quindi la seguente equazione

∂ 2u ∂ 2u
+ = −f (x, y) ⇔ ∆u = −f
∂x2 ∂y 2

definita su un dominio Ω ⊂ R2 avente come frontiera la curva Γ, e su cui sono


assegnate le condizioni di Dirichlet alla frontiera. Uno strumento essenziale
per comprendere il metodo agli elementi finiti è la formula di Green. Sia
Ω un insieme aperto avente come frontiera la curva chiusa e regolare Γ.
Supponiamo inoltre che sia assegnata una funzione vettoriale

v(x, y) = [v1 (x, y), v2 (x, y)]T

continua e differenziabile in Ω. Il teorema della divergenza in spazi bidimen-


sionali stabilisce che
Z Z
div v(x, y)dxdy = vT (x, y)nds,
Ω Γ

ricordando che la divergenza della funzione vettoriale v è


∂v1 ∂v2
div v(x, y) = + .
∂x ∂y

96
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 97

Nell’integrale a secondo membro compare il prodotto scalare tra i vettori v


e n che rappresenta la direzione normale alla curva Γ nel punto in questione
orientata secondo il verso uscente dalla curva stessa. Per derivare la formula
di Green si deve considerare una funzione scalare v ed una vettoriale w.
Applicando le consuete regole di derivazione si ottiene

∇(vw) = (∇v)T w + v∇w

che consente di esprimere (∇v)T w come

(∇v)T w = −v∇w + ∇(vw).

Integrando tale uguaglianza su Ω e applicando il teorema della divergenza si


ottiene
Z Z Z
T
(∇v) w dxdy = − v∇w dxdy + ∇(vw) dxdy
Ω Ω Ω
Z Z (6.1)
=− v∇w dxdy + vwT n ds.
Ω Γ

Tale uguaglianza può essere considerata come una generalizzazione della


formula di integrazione per parti. Il teorema di Green si ottiene da (6.1)
sostituendo semplicemente la funzione vettoriale w con il gradiente di una
funzione scalare u(x, y) definita su Ω:
Z Z Z
∇v ∇u dxdy = − v∇(∇u) dxdy + v∇uT n ds.
T
Ω Ω Γ

Osservando che il gradiente del gradiente di u è il Laplaciano della funzione,


e che la funzione ∇uT n, detta derivata normale, è indicata con
∂u
∇uT n = ,
∂n
allora si ottiene la formula di Green:
∂u
Z Z Z
T
∇v ∇u dxdy = − v∆u dxdy + v ds.
Ω Ω Γ ∂n
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 98

6.2 Il metodo agli elementi finiti


Per risolvere numericamente il problema (cioè approssimare la funzione inco-
gnita u) è necessario trasformare tale equazione in un sistema che possa essere
risolto numericamente. I modi per approssimare u sono molti, comunque
il primo requisito è che tali approssimazioni appartengano ad uno spazio
vettoriale di dimensione piccola. Inoltre ci sono altri requisiti. Per esempio, è
difficile approssimare numericamente polinomi di grado elevato. Per ricavare
il sistema di equazioni si usa comunemente la cosiddetta formulazione debole
del problema.
Definiamo
Z  
∂u ∂v ∂u ∂v
Z
T
a(u, v) ≡ ∇u ∇v dxdy = + dxdy
Ω Ω ∂x ∂x ∂y ∂y
e Z
(f, v) ≡ f (x, y)v(x, y) dxdy.

Una proprietà immediata del funzionale a è che esso è bilineare, cioè è lineare
rispetto ad entrambi gli argomenti:
a(µu1 + µ2 u2 , v) = µ1 a(u1 , v) + µ2 a(u2 , v), ∀µ1 , µ2 ∈ R
a(u, λ1 v1 + λ2 v2 ) = λ1 a(u, v1 ) + λ2 a(u, v2 ), ∀λ1 , λ2 ∈ R.

Notiamo che (u, v) indica il prodotto scalare tra u e v nello spazio L2 (Ω), cioè
l’insieme delle funzioni definite su Ω e aventi quadrato integrabile, infatti
Z
(u, v) ≡ u(x, y)v(x, y) dxdy.

Se v(x, y) è una funzione tale v(x, y) = 0 se (x, y) ∈ Γ, allora la formula di


Green applicata alla soluzione dell’equazione di Poisson diviene:

a(u, v) = −(∆u, v).

La formulazione debole del problema iniziale consiste nel selezionare un


sottospazio V ⊂ L2 e quindi nel definire il seguente problema:

Trovare u ∈ V tale che a(u, v) = (f, v), per ogni v ∈ V .

Per capire quali possano essere le scelte per lo spazio V è bene osservare che
la formulazione debole del problema coinvolge solo il prodotto scalare tra i
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 99

gradienti di u e v e quindi lo spazio V può essere l’insieme delle funzioni


derivabili e con derivata prima continua. Questo insieme è definito come
H 1 (Ω). Considerando anche le condizioni al contorno allora le funzioni in
V devono essere nulle su Γ cosicchè lo spazio vettoriale viene indicato con
H01 (Ω).
Il metodo agli elementi finiti consiste nell’approssimare il problema debole
con uno a dimensione finita ottenuto sostituendo lo spazio V con un sot-
tospazio di funzioni che sono definite come polinomi di grado basso su piccoli
pezzi (detti appunto elementi) del dominio originale. Si considera ora la
regione Ω del piano che viene suddivisa in triangoli (indipendentemente dal-
la forma della curva che è la frontiera del dominio), come mostrato nella
seguente figura in cui un dominio a forma di ellisse è stato suddiviso in trian-
goli. È chiaro che quando il numero di triangoli è molto elevato allora il loro
insieme ricoprirà quasi perfettamente il dominio continuo qualunque forma
questo abbia.


• •

• •

• •
• • • • • •
• •

• •

• •

Quindi il dominio è approssimato dall’unione Ωh di m triangoli Ki :


m
[
Ωh = Ki .
i=1

L’unica restrizione da porre è che nessun vertice di un triangolo appartenga


al lato di un altro triangolo, cioè i triangoli possono condividere solo interi
lati e i relativi vertici. La dimensione della griglia h è definita come
h = max diam(Ki )
i=1,...,m
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 100

dove diam(Ki ), diametro del triangolo Ki , è la lunghezza del lato più lungo.
Lo spazio a dimensione finita Vh è definito come lo spazio di tutte le funzioni
che sono lineari a tratti e continue nella regione Ωh e che sono zero sul
contorno Γ. Quindi

Vh = ϕ ϕ|Ωh continua, ϕ|Γ = 0, ϕ|Kj lineare per ogni j ,

dove ϕ|X indica la restrizione della funzione ϕ al sottoinsieme X. Se xj ,


j = 1, . . . , n, sono i nodi della triangolazione, allora una funzione ϕj ∈ Vh
può essere associata ad ogni nodo, in modo tale che la famiglia di funzioni
ϕj (x) soddisfa le seguenti condizioni:

1 se i = j
ϕj (xi ) = δij =
0 se i 6= j.

Queste condizioni definiscono univocamente le funzioni ϕj e inoltre queste


formano una base dello spazio Vh , quindi ogni funzione ϕ ∈ Vh può essere
espressa nella forma
Xn
ϕ(x) = ξi ϕi (x).
i=1

L’approssimazione agli elementi finiti consiste nello scrivere la cosiddetta


condizione di Galerkin per funzioni in Vh definendo cosı̀ il seguente problema:

Trovare u ∈ Vh tale che a(u, v) = (f, v), per ogni v ∈ Vh .

Poichè u ∈ Vh ci sono n gradi di libertà. Poichè la funzione a(·, ·) è lineare


rispetto ai suoi argomenti allora è necessario imporre solo le condizioni:

a(u, ϕi ) = (f, ϕi ), i = 1, . . . , n.

Scrivendo u in termini della base {ϕi } come


n
X
u= ξi ϕi (x).
i=1

e sostituendo nel problema di minimo si ottiene il sistema lineare


n
X
αij ξj = βi
j=1
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 101

dove
αij = a(ϕi , ϕj ), βi = a(f, ϕi ).
A questo punto si deve risolvere il sistema

Ax = b

in cui gli elementi della matrice A sono i valori αij , mentre quelli del vettore b
sono i valori βj . Inoltre la matrice A è simmetrica e definita positiva, infatti
è evidente che Z Z
∇ϕi ∇ϕj dxdy = ∇ϕj ∇ϕi dxdy
Ω Ω
da cui segue che αij = αji . Per vedere che A è definita positiva prima no-
tiamo che a(u, u) ≥ 0, per ogni funzione u. Se fosse a(ϕ, ϕ) = 0 per una
funzione appartenente a Vh , allora il gradiente di ϕ dovrebbe essere nullo
quasi ovunque in Ωh . Poichè ϕ è lineare in ogni triangolo e continua in Ω,
essa deve essere costante nello stesso insieme. Inoltre poichè è nulla sul con-
torno dell’insieme deve essere identicamente nulla su Ω. Il risultato segue
applicando la relazione
(Aξ, ξ) = a(ϕ, ϕ)
con n
X
ϕ= ξi ϕi ,
i=1

che è vera per ogni vettore ξ = [ξ1 , . . . , ξn ]T .


Un’importante osservazione è che la matrice A è molto sparsa. Infatti l’ele-
mento αij è diverso da zero solo quando i supporti delle due funzioni della
base (cioè i domini dove esse sono definite) hanno un triangolo in comune, o,
equivalentemente, quando i nodi i e j sono vertici di uno stesso triangolo.
Assegnato un nodo i il coefficiente αij è diverso da zero quando il nodo j
è uno dei vertici di un triangolo adiacente i. In pratica la matrice A viene
costruita sommando i contributi di tutti i triangoli applicando la formula
X
a(ϕi , ϕj ) = aK (ϕi , ϕj )
k

in cui la somma viene fatta su tutti i triangoli e


Z
aK (ϕi , ϕj ) = ∇ϕi ∇ϕj dx.
K
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 102

Notiamo che aK (ϕi , ϕj ) è zero a meno che i nodi i e j sono entrambi vertici
di K. Quindi un triangolo contrinuisce con valori diversi da zero ai 3 vertici
nella suddetta forma. La matrice 3 × 3:
 
aK (ϕi , ϕi ) aK (ϕi , ϕj ) aK (ϕi , ϕk )
AK =  aK (ϕj , ϕi ) aK (ϕj , ϕj ) aK (ϕj , ϕk ) 
aK (ϕk , ϕi ) aK (ϕk , ϕj ) aK (ϕk , ϕk )
associata al triangolo K(i, j, k) con vertici i, j, k è detta matrice degli elementi
di stiffness. Per formare la matrice A è necessario sommare tutti i contributi
aK (ϕk , ϕm ) in posizione k, m della matrice. Questo procedimento viene detto
processo di assemblaggio:
XN
A= A[κ]
κ=1

in cui N è il numero degli elementi e A[κ] è una matrice che ha solo 9 elementi
diversi da zero pur essendo di dimensione uguale al numero dei nodi.
Esempio 6.2.1 Vediamo come esempio un dominio triangolare suddiviso in
altri 4 triangoli più piccoli e che presenta 6 nodi. Nelle seguenti figure sono
stati evidenziate le strutture delle matrici A[κ] , con κ = 1, 2, 3, 4. Il numero di
matrici da assemblare coincide con il numero di elementi (triangoli), men-
tre ciascuna di tali matrici presenta elementi diversi da zero solo in quegli
elementi di posto (i, j) tali che i nodi xi e xj sono vertici di tale triangolo.
Nell’ultimo grafico viene evidenziata la struttura della matrice assemblata.
Appare evidente come tale struttura dipende ovviamente dal modo con cui
sono stati ordinati i nodi e che ci sono alcuni elementi che sono ottenuti dal
contributo di una singola matrice A[κ] (nel caso in cui un nodo è vertice di
un solo triangolo), altri che invece hanno il contributo di tutte le matrici: il
nodo 5, per esempio, è vertice di tutti i triangoli.
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 103

4 5

2
3 4

1 2 3

Figura 6.1: Dominio per l’esempio 6.2.1.

4 5 A[1] =

2
3 4

1 2 3

Figura 6.2: Matrice A[1] relativa al triangolo 1.


CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 104

4 5 A[2] =

2
3 4

1 2 3

Figura 6.3: Matrice A[2] relativa al triangolo 2.

4 5 A[3] =

2
3 4

1 2 3

Figura 6.4: Matrice A[3] relativa al triangolo 3.


CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 105

4 5 A[4] =

2
3 4

1 2 3

Figura 6.5: Matrice A[4] relativa al triangolo 4.

4 5 A=

2
3 4

1 2 3

Figura 6.6: Struttura della matrice assemblata relativa al dominio a sinistra.


CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 106

Condizioni al contorno particolarmente semplici non creano problemi per


il metodo agli elementi finiti. Infatti il modo migliore per manipolare le
condizioni di Dirichlet è quello di includere i valori al contorno come incognite
e modificare il sistema lineare incorporando tali valori. Cosı̀ ogni equazione
associata ad un punto sulla frontiera è sostituita da un’equazione del tipo
u(xi , yj ) = f (xi , yj ). Questo implica che all’interno del sistema alla matrice
dei coefficienti viene incorporata una piccola matrice identità. Nel caso delle
condizioni di Neumann la formula di Green fornisce le equazioni
∂u
Z Z Z
T
∇u ∇ϕj xdy = − f ϕj dxdy + ϕj ds
Ω Ω Γ ∂n
che coinvolge appunto i valori della derivata normale forniti dalla condizione
di Neumann. Se tali valori sono noti solo in un insieme discreto di punti sulla
frontiera allora si possono approssimare gli altri valori utilizzando l’interpo-
lazione lineare (cioè approssimando l’integrale con la formula dei trapezi)
o con il valor medio della funzione (cioè approssimando l’integrale con la
formula del punto di mezzo). Se le condizioni al contorno sono tutte di Neu-
mann allora è possibile che la matrice dei coefficienti del sistema possa essere
singolare, in tal caso si deve eliminare una delle equazioni del sistema oppure
risolvere il sistema tenendo conto della singolarità della matrice.

Generazione e raffinamento della griglia


Generare una triangolazione per gli elementi finiti può essere fatto in modo
piuttosto semplice partendo da una prima triangolazione e poi effettuando
una raffinamento in modo uniforme oppure in determinate aree del dominio.
Il modo più semplice di effettuare il raffinamento consiste nel prendere i tre
punti medi dei lati di un triangolo e creando altri quattro triangoli che sosti-
tuiscono quello di partenza. Ovviamente tale processo può essere ripetuto an-
che più volte. Nella seguente figura si vede l’applicazione di tale raffinamento
al dominio visto nel precedente paragrafo.
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 107

5
14 15
1
6 7
4 13 5
8 9
2 10 11
9 10 11 12
12 3 4
13 14 15 16
1 7 2 8 3

In questo esempio particolare la matrice dei coefficienti, una volta riassem-


blata, presenta la seguente struttura:

A=

Un vantaggio di questo raffinamento è che consente di preservare gli angoli


della triangolazione originaria, e questo è importante perchè gli angoli di una
CAPITOLO 6. IL METODO AGLI ELEMENTI FINITI 108

buona triangolazione devono soddisfare determinati limiti. Tuttavia l’uso


indiscriminato di strategie di raffinamento uniforme può portare a qualche
problema. Inoltre è preferibile raffinare la griglia nelle zone dove la soluzione
del problema presenta grandi variazioni, piuttosto che in quelle dove ha un
andamento piuttosto uniforme. Anche l’introduzione dei nodi nei punti medi
dei lati andrebbe limitata a casi particolari, sarebbe opportuno aggiungere
qualche punto e unirlo ai vertici dei triangoli già creati.
Il metodo degli elementi finiti, che abbiamo brevemente descritto in questo
capitolo, solo nei tratti essenziali, ha dimostrato, negli ultimi anni, una
enorme versatilità, al punto da essere il metodo probabilmente più utiliz-
zato nella risoluzione numerica di equazioni alle derivate parziali. Il van-
taggio indiscusso è la possibilità di applicazione a domini di qualsiasi tipo,
sia in due che in tre dimensioni, problema che invece hanno i metodi alle
differenze finite. Un secondo, indiscutibile, vantaggio è l’uso di strategie
di griglia variabile, cioè la possibilità di utilizzare un numero di elementi
variabile a seconda del comportamento della soluzione, che lo rende partico-
larmente flessibile. Dall’altro lato va consiederata anche una certa difficoltà
nella necessità di riformulare il problema differenziale in termini variazionali.
Capitolo 7

Metodi iterativi per sistemi


sparsi

7.1 Il Metodo di Jacobi


Come abbiamo visto nel capitolo dedicato alle equazioni ellittiche i sistemi
lineari che derivano dalla discretizzazione di equazioni alle derivate parziali
hanno grandi dimensioni e sono sparsi, cioè una buona parte degli elementi
della matrice dei coefficienti sono nulli. Tuttavia quando si applicano i metodi
diretti a tali sistemi succede che le matrici perdono la struttura di sparsità,
cioè molti elementi nulli diventano diversi da zero e inoltre si ha il problema
di gestire matrici di grosse dimensioni, il che può causare un notevole degrado
delle prestazioni dei metodi usati. Per questi motivi si introduce una nuova
classe di metodi, detti metodi iterativi. Supponiamo di dover risolvere il
sistema Ax = b, con A matrice non singolare, b 6= 0. Assumiamo inoltre che
gli elementi diagonali della matrice aii , i = 1, . . . , n, siano diversi da 0. La
i−esima equazione del sistema si scrive
ai1 x1 + ai2 x2 + · · · + ain xn = bi
e, isolando xi risulta:
n
!
X 1
xi = bi − aij xj i = 1, . . . , n.
j=1,j6=i
aii

Queste n equazioni sono del tutto equivalenti al sistema di partenza tut-


tavia la loro forma suggerisce particolari procedimenti iterativi per cercare la

109
CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 110

(0) (0) (0)


soluzione. A partire da un’approssimazione iniziale x(0) = (x1 , x2 , . . . , xn )
si calcola la successione di vettori {x(k) } ponendo
n
!
(k+1)
X (k) 1
xi = bi − aij xj i = 1, . . . , n; (7.1)
j=1,j6=i
a ii

con k = 0, 1, 2, . . . .
La generica componente i−esima del vettore al passo k + 1 è calcolata per
mezzo di tutte le componenti del vettore al passo k eccetto la i−esima.
Questo procedimento iterativo prende il nome di metodo di Jacobi.

7.2 Il Metodo di Gauss-Seidel


Una variante del metodo di Jacobi si ottiene osservando che, quando si calcola
(k+1) (k+1)
xi si possono utilizzare le approssimazioni xj , con j = 1, . . . , i − 1,
ottenendo
i−1 n
!
(k+1) 1 X (k+1)
X (k)
xi = bi − aij xj − aij xj . (7.2)
aii j=1 j=i+1

Si ottiene in questo modo il classico Metodo di Gauss-Seidel, dove la compo-


nente i−esima al passo k + 1 è calcolata per mezzo delle componenti dalla
prima alla i − 1-esima al passo k + 1 e dalla i + 1-esima alla n−esima al passo
k. Si deve osservare che entrambi i metodi appena introdotti non utilizzano
la componente i−esima al passo k. Per questo si introduce una nuova vari-
ante che coinvolge tale valore a partire da un parametro ω 6= 0. Si propone
lo schema
" i−1 n
#
(k+1) ω X (k+1)
X (k) (k)
xi = bi − aij xj − aij xj + (1 − ω)xi . (7.3)
aii j=1 j=i+1

Questa classe di metodi prende il nome di Metodi di Rilassamento. Si osserva


facilmente che se si pone ω = 1 il metodo di Rilassamento coincide con il
metodo di Gauss-Seidel.
Tutti i metodi appena descritti tengono in conto il carattere sparso della
matrice dei coefficienti poichè si può evitare di eseguire prodotti del tipo aij xj
quando aij è nullo. Per decidere quando fermare il calcolo delle iterazioni
CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 111

si può pensare di fissare a priori una tolleranza ε e prendere x(k+1) come


approssimazione della soluzione quando risulta

kx(k+1) − x(k) k

kx(k+1) k

per una fissata norma vettoriale. Di solito si sceglie come approssimazione


iniziale x(0) il vettore nullo.

7.3 Il Metodo del Gradiente Coniugato


Consideriamo il problema di minimizzare la funzione
1
Φ(x) = xT Ax − xT b
2
dove b ∈ Rn e A ∈ Rn×n è una matrice simmetrica e definita positiva. La
soluzione del problema è:
x = A−1 b
quindi ha senso applicare i metodi di minimizzazione di Φ(x) per risolvere il
sistema lineare
Ax = b.
Un primo metodo per minimizzare Φ(x) è il metodo di steepest descent (tra-
ducibile in italiano come metodo di più ripida discesa). Esso si basa sul-
l’osservazione che nel punto xc ∈ Rn la funzione Φ decresce più rapidamente
nella direzione del gradiente con il segno cambiato:

−∇Φ(xc ) = b − Axc .

Poniamo
rc = b − Axc
il vettore detto residuo di xc . Se il residuo è diverso da zero cerchiamo di
trovare il parametro α > 0 tale che:

Φ(xc + αrc ) < Φ(xc ).


CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 112

Vediamo ora come calcolare il valore di α.


1
Φ(xc + αrc ) = (xc + αrc )T A(xc + αrc ) − (xc + αrc )T b
2
1
= (xTc Axc + αrTc Axc + αxTc Arc + α2 rTc Arc ) − xTc b − αrTc b =
2
1 2 T  1
= α rc Arc + 2α rTc Axc − rTc b + xTc Axc − xTc b
2 2
1 2 T  1
= α rc Arc − 2αrTc rc + xTc Axc − xTc b.
2 2
Dovendo minimizzare la funzione Φ(xc + αrc ) calcoliamo il valore di α che
annulla la derivata prima:
Φ′ (xc + αrc ) = αrTc Arc − rTc rc .
Quindi
rTc rc
Φ′ (xc + αrc ) = 0 ⇒ α= .
rTc Arc
Abbiamo quindi il seguente algoritmo:
k=0
x0 arbitario
r0 = b − Ax0
while rk 6= 0
αk = (rTk rk )/(rTk Ark )
xk+1 = xk + αk rk
rk = b − Axk
k =k+1
end
Il vettore xk rappresenta un’approssimazione della soluzione. La convergen-
za del metodo dipende dallo spettro della matrice A ed in particolare dal
rapporto tra gli autovalori estremi di A, cioè
λ1 (A)
.
λn (A)
Quando tale rapporto è grande la convergenza è lenta. Inoltre quanto più
il vettore xk si avvicina alla soluzione tanto più il residuo rk ha componenti
CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 113

piccole e quindi la velocità di convergenza tende a diminuire.


Una modifica del metodo consiste nel minimizzare la funzione Φ(x) lungo
una direzione pk di descrescita della funzione, cioè tale che

pk ∇φ(xk ) < 0

determinando cosı̀ l’approssimazione

xk+1 = xk + αk pk

tale che
φ(xk+1 ) = min Φ(xk + αk pk ).
α∈R

Ripetendo i passaggi in modo già visto si ottiene

Φ′ (xk + αpk ) = (xk + αpk )T Apk − bT pk

da cui, calcolando il punto stazionario, si ottiene

(b − Axk )T pk rTk pk
αk = = . (7.4)
pTk Apk pTk Apk

Poichè rTk pk > 0 segue che αk > 0. Calcolando il residuo al passo k + 1 si


ottiene l’espressione:

b − Axk+1 = b − A(xk + αk pk ) = b − Axk + αk Apk

e quindi
rk+1 = rk − αk Apk
e, dalla (7.4):

rTk+1 pk = (rk − αk Apk )T pk = rTk pk − αk ApTk pk = 0,

quindi ad ogni passo il residuo rk+1 è ortogonale al vettore direzione pk del


passo precedente. Il problema è la scelta delle direzioni pk . In particolare
si può definire un metodo in cui viene scelta ad ogni passo una direzione
pk lungo cui muovere le approssimazioni che tenga conto delle direzioni
p0 , p1 , . . . , pk−1 calcolate ai passi precedenti. Un metodo che utilizza tale
CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 114

strategia è il metodo del gradiente coniugato in cui le direzioni sono definite


dai seguenti vettori:

 r0 k=0
pk =
rk + βk pk−1 k ≥ 1,

dove βk ∈ R viene scelto in modo tale che risulti:

pTk Apk−1 = 0

cioè pk risulta A−coniugato rispetto al vettore pk−1 . Imponendo tale propri-


età risulta:
(rk + βk pk−1 )T Apk−1 = 0
rTk Apk−1 + βk pTk−1 Apk−1 = 0
rTk Apk−1
βk = − , k ≥ 1. (7.5)
pTk−1 Apk−1
La direzione pk è una direzione di decrescita di Φ(x), infatti

−pTk ∇Φ(xk ) = pTk rk = rTk rk + βk pTk−1 rk = rTk rk > 0.

Il valore di αk viene trovato nello stesso modo descritto nel metodo di più
ripida discesa.
1
Φ(xk + αk pk ) = (xk + αk pk )T A(xk + αk pk ) − (xk + αk pk )T b
2
1
= (xTk Axk + αk pTk Axk + αk xTk Apk + αk2 pTk Apk ) − xTk b − αk pTk b
2
1 2 T  1
= αk pk Apk + 2αk pTk Axk − pTk b + xTk Axk − xTk b
2 2
1 2 T  1
= αk pk Apk − 2αk pTk rk + xTk Axk − xTk b.
2 2
Il valore di αk che minimizza la funzione è

pTk rk rTk rk
αk = = .
pTk Apk pTk Apk
CAPITOLO 7. METODI ITERATIVI PER SISTEMI SPARSI 115

Ora
rTk rk−1 = rTk pk−1 − βk−1 rTk pk−2 = −βk−1 rTk pk−2
e
rTk pk−2 = rTk−1 pk−2 − αk pTk−1 Apk−2 = 0
da cui segue che
rTk rk−1 = 0, (7.6)
cioè ogni vettore residuo è ortogonale al precedente. Inoltre

pTk rk−1 = rTk rk−1 + βk pTk−1 rk−1 = βk pk−1 rk−1 = βk rTk−1 rk−1 (7.7)

e
pTk rk−1 = pTk rk + αk−1 pTk Apk−1 = pTk rk = rTk rk (7.8)
ottenendo una nuova espressione per βk :

rTk rk
βk = .
rTk−1 rk−1

Possiamo riassumere il metodo del gradiente coniugato nel seguente algorit-


mo:

k=0
x0 arbitario
r0 = b − Ax0
while rk 6= 0
βk = (rTk rk )/(rTk−1 rk−1 ) (β0 = 0 se k = 0)
pk = rk + βk pk−1 (p0 = r0 se k = 0)
αk = (rTk rk )/(pTk Apk )
xk+1 = xk + αk pk
rk+1 = rk − αk Apk
k =k+1
end