Sei sulla pagina 1di 18

DIFFERENZE FINITE

Il metodo delle dierenze nite consiste nellapprossimare il valore della


derivata di una funzione u in un punto x (per il quale sarebbe necessario
conoscere tutti i valori della funzione (quindi inniti) in un intorno di x), con
unespressione che ne tenga in conto solo un numero nito (spesso molto pic-
colo). Si passa cio`e dalloperazione di limite a quella di rapporto incrementale.
Ci` o permette, ad esempio, di trasformare unequazione alle derivate parziale in
un problema algebrico. In particolare se il problema di partenza `e lineare, si ot-
tiene un sistema lineare del tipo Ax = b, con A matrice sparsa, la cui sparsit` a
dipende dal numero di valori usati nellapprossimazione delle derivate.
1 Derivazione delle formule
1.1 Sviluppo in serie di Taylor
Il pi` u classico approccio per determinare le approssimazioni alle dierenze
nite ed analizzarne lerrore, consiste nello sviluppare la funzione u(x) in serie
di Taylor in un intorno del punto x, di troncare opporunamente tale sviluppo
ed eventualmente di combinare linearmente varie espressioni relative a diversi
sviluppi ottenuti considerando diversi intorni. Vediamo nel seguito alcune
applicazioni di tale approccio.
Dato h > 0, si considerino i due seguenti sviluppi:
u( x +h) = u( x) +hu

( x) +
1
2
h
2
u

( x) +
1
6
h
3
u

( x) +O(h
4
), (1)
u( x h) = u( x) hu

( x) +
1
2
h
2
u

( x)
1
6
h
3
u

( x) +O(h
4
). (2)
Si ricorda che una quantit` a `e un O(h
p
) se va a zero quando h 0 rapidamente
almeno tanto quanto ci va h
p
. Dalle due precedenti espressioni si ricavano
1
facilmente le due seguenti approssimazioni del primo ordine per la derivata
prima:
D
+
u( x) =
u( x +h) u( x)
h
= u

( x) +O(h) (3)
e
D

u( x) =
u( x) u( x h)
h
= u

( x) +O(h). (4)
Infatti dalla (1) dividendo per h si ottiene (u( x + h) u( x))/h = u

( x) +
1/2hu

( x) + 1/6h
2
u

( x) + O(h
3
). Essendo x ssato, i valori u

( x) e u

( x)
sono dei numeri costanti indipendenti da h; si ottiene quindi la (3). Analogo
ragionamento vale per determinare la (4). Similmente, sottraendo la (2) alla
(1) e dividendo per 2h, si ottiene
D
c
u( x) =
u( x +h) u( x h)
2h
= u

( x) +O(h
2
), (5)
cio`e unapprossimazione della derivata prima del secondo ordine.
Per ottenere delle espressioni approssimanti le derivate di ordine superiore,
si possono combinare gli operatori dierenziali discreti relativi agli ordini in-
feriori. Ad esempio, per ottenere unapprossimazione della derivata seconda,
si pu` o scrivere:
D
2
( x) = D
+
(D

u( x)) =
1
h
[D

u( x +h) D

u( x)] = (6)
=
1
h
[(
u( x +h) u( x)
h
) (
u( x) u( x h)
h
)] =
1
h
2
[u( x +h) 2u( x) + u( x h)].
Per determinarne lerrore, si sostituiscono nellespressione trovata gli sviluppi
in serie di Taylor opportunamente troncati. Ad esempio, nella (6), sostituendo
la (1) e la (2), si ottiene:
D
2
( x) = u

( x) + O(h
2
) (7)
Un metodo alternativo per determinare unespressione che approssimi una
certa derivata `e il metodo dei coecienti incogniti. Esso consiste nel con-
siderare una combinazione lineare dei valori di cui si dispone e di imporre
delle condizioni sui coecienti in modo da assicurare la migliore accuratez-
za. Ad esempio, si vuole trovare unapprossimazione della derivata prima in
x conoscendo i valori u( x), u( x h) e u( x 2h). Si consideri la seguente
combinazione:
D
1
u( x) = au( x) +bu( x h) +cu( x 2h).
2
Considerando lo sviluppo u( x 2h) = u( x) 2hu

( x) + 1/2(2h)
2
u

( x)
1/6(2h)
3
u

( x) +O(h
4
) e la (2), si ottiene
D
1
u( x) = (a+b+c)u( x)(b+2c)hu

( x)+
1
2
(b+4c)h
2
u

( x)
1
6
(b+8c)h
3
u

( x)+O(h
4
),
da cui, per ottenere la massima accuratezza, si possono imporre le seguenti
condizioni:
_
_
_
a +b +c = 0
b + 2c = 1/h
b + 4c = 0
Risolvendo il precedente sistema si ottiene la seguente espressione
D
1
u( x) =
1
2h
[3u( x) 4u( x h) +u( x 2h)]
Sostituendo in questultima gli sviluppi in serie di Taylor per u( xh) e u( x
2h), si ottiene il seguente errore
D
1
u( x) = u

( x) +O(h
2
).
1.2 Interpolazione
Un modo per ottenere schemi alle dierenze nite pi` u generali consiste nel
derivare (esattamente) un opportuno interpolatore della funzione u(x) a partire
da un numero nito di informazioni. In base al tipo di interpolazione utilizzata
si ottengono diversi schemi. In particolare nel seguito faremo riferimento a 3
tipi di interpolazione.
1.2.1 Interpolazione composita lagrangiana - Dierenze nite clas-
siche
Si suddivida il dominio di intresse [a, b] in N + 1 nodi a = x
0
, x
1
, . . . , x
N
= b
e si raggruppino questi ultimi in gruppi di k + 1 (con k ssato) in modo che
i nodi estremi di due intervalli adiacenti I
l
e I
l+1
coincidano. Si denisce
interpolatore composito lagrangiano (ICL) di grado k la funzione
k
h
u(x) che
soddisfa le seguenti propriet` a:
_

k
h
u(x
j
) = u(x
j
) j = 0, . . . , N

k
h
u|
I
l
P
k
I
l
3
Tale interpolatore `e unico e soddisfa la seguente stima:
u
k
h
u

Ch
k+1
u
(k+1)

dove si `e indicato con g

= max
x[a,b]
|g(x)| e a patto di assumere che
u
(k+1)

sia una quantit` a nita. Questo ci assicura la convergenza uniforme


dell ICL alla funzione u con velocit` a pari (almeno) a k + 1. Ogni volta che
si deriverer` a lICL per ottenere uno schema alle dierenze nite si perder` a un
grado di esattezza (ad esempio, un approssimazione per la derivata prima avr` a
ordine di esattezza k).
Ponendo k = 1 si consideri linterpolazione composita lineare ottenuta
raccordando linearmente i valori della funzione u in corrispondenza dei nodi.
Si consideri il generico elemento I
j
costituito dai nodi x
j
e x
j+1
e si ponga
u(x
i
) = u
i
e p(x) =
1
h
u|
I
j
. Si faccia inoltre una traslazione dellasse y in
modo che x
j
= 0 e x
j+1
= h, ove h = x
j+1
x
j
. La retta passante per i due
punti (0, u
j
) e (h, u
j+1
) ha espressione
p(x) =
u
j+1
u
j
h
x +u
j
e quindi si ottiene (per la funzione u si mantiene loriginario asse y):
u

(x
j
) D
j
= p

(0) =
u
j+1
u
j
h
(8)
u

(x
j+1
) D
j+1
= p

(h) =
u
j+1
u
j
h
(9)
dove con D
i
si `e indicata lapprossimazione della derivata prima nel nodo x
i
. Le
due espressioni precedenti costituiscono unapprossimazione del primo ordine
(infatti lICL ha ordine di esattezza pari a 2) della derivata prima in un nodo
costruita utilizzando il valore della funzione nel nodo in questione ed in quello
immediatamente alla sua destra (Eulero in avanti) o alla sua sinistra (Eulero
indietro) rispettivamente.
Si ponga ora k = 2 e si consideri il generico elemento I
l
formato dai nodi
x
j1
, x
j
e x
j+1
. Sia p(x) =
2
h
u|
I
l
lICL di secondo ordine relativo allintervallo
I
l
e si trasli lasse y in modo che x
j1
= h, x
j
= 0 e x
j+1
= h. Si ottiene la
seguente espressione per la parabola interpolatrice:
p(x) =
u
j+1
2u
j
+ u
j1
2h
2
x
2
+
u
j+1
u
j1
2h
x +u
j
.
4
Derivando, si ottengono quindi le seguenti 3 espressioni:
u

(x
j
) D
j
= p

(0) =
u
j+1
u
j1
2h
(10)
u

(x
j1
) D
j1
= p

(h) =
u
j+1
+ 4u
j
3u
j1
2h
u

(x
j+1
) D
j+1
= p

(h) =
3u
j+1
4u
j
+u
j1
2h
(11)
Tutte e tre queste approssimazioni della derivata prima hanno grado di esat-
tezza pari a 2 (infatti lICL ha ordine di esattezza pari a 3). Si noti come si
siano ritrovate le approssimazioni derivate nella precedente sezione.
Per ottenere unapprossimazione della derivata seconda si deriva due volte
lICL. Ad esempio nel caso precedente si ottiene:
f

(x
j
) p

(0) =
u
j+1
2u
j
+u
j1
h
2
(12)
A dierenza di quanto ci si possa aspettare, questa approssimazione della
derivata seconda ha grado di esattezza pari a 2. Pi` u in generale infatti,
derivando due volte lICL si perde solo un grado di esattezza se k `e pari.
1.2.2 Interpolazione hermitiana - Dierenze nite compatte
Per costruire un polinomio interpolatore di grado N, si potrebbe pensare di
utilizzare N + 1 informazioni concernenti non solo i valori della u, ma anche
delle sue derivate, qualora disponibili. In questo modo si possono costru-
ire interpolatori compositi di un certo grado utilizzando un minor numero di
nodi rispetto agli ICL (interpolatore hermitiano, IH). Questo tipo di interpo-
lazione non `e sempre ben posta. Se per` o i nodi dove sono assegnate le derivate
sono un sottoinsieme di quelli ove si assegnano i valori della funzione, allora
linterpolatore di Hermite esiste.
Tuttavia, se l interpolazione hermitiana viene utilizzata per ottenere unap-
prossimazione alle dierenze nite della derivata di ordine r, i valori u
(r)
(x
j
)
non sono disponibili e devono essere considerati incogniti. Ad esempio, volendo
derivare unapprossimazione della derivata prima, si potrebbe costruire un in-
terpolatore hermitiano di grado 4 su 3 nodi, utilizzando i valori u
j1
, u
j
, u
j+1
, u

j1
e u

j+1
(avendo posto u

i
= u

(x
i
)). Tuttavia, queste ultime due informazioni
non sono disponibili. Di conseguenza si sostituiscono i valori u

j1
e u

j+1
con
5
le approssimazioni (incognite) D
j1
e D
j+1
rispettivamente. Traslando lasse
y come in precedenza, si ottiene:
_
p(x) = a +bx +cx
2
+dx
3
+ex
4
p

(x) = b + 2cx + 3dx


2
+ 4ex
3
Imponendo che siano soddisfate le 5 condizioni, si ottiene:
_

_
p(h) = a bh +ch
2
dh
3
+eh
4
= u
j1
p(0) = a = u
j
p(h) = a +bh +ch
2
+dh
3
+eh
4
= u
j+1
p

(h) = a 2bh + 3ch


2
4dh
3
= D
j1
p

(h) = a + 2bh + 3ch


2
+ 4dh
3
= D
j+1
Risolvendo questo sistema, si ottiene
b =
1
4
(D
j+1
+D
j1
) +
3
4
(u
j+1
u
j1
)
da cui
u

(x
j
) D
j
= p

(0) = b =
1
4
(D
j+1
+D
j1
) +
3
4
(u
j+1
u
j1
)
Scrivendo le precedenti espressioni per ogni nodo x
i
, si ottiene un sistema
lineare Cd = Tu nelle incognite D
i
con C matrice tridiagonale e u il vettore
di componenti u(x
i
). Risolvendo tale sistema, si ottiene unapprossimazione
della derivata prima con grado di esattezza pari a 4. Tuttavia, applicando
tali schemi alle equazioni dierenziali, il sistema per determinare le formule
compatte non va risolto (si veda Sezione 2.1).
Derivando quindi un interpolatore hermitiano, si possono ottenere schemi
alle dierenze nite di ordine N utilizando un numero di nodi M < N + 1
(da cui il nome di dierenze nite compatte). Il prezzo da pagare consiste
nel dover risolvere un sistema lineare per ottenere le approssimazioni cercate
a dierenza degli schemi classici per cui le espressioni delle approssimazioni
sono esplicite.
1.2.3 Interpolazione polinomiale su nodi di Gauss - Dierenze nite
pseudo-spettrali
Si consideri lintepolazione composta lagrangiana. Ponendo k = N, si ottiene
l interpolatore polinomiale (IP) di grado N
N
u(x). LIP pu` o avere problemi
6
di instabilit` a per N sucientemente grande. Esistono infatti delle funzioni
u(x) per cui
N
uu

non va a zero se N . Famoso `e il controesempio


di Runge, che mostra come lIP di grado sucientemente grande della fun-
zione 1/(1 +x
2
) sul dominio [1, 1] sia instabile, nel senso che presenta grandi
oscillazioni in prossimit` a degli estremi. Un rimedio per ovviare a tali fenomeni
consiste nel considerare una ubicazione dei nodi non uniforme. In generale,
interpolando sui nodi di Gauss (radici di opportuni polinomi), si dimostra che
lIP `e stabile. In particolare, molto utilizzati sono i nodi di Gauss-Chebichev
(radici dei polinomi di Chebichev):
x
c
j
= cos
_
(2j + 1)
2(N + 1)
_
La precedente espressione si riferisce allintervallo [1, 1], ma pu` o essere es-
tesa facilmente a un intervallo qualsiasi [a, b]. Come si pu` o notare, i nodi di
Gauss-Chebichev sono pi` u tti vicino agli estremi, laddove sorgono i proble-
mi di instabilit` a. Unaltra possibilit` a molto utilizzata nei cosiddetti elementi
spettrali `e costituita dai nodi di Gauss-Legendre.
In generale gli estremi dellintervallo non sono nodi di Gauss. Se si vo-
lessero includere anche gli estremi per costruire lIP, si parla di nodi di Gauss-
Lobatto (in particolare di nodi di Gauss-Lobatto-Chebichev e Gauss-Lobatto-
Legendre). Lutilizzo dei nodi di Gauss-Lobatto non garantisce solo la stabilit` a
dellinterpolatore, ma migliora anche laccuratezza: infatti mentre lIP su nodi
equispaziati ha grado di esattezza pari a N, nel senso che interpola esatta-
mente polinomi di grado N, lIP costruito sui nodi di Gauss-Lobatto ha grado
di esattezza pari a 2N 1.
Derivando lIP costruito sui nodi di Gauss (o di Gauss-Lobatto) si otten-
gono approssimazioni delle derivate su tali nodi che danno luogo agli schemi
alle dierenze nite pseudo-spettrali.
2 Applicazione alle equazioni dierenziali
Si vogliono nel seguito fornire degli esempi di applicazione delle espressioni
precedentemente ricavate per discretizzare le equazioni dierenziali. Data la
funzione f(x), si consideri la seguente equazione
_
u

(x) = f(x) 0 < x < 1


u(0) = 0 u(1) = 0.
(13)
7
Lequazione `e semplicissima e in realt` a si presta ad essere risolta analitica-
mente. Basta infatti integrare due volte sul dominio:
u

(x) =
_
x
0
f(s)ds +C
1
u(x) =
_
x
0
_
_

0
f(s)ds
_
d +C
1
x +C
0
Imponendo che siano soddisfatte le condizioni al bordo, si determinano le
costanti:
_
C
0
= 0
C
1
=
_
1
0
_
_

0
f(s)ds
_
d
Ponendo F() =
_

0
f(s)ds, si ottiene integrando per parti:
_
1
0
F()d = [F()]
1
0

_
1
0
f()d = F(1)
_
1
0
f()d =
_
1
0
(1 )f()d
e
_
x
0
F()d = [F()]
x
0

_
x
0
f()d = F(x)
_
x
0
f()d =
_
x
0
(x)f()d.
Sositituendo, si ottiene:
u(x) =
_
_
1
0
F()d
_
x
_
x
0
F()d = x
_
1
0
(1 )f()d
_
x
0
(x )f()d
e, spezzando il primo integrale,
u(x) =
_
x
0
(1 x)f()d +
_
1
x
x(1 )f()d.
Introducendo la funzione di Green
G(, x) =
_
(1 x) 0 < x
x(1 ) x < < 1
si ottiene la soluzione esplicita:
u(x) =
_
1
0
G(, x)f()d.
8
Passando ad una discretizzazione che utilizzi le formule alle dierenze nite,
si consideri una discretizzazione dellintervallo [0, 1] di passo uniforme h e nodi
x
j
, con j = 0, . . . , m + 1, e si denoti con T
h
tale dominio computazionale. Si
indichi inoltre con U
j
lapprossimazione incognita di u(x
j
). Si consideri inoltre
come approssimazione della derivata seconda lespressione data dalla (6). Si
pu` o allora sostituire lequazione (13) con un sistema di equazioni algebriche
ottenute scrivendo per ogni nodo x
j
:

1
h
2
(U
j+1
2U
j
+U
j1
) = f(x
j
). (14)
In altre parole si colloca lequazione in un punto e la si sosituisce con una sua
approssimazione. Ci` o fa s` che il metodo delle dierenze nite sia, a dierenza
degli elementi niti, un metodo di collocamento.
Volendo trattare diverse condizioni al bordo, si distinguono di seguito tre
casi che portano a tre diversi problemi discreti.
2.1 Condizioni di Dirichlet
Si considerino le seguenti condizioni al bordo:
_
u(0) =
u(1) =
Si noti che in questo caso si conoscono i valori U
0
= e U
m+1
= . Avendo
quindi m incognite, si scrive lequazione (14) nei nodi x
1
, . . . , x
m
ottenendo
cos` m equazioni. Si ottiene un sistema lineare nella forma Au
h
= F, con
u
h
= (U
1
, . . . , U
m
) il vettore delle incognite,
A =
1
h
2
_

_
2 1 0 . . .
1 2 1 0 . . .
0 1 2 1 0 . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . 0 1 2 1
. . . 0 1 2
_

_
9
e
F =
_

_
f(x
1
) +/h
2
f(x
2
)
f(x
3
)
.
.
.
f(x
m1
)
f(x
m
) +/h
2
_

_
.
Infatti scrivendo lequazione (14) nel nodo x
1
si ottiene:

1
h
2
(U
2
2U
1
+U
0
) = f(x
1
).
Il termine U
0
, essendo noto, pu` o essere portato a destra. Ci` o spiega il fatto che
la prima riga della matrice A e la prima componente del vettore F abbiamo
una forma diversa rispetto alle altre. Analogo ragionamento vale scrivendo
lequazione (14) nel nodo x
m
.
Si noti come se si fosse utilizzato uno schema compatto per discretizzare
la derivata seconda, ottenuto risolvendo il sistema Cd
2
= Tu
h
, con d
2
il vet-
tore delle approssimazioni incognite della derivata seconda, si sarebbe ottenuto
C
1
Tu
h
= F, da cui il sistema lineare Tu
h
= CF. In questo caso la matrice
T ha uno stencil a parit` a di accuratezza pi` u piccolo rispetto a quello della
matrice A. Al contario, la matrice S derivante dallapplicazione delle formule
pseudo-spettrali `e piena e quindi il costo computazionale richiesto `e molto pi` u
grande. In compenso lordine di accuratezza di tali formule (e quindi della
soluzione discreta, vedi Sezione 3) `e molto alto, in particolare se f C

si ha
una convergenza esponenziale.
Completato il percorso di discretizzazione, che ha portato ad un sistema
lineare con matrice tridiagonale, si passi alla analisi del problema discreto, che,
sostanzialmente, consiste nel chiedersi:
a) Il problema discreto, ovvero il sistema lineare precedentemente ricavato,
`e ben posto?
b) u
h
u per h 0, ovvero la soluzione discreta converge a quella esatta?
Si noti come la soluzione discreta sia un vettore e che, se il suo limite esiste,
esso sia una funzione poich`e T
h
[0, 1] per h 0. In generale per rispondere
al primo quesito `e suciente mostrare che la matrice A `e non singolare. In
10
questo caso specico, essendo 0 = z R
m
, si ottiene:
z
T
Az = [z
1
z
2
. . . z
m
]
1
h
2
_

_
2 1 0 . . .
1 2 1 0 . . .
0 1 2 1 0 . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . 0 1 2 1
. . . 0 1 2
_

_
_

_
z
1
z
2
.
.
.
z
m
_

_
=
=
1
h
2
[z
1
z
2
. . . z
m
]
_

_
2z
1
z
2
z
1
+ 2z
2
z
3
.
.
.
z
j1
+ 2z
j
z
j+1
.
.
.
z
m1
+ 2z
m
_

_
=
=
1
h
2
_
z
2
1
+z
2
m
+
m1

i=1
(z
i
z
i+1
)
2
_
> 0 (15)
Ci` o signica che la matrice A`e denita positiva, che i suoi autovalori sono tutti
positivi e che quindi `e invertibile. Si fa notare come la propriet` a fondamentale
sia la denizione in segno, non la positivit` a. Infatti sono le matrici indenite
o semidenite in segno a risultare problematiche.
Per quanto riguarda il quesito b) sulla convergenza si rimanda alla prossima
sezione.
2.2 Condizioni miste
Si considerino le seguenti condizioni al bordo:
_
u

(0) =
u(1) =
si assegni cio`e nel nodo x
0
una condizione di Neumann. Si noti che in questo
caso si ha unincognita in pi` u rispetto al caso precedente, in quanto il valore
di U
0
non `e assegnato. Si ha quindi bisogno di unequazione in pi` u che tenga
in conto della condizione di Neumann. Si potrebbe ad esempio considerare la
seguente approssimazione del tipo (3) per la condizione in x
0
:
U
1
U
0
h
=
11
che, posta come prima equazione, porta al seguente sistema lineare nelle incog-
nite (U
0
, U
1
, . . . , U
m
):
1
h
2
_

_
1 1 0 . . .
1 2 1 0 . . .
0 1 2 1 0 . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . 0 1 2 1
. . . 0 1 2
_

_
_

_
U
0
U
1
U
2
.
.
.
U
m1
U
m
_

_
=
_

_
/h
f(x
1
)
f(x
2
)
.
.
.
f(x
m1
)
f(x
m
) +/h
2
_

_
.
Anche in questo caso si pu` o vericare che la matrice A `e denita positiva.
Unaltra scelta (che come si vedr` a in seguito porta ad una migliore ap-
prossimazione in termini di errore) `e quella di considerare per la condizione di
Neumann unapprossimazione centrata del tipo (5):
1
2h
(U
1
U
1
) = , (16)
che introduce unulteriore incognita associata ad un nuovo nodo (nodo fan-
tasma). Per eliminare tale incognita si noti come nel nodo x
0
sia possibile
collocare lequazione:

1
h
2
(U
1
2U
0
+U
1
) = f(x
0
).
Eliminando U
1
dalla (16) e sostituendola nella precedente, si ottiene la seguente
equazione da inserire nel sistema lineare:
1
h
2
(U
0
U
1
) = /h +
1
2
f(x
0
).
2.3 Condizioni di Neumann
Si consideri inne il caso in cui si assegni su entrambi i nodi esterni una
condizione di Neumann:
_
u

(0) =
0
u

(1) =
1
12
Utilizzando per entrambe le condizioni la seconda delle strategie analizzate nel
caso precedente, si perviene al seguente sistema lineare:
1
h
2
_

_
1 1 0 . . .
1 2 1 0 . . .
0 1 2 1 0 . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . 0 1 2 1
. . . 0 1 1
_

_
_

_
U
0
U
1
U
2
.
.
.
U
m
U
m+1
_

_
=
_

0
/h + 1/2f(x
0
)
f(x
1
)
f(x
2
)
.
.
.
f(x
m
)

1
/h + 1/2f(x
m+1
)
_

_
.
Tuttavia, in questo caso la matrice A `e singolare per cui il sistema pu` o o
ammettere innite soluzioni oppure non ammetterne, in base al fatto che il
termine noto appartenga o meno allimmagine di A. Infatti in questo caso si
ottiene:
z
T
Az =
1
h
2
m

i=0
(z
i
z
i+1
)
2
0.
La matrice A `e semidenita positiva, infatti per z = e
i
, con = 0 ed e
i
il vettore di componenti
ij
(delta di Kroenecher), si ottiene z
T
Az = 0 con
z = 0. Ci` o era da aspettarsi, in quanto la funzione incognita al bordo com-
pare solo sotto segno di derivata. La causa della non risolvibilit` a del precedente
sistema lineare non `e quindi da ricercarsi nel sistema numerico scelto, bens`
nel problema continuo che `e mal posto. Ci` o pu` o essere anche spiegato dando
uninterpretazione sica dellequazione (13). Essa potrebbe rappresentare le-
quazione stazionaria che descrive la distribuzione di temperatura in una sbarra
soggetta ad una sorgente di calore f(x). Le condizioni di Dirichlet corrispon-
dono ad assegnare il valore della temperatura in un estremo, mentre quelle
di Neumann corrispondono ad assegnarne il usso di calore entrante o us-
cente. Assegnando due condizioni di Neumann omogenee (cio`e imponendo che
la sbarra sia termicamente isolata) ci si aspetta che con termine sorgente nullo
qualsiasi soluzione del tipo u = c, con c costante, risolva il problema posto.
In tal caso infatti il termine F (cio`e il vettore nullo) appartiene allimmagine
di A. Se f = 0, ci si aspetta che il problema non ammetta soluzione dal mo-
mento che si sta aggiungendo (o togliendo) calore ad un sistema isolato, la cui
temperatura crescer` a quindi (o diminuir` a) indenitivamente.
13
3 Consistenza, stabilit`a e convergenza
In questa sezione si indagher` a la convergenza della soluzione approssimata alla
soluzione esatta. Non si far` a dunque pi` u riferimento al problema con entrambe
le condizioni di Neumann.
Partendo dalle considerazioni sugli ordini di accuratezza delle formule di
approssimazione delle derivate, si potrebbe pensare di asserire che poich`e ler-
rore commesso approssimando la derivata seconda con la (6) `e un O(h
2
), anche
lerrore di approssimazione fra la vera soluzione u(x) del problema (13) e quella
approssimata sia del secondo ordine. Tuttavia tale aermazione va giusticata
in quanto non ovvia. Si introduca a questo proposito la quantit` a

j
=
1
h
2
(u(x
j+1
) 2u(x
j
) +u(x
j1
)) f(x
j
)
che rappresenta lerrore commesso nel nodo x
j
dalla vera soluzione se calata nel
problema discreto ed `e denominato errore di troncamento locale. Introducendo
gli sviluppi in serie di Taylor nella (6) e supponendo che la soluzione u(x) sia
sucientemente regolare, si ottiene, utilizzando la (7):

j
= (u

(x
j
) +O(h
2
)) f(x
j
) =
h
2
12
u
(iv)
(x
j
) =
h
2
12
f

(x
i
) = O(h
2
).
Il dato f deve essere quindi almeno C
2
per poter fare le considerazioni che
seguono. Denotando con u il vettore dei valori u(x
j
) e con quello dei valori

j
(errore di troncamento globale), si pu` o scrivere = AuF da cui si ottiene
AE = , avendo denotato con E = u
h
u il vettore dell errore globale.
Si noti come per ricavare questultimo sistema si sia utilizzata la linearit` a del
problema di partenza. Siamo interessati a far vedere che E 0 per una
qualche norma se h 0. Questultima `e nota come propriet` a di convergenza
del metodo. Se il problema numerico `e ben posto, si pu` o scrivere E = A
1
.
Applicando le norme si ottiene:
E = A
1
A
1
. (17)
Per assicurare la convergenza dobbiamo dunque vericare che:
0 per una qualche norma. Questa propriet` a `e nota come consis-
tenza del metodo numerico.
A
1
C, con C indipendente da h. Questa propriet` a `e nota come
stabilit` a del metodo numerico e consiste nel vericare che la matrice A
1
non esploda facendo tendere h a 0
14
3.1 Consistenza
Dato un vettore W R
n
, si considerano le seguenti norme:
_
W

= max
j
|W
j
|
W
2
=
_

n
i=1
|W
j
|
2
Nel caso di condizioni di Dirichlet si ottiene
j
= O(h
2
) j e quindi

=
O(h
2
) e
2
= O(h
2
). Nel caso invece di condizioni al bordo miste, seguendo
la prima delle due strategie proposte, si ottiene

0
=
1
h
(u(x
1
) u(x
0
)) = (u

(x
0
) +O(h)) = O(h),
quindi

= O(h) e
2
= O(h
p
), con 1 p < 2. Seguendo invece la
seconda strategia si ottiene
0
= O(h
2
), da cui

= O(h
2
) e
2
= O(h
2
).
La consistenza `e dunque vericata in tutti i casi considerati.
3.2 Stabilit`a
Un primo modo per vericare la stabilit` a nella norma 2 `e specico al problema
considerato con condizioni di Dirichlet. Poich`e la matrice A
1
`e denita pos-
itiva, la sua norma 2 `e data dallautovalore massimo in modulo, che coincide
con linverso dellautovalore minimo di A. Si pu` o dimostrare che gli autovalori
di A sono dati da

k
=
2
h
2
(cos(kh) 1)
Per h 0, si pu` o scrivere:
cos(kh) 1
k
2

2
2
+O(h
4
)
da cui lautovalore di modulo minimo (k = 1) `e:
|
1
|
2
+O(h
2
).
Per h 0, si pu` o quindi scrivere la seguente stima:
A
1

2
=
1
|
1
|

1

2
(18)
15
Un secondo modo, pi` u generale, per ottenere una stima di stabilita di
un problema con condizioni di Dirichlet (per semplicit` a poste omogenee) con-
siste nel dare una interpretazione operatoriale al problema discreto, in maniera
analoga a quanto si far` a per gli elementi niti. Indichiamo con V
h,0
lo spazio
delle funzioni di griglia (ossia denite solo sui nodi) nulle agli estremi. Si
consideri quindi loperatore L
h
tale che:
L
h
v
h
(x
j
) =
v
h
(x
j1
) 2v
h
(x
j
) +v
h
(x
j+1
)
h
2
per ogni v
h
V
h,0
, in modo che sia
L
h
u
h
(x
j
) = f(x
j
)
dove con u
h
si `e indicata la funzione di V
h,0
associata al vettore u
h
. Ponendo
v
h
(x
j
) = v
jh
, introduciamo la norma v
h

=
_
h/2v
2
0h
+h/2v
2
mh
+

m1
i=1
hv
2
ih
_
.
Ricordando la (15), si ottiene:
(L
h
u
h
, u
h
) = u
T
h
Au
h
= u
t
h
F
m1

i=1
_
U
i+1
U
i
h
_
2
.
Questultima quantit` a denisce una norma (che indicheremo con | |) per le
funzioni di V
h,0
(si fa notare che non sarebbe una norma per funzioni che non
si annullano al bordo). Si ottiene quindi:
|u
h
|
2
(L
h
u
h
, u
h
) f

u
h

Si pu` o inoltre dimostrare che v


h

1/

2|v
h
|, da cui si ottiene la stima di
stabilit` a voluta:
u
h


1
2
f

(19)
3.3 Convergenza
Come anticipato, la convergenza di un metodo numerico applicato a un prob-
lema lineare `e garantita dalla consistenza e dalla stabilit` a. Si pu` o anche di-
mostrare che tali condizioni sono necessarie per ottenere la convergenza. In
particolare, utilizzando la stima (18) e ricordando la (17), si ottiene:
E
2
A
1

2

1

2
= O(h
2
)
16
da cui si ottiene la convergenza della soluzione discreta a quella esatta con
ordine di convergenza uguale a 2 per il problema di Dirichlet. Poich`e si pu` o
dimostrare che anche la norma della matrice inversa associata al problema con
condizioni miste `e limitata da una costante indipendente da h, si ottiene che la
velocit` a di convergenza coincide con lerrore di troncamento globale e quindi
dipende dalla scelta fatta per discretizzare la condizione di Neumann.
Utilizzando invece la (19), dallequazione dellerrore scritta in forma oper-
atoriale L
h
e
h
= , si ottiene:
E

= e
h


1
2

= O(h
2
)
con le stesse considerazioni di prima circa il problema misto.
Si passi a considerare la norma innito. Innanzitutto si osserva che:
hv
h


m1

i=1
hv
2
hi
= v
h

da cui si ottiene:
e
h

h
e
h

h
Ch
2
Ch
3/2
.
Ce quindi una perdita di accuratezza rispetto allerrore di troncamento (sub-
ottimalit` a). Seguiamo dunque una strada alternativa per cercare di dimostrare
qualcosa di meglio. E immediato osservare che, almeno da un punto di vista
formale, le funzioni di Green introdotte precedentemente sono soluzioni dei
problemi u

=
i
, con
i
la delta di Dirac centrata in x
i
. La controparte
discreta scalata di h di questo problema diventa:
Ag
ih
= b
i
con b
i
di componenti b
i,j
=
ij
(delta di Kroenecher). Si ottiene esplicitamente
g
ih
= h

m1
k=1
G(x
k
, x
i
). Inoltre si pu` o mostrare che g
ih
sono le colonne della
matrice A
1
e quindi si ottiene:
A
1

g
ih

h(m1) 1
da cui si recupera lottimalit` a della convergenza anche per la norma innito.
17
4 Altre questioni
La bont` a della soluzione discreta ottenuta dipende principalmente da due
fattori:
Il numero di informazioni k usate per costruire la formula di approssi-
mazione della derivata.
Il passo di discretizzazione h.
E chiaro che lordine di accuratezza dellerrore di troncamento e quindi in linea
di principio lordine di convergenza, dipendono dal numero k. In particlare pi` u
alto `e k maggiore (pi` u precisamente non minore) sar` a lordine di accuratezza.
Il prezzo da pagare e che dobbiamo risolvere un sistema pi` u costoso in quanto
la matrice da invertire `e meno sparsa. Daltra parte, riducendo il passo h non
si migliora lordine di accuratezza, ma si riduce lerrore. Ci` o `e vero no ad un
certo punto in quanto da una parte prima o poi ci si scontrer` a con gli errori
di macchina e dallaltra al diminuire di h spesso il numero di condizionamento
della matrice A aumenta e ci` o pu` o portare ad una soluzione imprecisa (oltre
che a maggiori oneri computazionali). Un altro fattore che determina la scelta
di uno schema `e la natura sica del problema. Ad esempio in unequazione di
diusione trasporto, se il termine di trasporto b `e positivo (negativo), cio`e se
il trasporto avviene da sinistra (destra) verso destra (sinistra), si preferir` a uno
schema decentrato allindietro (in avanti) per discretizzare la derivata prima.
18