• 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

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

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

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]

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