• Non ci sono risultati.

Equazione del calore e metodo delle linee

N/A
N/A
Protected

Academic year: 2021

Condividi "Equazione del calore e metodo delle linee"

Copied!
16
0
0

Testo completo

(1)

Equazione del calore e metodo delle linee

Alvise Sommariva

Universit`

a degli Studi di Padova

Dipartimento di Matematica

(2)

Equazione del calore.

(3)

Equazione del calore.

Se la soluzione `

e suffic. regolare da

2

u

∂x

2

(x

j

, t) ≈

u(x

j +1

, t) − 2u(x

j

, t) + u(x

j −1

, t)

h

2

x

, j = 1, . . . , m − 1

(2)

posto u

j

(t) := u(x

j

, t) otteniamo per j = 1, . . . , m − 1 il sistema di

equazioni differenziali

u

j

0

(t) =

u

j +1

(t) − 2u

j

(t) + u

j −1

(t)

h

2

x

+ G (x

j

, t)

(3)

Nel risolvere il sistema dobbiamo far attenzione alle condizioni sul

bordo

u

0

(t) = d

0

(t), u

m

(t) = d

1

(t)

e ricordare che la condizione iniziale del sistema di equazioni

differenziali `

e

(4)

Equazione del calore.

Il sistema differenziale (3) pu`

o essere riscritto matricialmente.

Posto

u(t) := [u

1

(t), . . . , u

m−1

(t)]

T

u

0

:= [f (x

1

), . . . , f (x

m−1

)]

T

g(t) :=

 1

h

2

x

d

0

(t), 0, . . . , 0,

1

h

2

x

d

1

(t)



T

+[G (x

1

, t), . . . , G (x

m−1

, t)]

T

Λ =

1

h

2

x

−2

1

0

0

. . .

0

1

−2

1

0

. . .

0

0

1

−2

1

. . .

0

. . .

. . .

. . .

. . .

. . .

. . .

0

0

0

0

1

−2

(4)

(5)

Equazione del calore e metodo delle linee: Eulero esplicito

Risolvendo

u

0

(t) = Λu(t) + g(t), u(0) = u

0

in t

n

= nh

t

,

n = 0, 1, . . . con

Eulero esplicito

, per u

n+1

:= u(t

n+1

), si ha v

n+1

≈ u

n+1

ove



v

n+1

= v

n

+ h

t

(Λv

n

+ g(t

n

))

v

0

assegnato

(6)

Eulero implicito

, si ha



v

n+1

= v

n

+ h

t

(Λv

n+1

+ g(t

n+1

))

v

0

assegnato

(7)

ovvero



(I − h

t

Λ)v

n+1

= v

n

+ h

t

g(t

n+1

)

v

0

assegnato

(8)

con I − h

t

Λ

definita positiva

(e quindi non singolare) poich`

e Λ

`

(6)

Equazione del calore.

A partire da Eulero esplicito ed Eulero implicito si definiscono i

cosidetti

θ−metodi

in cui

v

n+1

= v

n

+ (1 − θ)h

t

(Λv

n

+ g(t

n

)) + θh

t

(Λv

n+1

+ g(t

n+1

))

con v

0

assegnato.

Si osservi che:

(7)

Esperimento numerico.

Esempio

Studiamo numericamente l’equazione del calore

∂u

∂t

=

2

u

∂x

2

+ G , 0 < x < 1, t > 0

u(0, t) = d

0

(t), u(1, t) = d

1

(t), t ≥ 0

u(x , 0) = f (x ), 0 ≤ x ≤ 1

(9)

per

G (x , t) = (−0.1 + π

2

) (exp(−0.1 · t) sin(π x ))

d

0

(t) = 0, d

1

(t) = 0

f (x ) = sin(π x )

(10)

avente quale soluzione

(8)

Esperimento numerico.

0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

(9)

Esperimento numerico.

Definiamo il termine noto in

g.m

f u n c t i o n g t=g ( t , x , hx , d0 , d1 , G ) % V a l u t a : % g ( t ) =(1/ hx ˆ 2 )∗( d0 ( t ) , 0 , . . . , 0 , d1 ( t ) ) +[G( x1 , t ) , . . . , G( x (m−1) , t ) ] . g t=f e v a l( G , x , t ) ; g t( 1 )=g t( 1 ) +(1/ hx ˆ 2 )∗f e v a l( d0 , t ) ; g t(l e n g t h(g t) )=g t(l e n g t h(g t) ) +(1/ hx ˆ 2 )∗f e v a l( d1 , t ) ;

e implementiamo il metodo in

metodolinee.m

f u n c t i o n [ V_hist , x_in , t_in , hx , ht ]= m e t o d o l i n e e ( theta , tfin , m , f , d0 , d1 , G , sigma ) % INPUT .

% t h e t a : PARAMETRO DEL THETA METODO i n [ 0 , 1 ] . % t f i n : ISTANTE FINALE .

% m : DETERMINA I L PASSO SPAZIALE CON PASSO h x =1/m. % f : u ( x , 0 )=f ( x )

% d0 , d1 : u ( 0 , t )=d0 ( t ) , u ( 1 , t )=d1 ( t ) . % G : ( D t ) u=(Dˆ2 x ) u+G .

% s i g m a : I L PASSO TEMPORALE E ’ s i g m a∗( hx ˆ2) / 2 . % OUTPUT .

% V h i s t : SOLUZIONE ISTANTE PER ISTANTE . RIGHE I N I Z I A L I −> BASSO t . % x i n : PUNTI INTERNI NELLA VARIABILE x .

% t i n : PUNTI INTERNI NELLA VARIABILE t . % hx : PASSO SPAZIALE .

(10)

Esperimento numerico.

hx=1/m ; ht=s i g m a∗( hx ˆ2) / 2 ; % PASSI SPAZIALI E TEMPORALI . x = ( 0 : hx : 1 ) ’ ; x _ i n=x ( 2 :end− 1 , : ) ; % PUNTI INTERNI . u0=f e v a l( f , x_in ) ; % VETTORE SOLUZIONE AL TEMPO ” 0 ” . t = ( 0 : ht : t f i n ) ’ ; t _ i n=t ( 2 :end, 1 ) ; % TEMPI DA ANALIZZARE . L a m b d a=−(1/hx ˆ 2 )∗g a l l e r y(’ t r i d i a g ’, m−1) ; % Lambda= f u l l ( Lambda ) ;

i f t h e t a < 1 , g t _ p r e v=g ( 0 , x_in , hx , d0 , d1 , G ) ; end

V _ o l d=u0 ; V _ h i s t =[ V_old ’ ] ; e r r _ h i s t = [ ] ; % I N I Z I A L I Z Z A Z I O N I .

f o r i n d e x =1:l e n g t h( t_in ) % STUDIO SOLUZIONE IN TEMPI FINO A t f i n . t _ c u r r=t _ i n ( i n d e x ) ; g t _ c u r r=g ( t_curr , x_in , hx , d0 , d1 , G ) ; s w i t c h t h e t a c a s e 0% EULERO ESPLICITO . V _ n e w=V _ o l d+ht∗( Lambda∗V_old+gt_prev ) ; g t _ p r e v=g t _ c u r r ; c a s e 1% EULERO IMPLICITO . A=e y e(s i z e( Lambda ) )−ht∗Lambda ; b=V _ o l d+ht∗gt_curr ; V_new=A\b ; o t h e r w i s e% THETA METODO.

A=e y e(s i z e( Lambda ) )−(ht∗theta ) ∗Lambda ;

b=V _ o l d+ht∗(1−theta ) ∗( Lambda∗V_old+gt_prev )+ht∗theta∗gt_curr ;

V _ n e w=A\b ; g t _ p r e v=g t _ c u r r ;

end

V _ h i s t =[ V _ h i s t ; V_new ’ ] ; V _ o l d=V _ n e w ;

(11)

Esperimento numerico.

1

Il parametro m determina il passo spaziale h

x

= 1/m;

2

se theta=0 allora si utilizza il metodo di Eulero esplicito,

mentre se theta=1 Eulero implicito;

3

la variabile tfin determina l’ultimo istante possibile da

analizzare;

(12)

Esperimento numerico.

Salviamo in

demo calore.m

f u n c t i o n d e m o _ c a l o r e ( theta , s i g m a ) i f n a r g i n< 2 , sigma =1;end mV =[2 4 8 1 6 ] ; t f i n =5; % SETTINGS . % ESEMPIO . G=@ ( x , t ) (−0.1+p iˆ 2 )∗(e x p( ( − 0 . 1 )∗t ) . ∗s i n(p i∗x ) ) ; d0=@ ( t ) z e r o s(s i z e( t ) ) ; d1=@ ( t ) e x p( ( − 0 . 1 )∗t ) . ∗s i n(p i) ; f=@ ( x ) s i n(p i∗x ) ; s o l u t i o n=@ ( x , t ) e x p( ( − 0 . 1 )∗t ) . ∗s i n(p i∗x ) ; e r r _ h i s t = [ ] ; f o r k =1:l e n g t h( mV )

m=mV ( k ) ; % ANALISI SUDD . m PUNTI SPAZIALI .

[ V_hist , x_mid , t_mid , hx , ht ]= m e t o d o l i n e e ( theta , tfin , m , f , d0 , d1 , G , sigma ) ; U=f e v a l( solution , x_mid , t_mid (end) ) ;

err=norm( U’− V_hist (end, : ) , inf ) ; % ERRORE METODO. e r r _ h i s t =[ e r r _ h i s t ; err ] ;

f p r i n t f(’ \n \ t [m ] : %3.0 f [ ERROR ] : %2.2 e [ hx ] : %2.2 e [ h t ] : %2.2 e ’, . . . m , err , hx , ht ) ;

(13)

Esperimento numerico: Eulero esplicito.

Per motivi di stabilit`

a tipici di Eulero esplicito, necessita che h

t

≤ h

x2

/2.

Vediamo su vari esempi cosa succede numericamente. Dopo aver settato in

demo calore il parametro theta=0, proprio di Eulero Esplicito, scegliamo per

esempio

sigma=1.5

. Quindi dalla shell digitiamo quanto segue:

>> d e m o _ c a l o r e ( 0 , 1 . 5 )

[ THETA ] : 0 . 0 0 0 [ TFIN ] : 5 . 0 0 0 [ SIGMA ] : 1 . 5 e+00

[ m ] : 2 [ ERROR ] : 1 . 4 5 e−01 [ hx ] : 5 . 0 0 e−01 [ ht ] : 1 . 8 8 e−01 [ m ] : 4 [ ERROR ] : 1 . 4 0 e+04 [ hx ] : 2 . 5 0 e−01 [ ht ] : 4 . 6 9 e−02 [ m ] : 8 [ ERROR ] : 7 . 3 2 e+100 [ hx ] : 1 . 2 5 e−01 [ ht ] : 1 . 1 7 e−02 [ m ] : 16 [ ERROR ] : NaN [ hx ] : 6 . 2 5 e−02 [ ht ] : 2 . 9 3 e−03 >>

Segliamo un parametro sigma pi`

u piccolo,

sigma=1.1

.

>> d e m o _ c a l o r e ( 0 , 1 . 1 )

[ THETA ] : 0 . 0 0 0 [ TFIN ] : 5 . 0 0 0 [ SIGMA ] : 1 . 1 e+00

(14)

Esperimento numerico: Eulero esplicito.

Il metodo non fornisce evidentemente risultati apprezzabili.

Scegliamo ora

sigma=1.0

: il metodo di Eulero esplicito finalmente

converge.

>> d e m o _ c a l o r e ( 0 , 1 )

[ THETA ] : 0 . 0 0 0 [ TFIN ] : 5 . 0 0 0 [ SIGMA ] : 1 . 0 e+00

[ m ] : 2 [ ERROR ] : 1 . 4 3 e−01 [ hx ] : 5 . 0 0 e−01 [ ht ] : 1 . 2 5 e−01 [ m ] : 4 [ ERROR ] : 3 . 2 5 e−02 [ hx ] : 2 . 5 0 e−01 [ ht ] : 3 . 1 2 e−02 [ m ] : 8 [ ERROR ] : 7 . 9 3 e−03 [ hx ] : 1 . 2 5 e−01 [ ht ] : 7 . 8 1 e−03 [ m ] : 16 [ ERROR ] : 1 . 9 7 e−03 [ hx ] : 6 . 2 5 e−02 [ ht ] : 1 . 9 5 e−03 >>

(15)

Esperimento numerico: Eulero implicito.

Analizziamo ora il comportamento di Eulero implicito (cio`

e theta=1).

Tale metodo richiede la risoluzione di sistemi lineari tridiagonali, ma ci`

o non `

e

un problema dal punto di vista computazionale (per ogni t

i

il costo e’ O(m)).

Proviamo il comportamento per

sigma=1.5

,

>> d e m o _ c a l o r e ( 1 , 1 . 5 )

[ THETA ] : 1 . 0 0 0 [ TFIN ] : 5 . 0 0 0 [ SIGMA ] : 1 . 5 e+00

[ m ] : 2 [ ERROR ] : 1 . 4 5 e−01 [ hx ] : 5 . 0 0 e−01 [ ht ] : 1 . 8 8 e−01 [ m ] : 4 [ ERROR ] : 3 . 2 6 e−02 [ hx ] : 2 . 5 0 e−01 [ ht ] : 4 . 6 9 e−02 [ m ] : 8 [ ERROR ] : 7 . 9 5 e−03 [ hx ] : 1 . 2 5 e−01 [ ht ] : 1 . 1 7 e−02 [ m ] : 16 [ ERROR ] : 1 . 9 7 e−03 [ hx ] : 6 . 2 5 e−02 [ ht ] : 2 . 9 3 e−03 >>

Per curiosit`

a proviamo per

sigma=10

,

>> d e m o _ c a l o r e ( 1 , 1 0 )

[ THETA ] : 1 . 0 0 0 [ TFIN ] : 5 . 0 0 0 [ SIGMA ] : 1 . 0 e+01

(16)

Esercizio.

Esercizio (Facoltativo)

Eseguire gli stessi test eseguiti per Eulero esplicito col θ-metodo,

per

θ = 0.25,

θ = 0.5,

θ = 0.75.

Riferimenti

Documenti correlati

Da quel momento in poi, essi dovevano battezzare tutti i neòfiti in acqua, sì nel nome di Gesù (PRIMO BATTESIMO), ma dovevano battezzare ANCHE e soprattutto nella pienezza

7) di non avere riportato condanne penali e di non avere carichi pendenti o, comunque, di non essere a conoscenza di essere sottoposto a procedimenti penali

Disequazioni 2°–..

Graficamente si osserva che i punti di massimo o di minimo vincolato si hanno in corrispondenza dei punti (x,y) in cui le linee di livello risultano tangenti alla curva che esprime

Un sistema per ridurre l’errore insito nel metodo di Eulero consiste nell’inserire nella soluzione i termini di ordine superiore della serie di Taylor. Relativamente semplice

Ovviamente, anche se non tutte le combinazioni di m colonne tra le n della matrice A corrispondono a soluzioni di base (le colonne potrebbero non essere linearmente indipendenti o

Abbiamo quindi che A `e insieme superiormente limitato, 0 `e un maggiorante, ma non inferiormente limitato... Verifichiamo che 1 `e l’estremo superiore di D, ovvero che non

[r]