Sei sulla pagina 1di 17

Risoluzione numerica

Equazione di Laplace

y C

∂ϕ
2
∂ϕ
2 j
ϕ1,3 ϕ i,j+1

+ =0
ϕ1,2 ϕi-1,j ϕi,j ϕi+1,j

ϕ1,1 ϕ2,1 ϕi,j-1 A

∂x 2
∂y 2

0 i x
Classificazione PDE
Classificazione generale in base al discriminante:

Δ = b2 - 4ac

∂2ϕ ∂2ϕ
Δ<0 ellittica Eq. di Laplace + =0
∂x 2
∂y 2

Δ=0 parabolica Eq. diffusione ∂T ∂2T


=K 2
∂t ∂x
∂2 U 2 ∂ U
2

Δ>0 iperbolica Eq. corda vibrante =c


∂t 2 ∂x 2
Discretizzazione
Sviluppo di Taylor:
h2 h3
Diff in avanti: ϕ (x − h ) = ϕ (x ) − hϕ ′( x ) + ϕ ′′( x ) − ϕ ′′′( x ) + ...
2! 3!
h2 h3
Diff. All’indietro: ϕ (x + h ) = ϕ (x ) + hϕ ′(x ) + ϕ ′′(x ) + ϕ ′′′(x ) + ...
2! 3!
Derivate prime:
Sottraendo membro a membro:
ϕ (x + h ) − ϕ (x − h ) = 2hϕ ( x ) + o h
′ 3
( )
da cui, dividendo per 2h: dϕ ϕ ( x + h ) − ϕ ( x − h )
ϕ ′( x ) = =
dx 2h
L'errore che si commette è dell'ordine di: o(h3) / h = o(h2)
Discretizzazione
Sviluppo di Taylor: h2 h3
ϕ (x − h ) = ϕ (x ) − hϕ ′( x ) + ϕ ′′( x ) − ϕ ′′′( x ) + ...
2! 3!
h2 h3
ϕ (x + h ) = ϕ (x ) + hϕ ′(x ) + ϕ ′′(x ) + ϕ ′′′(x ) + ...
2! 3!

Derivate seconde:
Sommando membro a membro:

ϕ x + h + ϕ x − h = 2ϕ x + h ϕ x + o h )
( ) ( ) ( ) 2
′′( ) ( 4

da cui, dividendo per h2:


d 2ϕ ϕ ( x + h ) − 2ϕ ( x ) + ϕ ( x − h )
ϕ ′′( x ) = 2 =
dx h2

L'errore che si commette è dell'ordine di: o(h4) / h2 = o(h2)


∂2ϕ ∂2ϕ
Eq. Laplace + =0
∂x 2
∂y 2

applicando le differenze centrate per entrambe le derivate:

ϕ i +1, j − 2 ϕ i, j + ϕ i −1, j ϕ i, j+1 − 2 ϕ i, j + ϕ i, j−1


+ =0
Δx 2
Δy 2

Nel caso che: Δx = Δy = h il valore di ϕi,j è pari alla media dei


valori assunti dagli elementi del suo intorno:

ϕi , j
1
(
= ϕi +1, j + ϕi −1, j + ϕi , j +1 + ϕi , j −1
4
)
Il valore nel punto (i,j) dipende da tutti i valori di j nel suo intorno, quindi lo schema
è necessariamente implicito. Bisogna risolvere un sistema di equazioni lineari con
tante equazioni quanti sono i nodi.
i,j+1
Sistema è spesso molto grande.
i,j
Risoluzione è molto onerosa e spesso i-1,j i+1,j
poco accurata a causa del gran numero di
operazioni da compiere. j
i,j-1
i
introduzione di errori numerici

Soluzioni:

1) Algoritmi per matrici sparse

2) Metodi iterativi
Metodi iterativi:

Metodi basati sull'introduzione di una derivata temporale fittizia:


Si fa evolvere il sistema nel tempo fino a quando non è andato a regime,
ovvero fino a quando il fenomeno è diventato stazionario,
in queste condizioni la soluzione coincide con quella dell'equazione di
partenza.

∂ϕ2
∂ϕ
2
∂ϕ
+ =
∂x 2
∂y 2
∂t
∂ϕ
=0
∂t
Metodo di Jacobi:
Consiste nel discretizzare l'equazione precedente con uno
schema alle differenze avanti nel tempo e centrate nello
spazio:
⎛ ϕ k
+ ϕ k
ϕ k
+ ϕ k
⎞ ⎛ 1 1 ⎞ k

ϕ i , j = Δt ⎜
k +1 i −1, j i +1, j
+
i , j −1 i , j +1
⎟ − 2 Δt ⎜ + ⎟ϕ + ϕ k

Δ 2
Δ 2 ⎟ ⎜ Δx 2 Δy 2 ⎟ i , j i, j
⎝ x y ⎠ ⎝ ⎠
1) Fisso cond al contorno
2) Ipotizzo valori all’interno del dominio per t =
1 0, cioè k = 1
Δt = 1
(
2 Δx 2 + Δ1y 2 ) 3) Noto il campo a n lo calcolo al passo n+1,
ripeto finché la max variazione percentuale <
della tolleranza scelta
N.B. opportuno inserire un num max iterazioni!!

1 ⎛ ϕi +1, j + ϕi −1, j ϕi , j +1 + ϕi , j −1 ⎞
k k k k

ϕ k +1
= ⎜ + ⎟
ij
⎛ 1 ⎞
1 ⎝ ⎜ Δ x 2
Δ y 2 ⎟
2⎜⎜ 2 + 2 ⎟⎟ ⎠
⎝ Δx Δy ⎠
Metodo di Gauss-Seidel: È analogo al precedente ma per una
convergenza più veloce utilizza i valori aggiornati al tempo k+1
nei punti nei quali già sono stati calcolati:
1 ⎛ ϕi +1, j + ϕi −1, j ϕi , j +1 + ϕi , j −1 ⎞
k k +1 k k +1

ϕij =
k +1 ⎜ + ⎟
⎛ 1 1 ⎞ ⎜⎝ Δx 2 Δy 2 ⎟

2⎜⎜ 2 + 2 ⎟⎟
⎝ Δx Δy ⎠
1
Δt = 1
(
2 Δx 2 + Δ1y 2 ) n iterata k

1
iterata k+1

1 i m
Metodo S.O.R. (SIMULTANEOUS OVER-RELAXATION):

È una modifica del metodo precedente che migliora ancora la


velocità di convergenza:

ω ⎛ ϕ k
+ ϕ k +1
ϕ k
+ ϕ k +1

= (1 − ω )ϕij + ⎜ ⎟
i +1, j i −1, j i , j +1 i , j −1
ϕijk +1 k
+

⎛ 1 1 ⎞ ⎜⎝ Δx 2 Δy 2 ⎠
2⎜⎜ 2 + 2 ⎟⎟
⎝ Δx Δy ⎠

Viene effettuata una media (con pesi 1-w e w) tra i valori al


passo precedente e quelli calcolati con il metodo Gauss-Seidel.
A seconda del valore di w cambia la velocità di convergenza
Metodo S.O.R. (SIMULTANEOUS OVER-RELAXATION):

Per maglie quadrate (Δx = Δy) :

ω
ϕ k +1
ij = (1 − ω )ϕ +
k
ij
4
(ϕ k
i +1, j + ϕik−+11, j + ϕik, j +1 + ϕik, +j −11 )
w è il fattore di rilassamento = [1 - 2 ] (Nota:
se w è < 1 lo schema è under relaxed)

Per dominio rettangolare, essendo m ed n rispettivamente il numero di nodi


lungo x e lungo y, il fattore di rilassamento ottimale è:

8 − 4 4 − α2 ⎛π ⎞ ⎛π ⎞
ω ott = α = cos⎜ ⎟ + cos⎜ ⎟
α 2 ⎝m⎠ ⎝n⎠
Condizioni al contorno

Condizioni alla Dirichelet:


Sono assegnati i valori della funzione
incognita al contorno

Condizioni alla Neumann:


Sono assegnati i valori della derivata
normale della funzione incognita
al contorno.
Esempio problema Dirichlet

Metodo di Gauss-Seidel
Confronto Gauss-Siedel e SOR

G-S 9 iterazioni SOR 6 iterazioni

Griglia 5x5
accuratezza
99%

Nei vertici:
somma
valori
adiacenti/2
Esempio problema Neumann

Ip. maglia quadrata

Cond. Neu. per i = 1:


Esempio problema Neumann
(schema Jacobi)
Esercitazione s = 100 m, z0 = 50 m, c = 0.05
Dx = Dz = 10 m NX=11, NZ=6.
Risolvere con metodo Jacobi e SOR

Potrebbero piacerti anche