...

Differenze finite per l`equazione di Laplace

by user

on
Category: Documents
25

views

Report

Comments

Transcript

Differenze finite per l`equazione di Laplace
Differenze finite per l’equazione di Laplace
Lucia Gastaldi
Dipartimento di Matematica,
http://dm.ing.unibs.it/gastaldi/
Laboratorio
Lucia Gastaldi
Differenze finite
Equazione di Laplace
Outline
1
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Lucia Gastaldi
Differenze finite
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Equazione di Laplace
Problema
Sia Ω =]0, a[×]0, b[. Dati f : Ω → R e g : Ω → R, si consideri il
seguente problema
−∆u = f in Ω
u=g
su ∂Ω
Dati Nx e Ny , poniamo hx =
a
b
e hy =
.
(Nx + 1)
(Ny + 1)
Notazioni
xi = ihx , per i = 0, 1, · · · , Nx + 1,
yj = jhy , per j = 0, 1, · · · , Ny + 1,
ui,j ≈ u(xi , yj ), per i = 0, 1, · · · , Nx + 1, j = 0, 1, · · · , Ny + 1.
Lucia Gastaldi
Differenze finite
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Differenze finite
Discretizzazione delle derivate seconde
u(x − hx , y ) − 2u(x, y ) + u(x + hx , y )
hx2
u(x,
y
−
h
)
−
2u(x,
y ) + u(x, y + hy )
y
uyy (x, y ) ≈ δy2 u(x, y ) :=
2
hy
uxx (x, y ) ≈ δx2 u(x, y ) :=
Teorema
Se u è di classe C4 allora si dimostrano le seguenti stime dell’errore
di discretizzazione:
h2
uxx (x, y ) − δx2 u(x, y ) = − x uxxxx (x, y ) + o(hx2 )
12
uyy (x, y ) −
δy2 u(x, y )
hy2
= − uyyyy (x, y ) + o(hy2 )
12
Lucia Gastaldi
Differenze finite
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Sistema lineare associato alla discretizzazione
Si ottengono Nx × Ny equazioni (per i = 1, · · · , Nx j = 1, · · · , Ny )
−
ui−1,j − 2ui,j + ui+1,j
ui,j−1 − 2ui,j + ui,j+1
−
= f (xi , yj ),
2
hx
hy2
alle quali si aggiungono le condizioni al bordo:
ui,0 = g (xi , 0)
ui,Ny +1 = g (xi , b)
u0,j = g (0, yj )
uNx +1,j = g (a, yj )
Lucia Gastaldi
per
per
per
per
i
i
j
j
= 0, · · ·
= 0, · · ·
= 0, · · ·
= 0, · · ·
Differenze finite
, Nx
, Nx
, Ny
, Ny
+ 1,
+ 1,
+ 1,
+ 1.
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Sistema lineare
Vettore soluzione
u vettore di N = Nx × Ny componenti: u(k) = ui,j essendo
k = (j − 1) ∗ Nx + i;
ricostruzione della soluzione: ui,j = u(k) per
k −1
j = int(
) + 1, i = k − (j − 1) ∗ Nx .
Nx
Matrice delle differenze finite
La matrice del sistema A è una matrice
pentadiagonale con la struttura riportata in
figura.
Se hx = hy = h, ed il dominio è il quadrato
[−1, 1] × [−1, 1], si costruisce con il comando
A=delsq(numgrid(’S’,n+2))/hˆ2
Lucia Gastaldi
Differenze finite
Matrice delle differenze finite Nx=Ny=10
0
10
20
30
40
50
60
70
80
90
100
0
10
20
30
40
50
nz = 460
60
70
80
90
100
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Termine noto I
b vettore di N = Nx × Ny componenti tale che b(k) = f (ihx , jhy )+
condizioni al bordo
Poniamo Nx = Nx , Ny = Ny , hx = hx , hy = hy




b(1:Nx) = 



1)
f (x1 , y1 ) + g (0,y
+ g (xh12,0)
hx2
y
···
f (xi , y1 ) + g (xhi2,0)
y
···
g (x ,0)
1)
f (xNx , y1 ) + g (a,y
+ hN2x
h2
x
Lucia Gastaldi
Differenze finite
y




,



Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Equazione di Laplace
Termine noto II
Per j = 2, Ny − 1




b(Nx*(j-1)+1:Nx) = 


Lucia Gastaldi
g (0,yj )
hx2
f (x1 , yj ) +
···
f (xi , yj )
···
f (xNx , yj ) +
Differenze finite
g (a,yj )
hx2







Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Termine noto III




b(Nx*(Ny-1)+(1:Nx)) = 



g (0,yN )
f (x1 , yNy ) + h2 y +
x
···
f (xi , yNy ) + g (xhi2,b)
y
···
f (xNx , yNy ) +
Lucia Gastaldi
Differenze finite
g (a,yNy )
hx2
g (x1 ,b)
hy2
+
g (xNx ,b)
hy2








Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Costruzione del termine noto in Matlab
Assegno la f : b(k) = f (ihx , jhy )
k=0;
for j=1:Ny
for i=1:Nx
k=k+1; f(k)=effe(x(i),y(j));
end
end
Impongo le condizioni al bordo
for i=1:Nx
f(i)=f(i)+g(i*hx,0)/hy^2;
f(Nx*(Ny-1)+i)=f(Nx*(Ny-1)+i)+g(i*hx,b)/hy^2;
end
for j=1:Ny
f((j-1)*Nx+1)=f((j-1)*Nx+1)+g(0,j*hy)/hx^2;
f(j*Nx)=f(j*Nx)+g(a,j*hy)/hx^2;
end
Lucia Gastaldi
Differenze finite
Equazione di Laplace
Problema e notazioni
Discretizzazione con differenze finite
Costruzione della matrice e del termine noto
Ricostruzione della soluzione
Ricostruzione della soluzione
Per ricostruire la soluzione si vuole ottenere una matrice Z di
dimensioni Ny × Nx che contiene i valori nei punti (xi , yj ).
Tenendo conto di come è stato costruito il vettore u si puo’
procedere a costruire la matrice Z riga per riga nel modo seguente:
for j=1:n
Z(j,:)=u((j-1)*n+1:j*n)’;
end
Come tenere conto delle condizioni al bordo per rappresentare
meglio la soluzione?
Lucia Gastaldi
Differenze finite
Fly UP