(x
i
)
u(x
i +1
) 2u(x
i
) + u(x
i 1
)
h
2
per i = 1, . . . , N.
Indicando con u
h
i
il valore approssimato di u(x
i
), si ottiene il
seguente sistema lineare:
m
u
h
i +1
2u
h
i
+ u
h
i 1
h
2
+ (x
i
)u
h
i
= f (x
i
) per i = 1, . . . , N
u
h
0
= u
h
N+1
=
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Equazioni dierenziali con valori ai
limiti II
Quindi si ricava la soluzione u
h
i
per i = 1, . . . , N risolvendo il
sistema
A
h
u
h
= b
essendo A
h
la matrice tridiagonale che ha i seguenti elementi
a
ii
= 2/h
2
+ (x
i
), a
ii 1
= a
ii +1
= 1/h
2
e il termine noto `e dato da
b
1
= f (x
1
) + /h
2
,
b
i
= f (x
i
) per i = 2, . . . , N 1,
b
N
= f (x
N
) + /h
2
.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Costruzione della matrice
Per costruire la matrice del sistema lineare che si ottiene con le
dierenze nite osserviamo che si pu`o scrivere A = mK
h
+ M
essendo
K
h
=
1
h
2
_
_
2 1 . . . . . . . . . . . . 0
1 2 1 . . . . . . . . . 0
. . . . . . . . . . . . . . . . . . . . .
0 . . . 1 2 1 . . . 0
. . . . . . . . . . . . . . . . . . . . .
0 . . . . . . . . . 1 2 1
0 . . . . . . . . . . . . 1 2
_
_
M =
_
_
(x
1
) 0 . . . . . . 0
0 (x
2
) 0 . . . 0
. . . . . . . . . . . . . . .
0 . . . . . . 0 (x
N
)
_
_
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Costruzione del termine noto
Il termine noto pu`o essere scritto come la somma di due vettori
b = F + bc: F tiene conto del dato f sullintervallo, mentre bc
`e relativo alle condizioni al bordo.
F =
_
_
f (x
1
)
f (x
2
)
. . .
. . .
f (x
N
)
_
_
bc =
_
_
/h
2
0
. . .
0
/h
2
_
_
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Soluzione dellequazione
dierenziale
Scrivere la function eqlim per calcolare la soluzione
dellequazione dierenziale con valori ai limiti
mu
(x) = p(p1)|x|
p2
per x (1, 1), u(1) = u(1) = 0.
La soluzione `e data dalla funzione u(x) = 1 |x|
p
.
Calcolare lordine di convergenza del metodo delle dierenze
nite in corrispondenza ai seguenti valori di p:
p = 2, 2.5, 3, 3.5, 4.
Cosa succede se p < 2? Per esempio per p = 1 o p = 3/2?
Usare le seguenti scelte per N:
N=[4 8 16 32 64 128 256 512];
N=[4 8 16 32 64 128 256 512]+1;
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Equazioni di diusione trasporto
Si consideri lequazione dierenziale
mu
(x) + (x)u
( x)
+
u( x) =
u( x + h) u( x)
h
di. nita allindietro u
( x)
u( x) =
u( x) u( x h)
h
di. nita centrata u
( x) u( x) =
u( x + h) u( x h)
2h
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite
centrate
Suddividiamo lintervallo [a, b] in N + 1 parti uguali e poniamo
h = (b a)/(N + 1). Poniamo poi x
i
= a + ih e u
h
i
u(x
i
).
Usando le dierenze nite centrate si ottiene il seguente
sistema lineare:
m
u
h
i 1
2u
h
i
+ u
h
i +1
h
2
+ (x
i
)
u
h
i +1
u
h
i 1
2h
+ (x
i
)u
h
i
= f (x
i
)
per i = 1, . . . , N
u
h
0
= u
a
, u
h
N+1
= u
b
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite
centrate II
Quindi si ricava la soluzione u
h
i
per i = 1, . . . , N risolvendo il
sistema
A
h
u
h
= b
essendo A
h
la matrice tridiagonale che ha i seguenti elementi
a
ii
= 2m/h
2
+ (x
i
), a
ii 1
= m/h
2
(x
i
)/2h,
a
ii +1
= m/h
2
+ (x
i
)/2h
e il termine noto `e dato da
b
1
= f (x
1
) + (m/h
2
+ (x
1
)/2h)u
a
,
b
i
= f (x
i
) per i = 2, . . . , N 1,
b
N
= f (x
N
) + (m/h
2
(x
N
)/2h)u
b
.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite in
avanti
Suddividiamo lintervallo [a, b] in N + 1 parti uguali e poniamo
h = (b a)/(N + 1). Poniamo poi x
i
= a + ih e u
h
i
u(x
i
).
Usando le dierenze nite in avanti si ottiene il seguente
sistema lineare:
m
u
h
i 1
2u
h
i
+ u
h
i +1
h
2
+ (x
i
)
u
h
i +1
u
h
i
h
+ (x
i
)u
h
i
= f (x
i
)
per i = 1, . . . , N
u
h
0
= u
a
, u
h
N+1
= u
b
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite in
avanti II
Quindi si ricava la soluzione u
h
i
per i = 1, . . . , N risolvendo il
sistema
A
h
u
h
= b
essendo A
h
la matrice tridiagonale che ha i seguenti elementi
a
ii
= 2m/h
2
(x
i
)/h + (x
i
),
a
ii 1
= m/h
2
, a
ii +1
= m/h
2
+ (x
i
)/h
e il termine noto `e dato da
b
1
= f (x
1
) + mu
a
/h
2
,
b
i
= f (x
i
) per i = 2, . . . , N 1,
b
N
= f (x
N
) + (m/h
2
(x
N
)/h)u
b
.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite
allindietro
Suddividiamo lintervallo [a, b] in N + 1 parti uguali e poniamo
h = (b a)/(N + 1). Poniamo poi x
i
= a + ih e u
h
i
u(x
i
).
Usando le dierenze nite allindietro si ottiene il seguente
sistema lineare:
m
u
h
i 1
2u
h
i
+ u
h
i +1
h
2
+ (x
i
)
u
h
i
u
h
i 1
h
+ (x
i
)u
h
i
= f (x
i
)
per i = 1, . . . , N
u
h
0
= u
a
, u
h
N+1
= u
b
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Risoluzione con dierenze nite
allindietro II
Quindi si ricava la soluzione u
h
i
per i = 1, . . . , N risolvendo il
sistema
A
h
u
h
= b
essendo A
h
la matrice tridiagonale che ha i seguenti elementi
a
ii
= 2m/h
2
+ (x
i
)/h + (x
i
),
a
ii 1
= m/h
2
(x
i
)/h, a
ii +1
= m/h
2
e il termine noto `e dato da
b
1
= f (x
1
) + (m/h
2
+ (x
1
)/h)u
a
,
b
i
= f (x
i
) per i = 2, . . . , N 1,
b
N
= f (x
N
) + mu
b
/h
2
.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Function
Scrivere una function per la risoluzione con dierenze nite
centrate dellequazione dierenziale:
mu
(x) + (x)u
(x) + e
x
u
(x) + u(x)
= sin(x)(1 2e
x
) + cos(x)(e
x
+ e
x
1)
per x [0, ]
u(0) = 1, u() = e
.
La soluzione esatta `e: u(x) = sin(x) + e
x
cos(x).
Vericare che, approssimando la derivata prima, con le
dierenze nite centrate, il metodo `e del secondo ordine,
mentre le dierenze nite in avanti e allindietro danno una
convergenza al primo ordine.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Problemi con trasporto dominante
Si consideri lequazione dierenziale:
u
(x) + u
+ (x)u
(a) = u
a
, u
(b) = u
b
condizioni di Neumann
u
(a) = u
a
, u(b) = u
b
condizioni miste
u(a) = u
a
, u
(b) = u
b
condizioni miste
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Condizioni di Neumann
Consideriamo lequazione dierenziale:
mu
+ (x)u
(a) = u
a
, u
(b) = u
b
Per approssimare le derivate negli estremi usiamo le seguenti
dierenze nite del secondo ordine:
u
(a)
1
2h
[3u(a) + 4u(a + h) u(a + 2h)]
u
(b)
1
2h
[u(b 2h) 4u(b h) + 3u(b)]
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Equazione di Laplace
Problema
Sia =]a
1
, a
2
[]b
1
, b
2
[. Dati f : R e g : R, si
consideri il seguente problema
u = f in
u = g su
Dati N
x
e N
y
, poniamo h
x
=
a
2
a
1
N
x
+ 1
e h
y
=
b
2
b
1
N
y
+ 1
.
Notazioni
x
i
= a
1
+ ih
x
, per i = 0, 1, , N
x
+ 1,
y
j
= b
1
+ jh
y
, per j = 0, 1, , N
y
+ 1,
u
i ,j
u(x
i
, y
j
), per i = 0, 1, , N
x
+ 1, j = 0, 1, , N
y
+ 1.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Dierenze nite
Discretizzazione delle derivate seconde
u
xx
(x, y)
u(x h
x
, y) 2u(x, y) + u(x + h
x
, y)
h
2
x
u
yy
(x, y)
u(x, y h
y
) 2u(x, y) + u(x, y + h
y
)
h
2
y
Si ottengono N
x
N
y
equazioni (per i = 1, , N
x
j = 1, , N
y
)
u
i 1,j
2u
i ,j
+ u
i +1,j
h
2
x
u
i ,j 1
2u
i ,j
+ u
i ,j +1
h
2
y
= f (x
i
, y
j
),
alle quali si aggiungono le condizioni al bordo:
u
i ,0
= g(x
i
, b
1
) per i = 0, , N
x
+ 1,
u
N
x
+1,j
= g(a
2
, y
j
) per j = 0, , N
y
+ 1,
u
i ,N
y
+1
= g(x
i
, b
2
) per i = 0, , N
x
+ 1,
u
0,j
= g(a
1
, y
j
) per j = 0, , N
y
+ 1.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Sistema lineare
Vettore soluzione
u vettore di N = N
x
N
y
componenti: u(k) = u
i ,j
essendo k = (j 1) N
x
+ i ;
ricostruzione della soluzione: u
i ,j
= u(k) per
j = int(
k 1
N
x
) + 1, i = k (j 1) N
x
.
Matrice delle dierenze nite
La matrice del sistema A `e una matrice
pentadiagonale con la struttura riportata in
gura.
Se h
x
= h
y
= h si costruisce con il comando
A=delsq(numgrid(S,n+2))/h2
0 10 20 30 40 50 60 70 80 90 100
0
10
20
30
40
50
60
70
80
90
100
nz = 460
Matrice delle differenze finite Nx=Ny=10
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Struttura della matrice delle
dierenze nite
Poniamo: = 2/h
2
x
+ 2/h
2
y
, = 1/h
2
x
, = 1/h
2
y
e
E = I
N
x
. La matrice A `e pentadiagonale con la seguente
struttura tridiagonale a blocchi:
A =
_
_
_
_
_
D E 0
E D E 0
0 E D E
0 E D
_
_
_
_
_
,
con N
y
blocchi formati dalle matrici tridiagonali D R
N
x
N
x
:
D =
_
_
_
_
_
0
0
0
0
_
_
_
_
_
.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Costruzione della matrice per
N
x
= N
y
Si pu`o costruire la matrice per diagonali come segue.
Poniamo Nx = N
x
, Ny = N
y
, hx = h
x
, hy = h
y
, N=Nx*Ny
alfa=2/hx^2+2/hy^2;
beta=-1/hx^2;
gamma=-1/hy^2;
A=alfa*diag(ones(N,1))+beta*diag(ones(N-1,1),1)+...
beta*diag(ones(N-1,1),-1);
A=A+gamma*diag(ones(N-Nx,1),Nx)+...
gamma*diag(ones(N-Nx,1),-Nx);
for i=Nx:Nx:N-1
A(i,i+1)=0;
end
for i=Nx+1:Nx:N
A(i+1,i)=0;
end
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Termine noto I
b vettore di N = N
x
N
y
componenti tale che
b(k) = f (ih
x
, jh
y
)+ condizioni al bordo
b(1:Nx) =
_
_
_
_
_
_
_
_
f (x
1
, y
1
) +
g(a
1
,y
1
)
h
2
x
+
g(x
1
,b
1
)
h
2
y
f (x
i
, y
1
) +
g(x
i
,b
1
)
h
2
y
f (x
N
x
, y
1
) +
g(a
2
,y
1
)
h
2
x
+
g(x
N
x
,b
1
)
h
2
y
_
_
_
_
_
_
_
_
,
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Termine noto II
Per j = 2, N
y
1
b(Nx*(j-1)+1:Nx) =
_
_
_
_
_
_
_
f (x
1
, y
j
) +
g(a
1
,y
j
)
h
2
x
f (x
i
, y
j
)
f (x
N
x
, y
j
) +
g(a
2
,y
j
)
h
2
x
_
_
_
_
_
_
_
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Termine noto III
b(Nx*(Ny-1)+(1:Nx)) =
_
_
_
_
_
_
_
_
f (x
1
, y
N
y
) +
g(a
1
,y
N
y
)
h
2
x
+
g(x
1
,b
2
)
h
2
y
f (x
i
, y
N
y
) +
g(x
i
),b
2
h
2
y
f (x
N
x
, y
N
y
) +
g(a
2
,y
N
y
)
h
2
x
+
g(x
N
x
,b
2
)
h
2
y
_
_
_
_
_
_
_
_
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Costruzione del termine noto in
Matlab
Assegno la f : b(k) = f (ih
x
, jh
y
)
k=0;
for j=1:Ny
for i=1:Nx
k=k+1;
f(k)=effe(i*hx,j*hy);
end
end
Impongo le condizioni al bordo
f(i)=f(i)+g(x(i),b1)/hy^2;
f(Nx*(Ny-1)+i)=f(Nx*(Ny-1)+i)+g(x(i),b2)/hy^2;
end
for j=1:Ny
f((j-1)*Nx+1)=f((j-1)*Nx+1)+g(a1,y(j))/hx^2;
f(j*Nx)=f(j*Nx)+g(a2,y(j))/hx^2;
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Ricostruzione della soluzione
Per ricostruire la soluzione si vuole ottenere una matrice Z di
dimensioni N
y
N
x
che contiene i valori nei punti (x
i
, y
j
).
Tenendo conto di come `e stato costruito il vettore u si pu`o
procedere costruendo la matrice U riga per riga nel modo
seguente:
k=1;
for i=1:n
for j=1:n
Z(i,j)=u(k);
k=k+1;
end
end
Come tenere conto delle condizioni al bordo per rappresentare
meglio la soluzione?
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Rappresentazione della soluzione
suddivisione dellintervallo [a
1
, a
2
] con N
x
+ 2 punti
equispaziati: X=linspace(a1,a2,Nx+2);
suddivisione dellintervallo [b
1
, b
2
] con N
y
+ 2 punti
equispaziati: X=linspace(b1,b2,Ny+2);
costruzione della griglia: [x,y]=meshgrid(X,Y);
ricostruzione della soluzione in un array (Nx+2)x(Ny+2)
in modo di tenere in considerazione anche le condizioni al
bordo:
U(1,2:Nx+1)=g(x(2:Nx+1),b1);
U(Ny+2,2:Nx+1)=g(x(2:Nx+1),b2);
U(2:Ny+1,Nx+2)=g(a2,y(2:Ny+1));
U(2:Ny+1,1)=g(a1,y(2:Ny+1));
for j=1:Ny
U(j+1,2:Nx+1)=u((j-1)*Nx+1:j*Nx);
end
U(1,1)=g(a1,b1); U(1,Nx+2)=g(a2,b1);
U(Ny+2,Nx+2)=g(a2,b2); U(Ny+2,1)=g(a1,b2);
surf(x,y,U)
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Function dirichlet
La function dirichlet risolve il seguente problema di Laplace
con condizioni al bordo di Dirichlet:
u(x, y) = f (x, y) (x, y) =]a
1
, a
2
[]b
1
, b
2
[
u(x, y) = g(x, y) (x, y)
Il comando help dirichlet fornisce le istruzioni per luso
della function dirichlet.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Esercizi
Esercizio 1 Sia =]0, 1[]0, 1[. Usare la function dirichlet
per risolvere il problema:
u(x, y) = 2(x(1 x) + y(1 y)) (x, y)
u(x, y) = 0 (x, y)
Confrontare con la soluzione esatta u(x, y) = x(1 x)y(1 y).
Esercizio 2 Usare la function dirichlet per risolvere il
problema:
u(x, y) = e
x
_
2(1
2
) sin(x) sin(y) + 2 sin((x + y)
_
(x, y) =]0, 1[]0, 1[
u(x, y) = 0 (x, y)
Confrontare con la soluzione esatta
u(x, y) = e
x
sin(x) sin(y).
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Esercizi
Esercizio 3
Usare la function dirichlet per risolvere il problema:
u(x, y) = (12x + 2y)(1 y
2
)(1 x
2
)(6y + 4x)
(x, y) =]0, 1[]0, 1[
u(x, y) = (2x + y)(1 x
2
)(1 y
2
) (x, y)
Confrontare con la soluzione esatta
u(x, y) = (2x + y)(1 x
2
)(1 y
2
).
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Convergenza del metodo delle
dierenze nite applicate al caso
del Laplaciano
Esercizio 4
Usare la function dirichlet per risolvere il problema:
u(x, y) = 4 (x, y) =] 1, 1[] 1, 1[
u(x, y) = 1 x
2
y
2
(x, y)
La soluzione esatta `e: u(x, y) = 1 x
2
y
2
.
Vericare lordine di convergenza del metodo delle dierenze
nite nel caso di uno dei problemi proposti negli esercizi 1-4.