Sei sulla pagina 1di 2

.

Laboratorio VIII

Equazioni differenziali ordinarie I

Metodi di Eulero in avanti e indietro


Dato un generico problema di Cauchy:
(
y 0 (t) = f (t, y), t0 < t ≤ tmax ,
(1.1)
y(t0 ) = y0 ,

i metodi numerici utilizzati per risolvere il problema (1.1) si basano sulla seguente strategia:

1. stabilire un passo di avanzamento temporale h;


2. suddividere l’intervallo temporale [t0 , tmax ] in un numero Nh di sottointervalli
Nh = (tmax − t0 )/h
di egual ampiezza h;
3. per ogni istante temporale discreto tn , con t0 < tn ≤ tmax , si calcola il valore incognito un
che approssima la soluzione di (1.1) yn = y(tn ).

L’insieme dei valori {u0 = y0 , u1 , . . . , uNh } rappresenta la soluzione numerica di (1.1).


Il metodo di Eulero in avanti calcola la soluzione numerica {un } di (1.1) generando la successione
di valori:

u0 = y0 , un+1 = un + hf (tn , un ), n = 0, . . . , Nh − 1.

Osserviamo che tale metodo è esplicito e ad un passo (one–step) in quanto, ad ogni pas-
so temporale, la soluzione numerica un+1 dipende soltanto dalla soluzione al passo temporale
precedente un .
Il metodo di Eulero all’indietro calcola invece la soluzione numerica {un } di (1.1) nel modo
seguente:

u0 = y0 , un+1 = un + hf (tn+1 , un+1 ), n = 0, . . . , Nh − 1.

Tale metodo è implicito e ad un passo (one–step), in quanto, ad ogni passo temporale, la soluzione
numerica un+1 dipende dalla stessa soluzione incognita un+1 , oltre che da un . Quindi se f è
una funzione non lineare, ad ogni istante temporale, si deve risolvere un’equazione non lineare
nell’incognita un+1 utilizzando, ad esempio, un metodo di punto fisso.
Si osservi che l’utilizzo di un metodo di punto fisso richiede che il modulo della derivata della
funzione di iterazione utilizzata sia minore di uno; questa condizione è generalmente soddisfatta
per h sufficientemente piccolo.
Laboratorio VIII Equazioni differenziali ordinarie I

Esercizio 8.1

Si consideri il problema di Cauchy


 0 1 2
y (t) = 1+t 2 − 2y(t) , 0 < t ≤ 10,
(1.2)
y(0) = 0,

La soluzione esatta di tale problema è


t
y(t) =
1 + t2

1. Si rappresenti graficamente la soluzione esatta nell’intervallo considerato.


2. Scrivere la function eulero avanti.m che implementa il metodo di Eulero in avanti per la
risoluzione di un generico problema di Cauchy (1.1).
La funzione eulero avanti.m riceve in ingresso:

• la funzione f (t, y) definita come @-function. Si noti che f è una funzione di due
variabili;
• gli estremi t0 e tmax dell’intervallo di definizione;
• il dato iniziale y0 ;
• il passo di avanzamento temporale h.
La funzione eulero avanti.m restituisce il vettore t h degli istanti temporali discreti e
il vettore u h dei valori della corrispondente soluzione approssimata. L’intestazione di
eulero avanti.m sarà quindi:
function [ t h , u h ] = e u l e r o a v a n t i ( f , t 0 , t max , y 0 , h )

3. Utilizzando la function appena scritta, risolvere il problema (1.2) con il metodo di Eulero
in avanti per i valori del passo temporale h1 = 0.2 e h2 = 0.05.
Rappresentare sullo stesso grafico le soluzioni numeriche ottenute e confrontarle con la
soluzione esatta.
4. Definito
eh = max |y(tn ) − un | ,
tn ∈[t0 ,tmax ]

il massimo modulo dell’errore compiuto approssimando la soluzione esatta y(tn ) con la


soluzione numerica un calcolata con il metodo di Eulero in avanti, riportare, su un grafico
in scala logaritmica, l’andamento di eh al variare di h, utilizzando i passi temporali h =
[0.2, 0.1, 0.05, 0.025, 0.0125].

5. Ripetere i punti 3-4 applicando questa volta il metodo di Eulero all’indietro. Si utilizzi la
funzione eulero indietro.m fornita. Quali considerazione si possono fare?
6. Risolvere il problema (1.2) con i metodi di Eulero in avanti e di Eulero all’indietro, sce-
gliendo un passo h = 1. Riportare su grafici differenti le soluzioni numeriche ottenute,
confrontandole con la soluzione esatta, e calcolare gli errori ottenuti. Cosa si osserva?

–2–

Potrebbero piacerti anche