Anda di halaman 1dari 42

Lucia Gastaldi

Equazioni dierenziali con valori al bordo


Lucia Gastaldi
Dipartimento di Matematica,
http://dm.ing.unibs.it/gastaldi/
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Indice
1 Equazioni dierenziali con valori ai limiti
2 Equazioni di diusione trasporto
3 Condizioni ai limiti
4 Dierenze nite per lequazione di Laplace
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
Si consideri lequazione dierenziale
mu

(x) + (x)u(x) = f (x) per x (a, b)


u(a) = , u(b) = .
Suddividiamo lintervallo [a, b] in N + 1 parti uguali e poniamo
h = (b a)/(N + 1). Poniamo poi x
i
= a + ih.
Possiamo approssimare la derivata seconda con la seguente
dierenza nita del secondo ordine
u

(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) + (x)u(x) = f (x) per x [a, b]


u(a) = , u(b) = .
mediante il seguente comando:
[x,u]=eqlim(f,sigma,m,a,b,alfa,beta,N)
Input
f,sigma nome delle function che contengono
lespressione analitica di f e
m coeciente davanti alla derivata seconda
a,b estremi dellintervallo
alfa,beta valori ai limiti
N numero di punti in cui si calcola la soluzione
Output
x ascisse dei punti in cui si calcola la soluzione
u valori della soluzione
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Function eqlim
La function eqlim si compone di 5 passi:
assegnazione della griglia di calcolo: calcolo h e i punti
x
i
= a + ih per i = 1, . . . , N;
costruzione della matrice A
h
come suggerito usando i
comandi ones e diag;
costruzione del termine noto (attenzione al nome);
risoluzione del sistema lineare;
organizzazione delloutput che tenga conto delle condizioni
al bordo.
Oss Si possono completare i vettori x e u con i valori negli
estremi dellintervallo. Per fare ci`o si devono aggiungere le
rispettive componenti allinizio ed alla ne del vettore, con i
comandi
x=[a,x,b] se x `e un vettore riga;
u=[alfa;u;beta] se u `e un vettore colonna.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Esercizio
Esercizio
Risolvere lequazione dierenziale
u

(x) + sin x u(x) = (1 cos


2
x 2 cos x)e
x
per x [0, ]
u(0) = u() = 0.
Confrontare i risultati ottenuti con la soluzione esatta
u(x) = sin x e
x
.
Scrivere un le di tipo script che:
assegna i dati, in particolare le funzioni f e di tipo @;
calcola la soluzione usando la function eqlim;
plotta la soluzione discreta insieme a quella continua.
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
Esercizio
Dato N=[10 20 40 80 160 320], per ciascun valore di N
calcolare la soluzione dellequazione dierenziale dellesercizio
precedente, riportare la soluzione in un graco insieme alla
soluzione esatta e valutare lerrore relativo.
Riportare gli errori in funzione di N in un graco in scala
bilogaritmica insieme allandamento teorico.
Calcolare lordine di convergenza del metodo.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Calcolo dellordine di convergenza
Supponiamo che la stima dellerrore per un certo metodo sia
E(h) Ch
p
essendo h = (b a)/(N + 1).
La relazione dipende quindi da due quantit`a incognite C e p.
Per calcolare il valore di p, valutiamo lespressione dellerrore
per due diversi valori di h, h
1
e h
2
:
E(h
1
) Ch
p
1
, E(h
2
) Ch
p
2
Dividiamo la prima relazione per la seconda, per eliminare C:
E(h
1
)
E(h
2
)

_
h
1
h
2
_
p
;
p si ottiene prendendo i logaritmi ad entrambi i membri:
log
E(h
1
)
E(h
2
)
p log
h
1
h
2
da cui
p =
log E(h
1
) log E(h
2
)
log h
1
log h
2
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Rappresentazione dellordine di
convergenza
Supponiamo che la stima dellerrore per un certo metodo sia
E(h) Ch
p
essendo h = (b a)/(N + 1).
Per rappresentare il valore di p, calcoliamo il logaritmo ad
entrambi i membri, ottenendo:
log E(h) log C + p log h.
Quindi il graco di log E(h) in funzione di log h `e una retta con
coeciente angolare pari a p.
Poiche si ha che log h = log(b a) log(N + 1), il graco
dellerrore in funzione di N, `e una retta con coeciente
angolare uguale a p.
loglog(N,E) produce il graco di log E(h) in funzione di
log N.
Per vericare il valore di p, confrontare landamento di log E(h)
con quello di p log h con il comando loglog(N,E,N,1./N.p).
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
Traccia
Assegnare i dati: f , , a, b, , e la soluzione esatta sol .
Assegnare N=[10 20 40 80 160 320].
Per ogni valore di N: for i=1:length(N)
Calcolare la soluzione u, usando la function eqlim, e la
soluzione esatta sol.
Fare il graco: plot(x,u,x,sol).
Calcolare lerrore: E(i)=norm(u-sol)/norm(sol).
Riportare gli errori in funzione di N in un graco in scala
bilogaritmica: loglog(N,E).
Calcolare lordine del metodo con il comando:
p=(log(E(2:end))-log(E(1:end-1)))./...
(log(N(1:end-1))-log(N(2:end)))
Il comando pause interrompe lesecuzione. Si inserisce prima
della ne del ciclo in modo da visualizzare il graco ottenuto.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Esercizio
Dato p 2, si consideri lequazione dierenziale
u

(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) + (x)u(x) = f (x) per x [a, b]


u(a) = u
a
, u(b) = u
b
.
Per approssimare la derivata prima si possono usare le seguenti
dierenze nite (h > 0):
di. nita in avanti 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) + (x)u(x) = f (x) per x [a, b]


u(a) = u
a
, u(b) = u
b
.
mediante il seguente comando:
[x,u]=dtcentr(f,sigma,beta,epsi,a,b,ua,ub,N)
Input
f,sigma,beta nome delle function che contengono
lespressione analitica di f , e
epsi parametro
a,b estremi dellintervallo
ua,ub valori ai limiti
N numero di punti in cui si calcola la soluzione
Output
x ascisse dei punti in cui si calcola la soluzione
u valori della soluzione
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Function
Modicare la function per la risoluzione con dierenze
centrate per implementare la risoluzione dellequazione
dierenziale con le dierenze nite in avanti e allindietro.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Convergenza
Si consideri lequazione dierenziale:
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) = 0 per x [0, 1]


u(0) = 1, u(1) = 0.
Risolvere lequazione data con i seguenti valori di N=[10 20 40
80 160], approssimando la derivata prima con le tre dierenze
nite. Confrontare il comportamento delle tre soluzioni discrete
per i seguenti valori = 1, = 0.1 e = 0.01.
Lucia Gastaldi
Equazioni
dierenziali
con valori ai
limiti
Equazioni di
diusione
trasporto
Condizioni ai
limiti
Dierenze
nite per
lequazione di
Laplace
Condizioni ai limiti
Consideriamo lequazione dierenziale:
mu

+ (x)u

+ (x)u = f (x) per x ]a, b[.


Si possono imporre i seguenti tipi di condizioni ai limiti
u(a) = u
a
, u(b) = u
b
condizioni di Dirichlet
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

+ (x)u = f (x) per x ]a, b[


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.

Anda mungkin juga menyukai