• Non ci sono risultati.

Equazioni differenziali ordinarie.

N/A
N/A
Protected

Academic year: 2021

Condividi "Equazioni differenziali ordinarie."

Copied!
11
0
0

Testo completo

(1)

Equazioni differenziali ordinarie.

Alvise Sommariva

Universit`a degli Studi di Padova Dipartimento di Matematica

(2)

Metodi di Eulero esplicito in Matlab

Di seguito descriviamo i codici Matlab di

Eulero esplicito

,

Eulero implicito

,

eseguiti da Atkinson, Han, Steward.

(3)

Metodo di Eulero implicito in Matlab

f u n c t i o n [ t , y]= eulero_implicito ( t0 , y0 , t_end , h , fcn , tol ) n = f i x ( ( t_end−t0 ) / h ) + 1 ; t = l i n s p a c e( t0 , t0+(n −1)∗h , n ) ’ ; y = z e r o s( n , 1 ) ; y ( 1 ) = y0 ; f o r i =2: n yt1 = y ( i −1) + h∗f e v a l( fcn , t ( i −1) , y ( i −1) ) ; count = 0 ; d i f f = 1 ;

w h i l e d i f f > tol && count < 10

yt2 = y ( i −1) + h∗f e v a l( fcn , t ( i ) , yt1 ) ;

d i f f = a b s( yt2−yt1 ) ; yt1 = yt2 ; count=count +1;

(4)

Metodo di Eulero implicito in Matlab

Osserviamo che

la routine in questione risolve l’equazione del metodo di

Eulero implicito

z = u

n

+ hf (x

n+1

, z)

tramite l’applicazione del metodo di

punto fisso

, ottenendo

per k = 0, 1, . . .

zk+1

= un

+ hf (xn+1, zk

)

quale

valore iniziale

z

0

del metodo di punto fisso si sceglie

(5)

Nota. Crank-Nicolson

Si osservi che l’implementazione del metodo di Crank-Nicolson

u

n+1

= u

n

+

h

2

(f (x

n

, u

n

) + f (x

n+1

, u

n+1

))

`

e simile a quella di Eulero implicito.

La routine in particolare richiede la soluzione dell’equazione

z = u

n

+

h

2

(f (x

n

, u

n

) + f (x

n+1

, z))

al posto di quella proposta dal metodo di Eulero implicito

z = u

n

+ hf (x

n+1

, z).

In particolare, il metodo di punto fisso, richiede le iterazioni:

z

k+1

= u

n

+

h

(6)

Esercizio 1. Eulero esplicito

Esercizio

Si risolva utilizzando il metodo di Eulero esplicito con passi h

uguali rispettivamente a 0.2, 0.1, 0.05



y

0

(x ) = (cos (y (x )))

2

, 0 ≤ x ≤ 10

y (0) = 0

(1)

la cui soluzione `

e Y (x ) = arctan(x ).

Si calcolino (o plottino in scala semi-logaritmica)

l’errore assoluto rispetto la soluzione esatta;

l’errore relativo rispetto la soluzione esatta.

(7)

Esercizio 2. Crank-Nicolson

Esercizio

Modificando opportunamente il metodo di Eulero implicito, si implementi il metodo di Crank-Nicolson.

Si risolva utilizzando il metodo di Crank-Nicolson con passi h uguali rispettivamente a 0.2, 0.1, 0.05, con tolleranza pari a 10−6,



y0(x ) = (cos (y (x )))2, 0 ≤ x ≤ 10

y (0) = 0 (2)

la cui soluzione `e Y (x ) = arctan(x ). Si calcolino (o plottino in scala semi-logaritmica)

(8)

Esercizio 3. Assoluta stabilit`

a

Esercizio

Approssimare per λ = −100 il valore assunto dalla soluzione y del problema di Cauchy  y0(x ) = λy (x ), x ≥ 0 y (0) = 1 (3) nel punto x = 100. A tal proposito

Si utilizzano i metodi di Eulero esplicito e Eulero implicito con passi h = 0.1, h = 0.05, h = 0.02, h = 0.01, h = 0.001.

Al variare di h verificare quando |1 + hλ| < 1.

Stampare gli errori assoluti compiuti nell’approssimare la soluzione in x = 100 (in formato esponenziale, 1 cifra prima della virgola e 3 dopo la virgola).

(9)

Esercizio 4. Metodi di Adams (facoltativo)

Esercizio (Facoltativo)

Implementare i metodi di Adams-Bashforth e Moulton per p = 3. Si consideri il problema di Cauchy



y0(x ) = (cos (y (x )))2, 0 ≤ x ≤ 10

y (0) = 0 (4)

la cui soluzione `e Y (x ) = arctan(x ).

Approssimare con tali metodi la soluzione di (4) nell’intervallo [0, 10], in N punti equispaziati xn, con N = 2, 4, 8, 16, 32, descrivendone con un plot l’errore assoluto kun− Ynk∞(dove Yn= y (xn) e un l’approssimazione fornita dal metodo numerico in xn).

(10)

Esercizio 5. Metodi di RK2 (facoltativo)

Esercizio (Facoltativo)

Fissato ”N”, e posti ”x0=0”, ”xfin=10”, approssimare mediante il metodo RK2 y (xn+1) ≈ un+1= un+ hF (xn, un; h)

con

F (x , y ; h) = γ1f (x , y ) + γ2f (x + αh, y + βhf (x , y )), la soluzione ”y ” del problema di Cauchy:



y0(x ) = −y (x ) + 2 · cos(x ), 0 ≤ x ≤ 10 y (0) = 1

nei punti xk= x0+ kh, con h = 10/N, k = 0, . . . , N. Si eseguano due esempi aventi i passi rispettivamente:

1 h = 0.1, 2 h = 0.05,

(11)

Bibliografia

Riferimenti

Documenti correlati

(e) Stampi su monitor, il valore dell’ultima componente di err, con 1 cifra prima della virgola, 5 dopo la virgola in formato esponenziale.. (f) Esegua su monitor il grafico in

scriva il valore di ogni componente del residuo pesato wr con una cifra prima della virgola, 5 dopo la virgola, in formato esponenziale;?. da tale grafico, quale si pu` o presumere

quale valore iniziale del metodo di punto fisso si sceglie il valore fornito da Eulero esplicito... Si calcolino (o plottino in

La soluzione generale pu` o dover soddisfare determinate condizioni

La mantissa M è, nella forma normalizzata, un numero frazionario compreso fra 2 –1 e 1, ossia 0.5 ≤ M &lt; 1 (M in pratica viene rappresentato in virgola fissa con la virgola

Dipartimento di Matematica - Universit` a di Trento. 29 ottobre - 6

Fioravante PATRONE http://www.diptem.unige.it/patrone homepage Dipartimento di Ingegneria della Produzione, http://tdg.dima.unige.it web teaching Termoenergetica e Modelli

Si può usare la virgola negli elenchi di nomi o aggettivi; per dividere le frasi, soprattutto se il soggetto delle frasi è sempre lo stesso1. Dopo la virgola si usa la