Metodi numerici per ODEromani/index_files/didattica/2007-08/pdf_files/ODE.pdf · Scelta del passo...

20
Metodi numerici per ODE Metodi numerici per ODE

Transcript of Metodi numerici per ODEromani/index_files/didattica/2007-08/pdf_files/ODE.pdf · Scelta del passo...

Metodi numerici per ODE

Metodi numerici per ODE

Problema di Cauchy

Consideriamo un’equazione differenziale (sistema di equazioni)del primo ordine in forma normale con condizioni inizialiassegnate. {

y ′(x) = f (x , y(x)) x ∈ [x0, xF ]y(x0) = y0

y ′1(x) = f1(x , y1(x), . . . , yn(x))y ′2(x) = f2(x , y1(x), . . . , yn(x)). . . x ∈ [x0, xF ]y ′n(x) = fn(x , y1(x), . . . , yn(x))

y1(x0) = y (1)0 , y2(x0) = y (2)

0 , . . . , yn(x0) = y (n)0

Si ricordi che un’equazione differenziale di ordine n esprimibilein forma normale, puo essere sempre ricondotta a un sistemadi n equazioni differenziali di ordine uno.

Metodi numerici per ODE

Questioni teoriche: esistenza e unicita della soluzione

Teorema Sia f(x, y) una funzione definita nella strisciaS = {(x , y)| x ∈ [x0, xF ]; y ∈ Rn }, ivi continua rispetto a x e a ye che gode di una condizione di Lipschitz rispetto a y in S,ossia esiste L > 0 (costante di Lipschitz) tale che

‖f (x , y1)− f (x , y2)‖ ≤ L‖y1 − y2‖

per ogni y1, y2 ∈ Rn e per ogni x ∈ [x0, xF ].Allora per ogni x ∈ [x0, xF ] e per ogni y ∈ Rn esiste una e unasola funzione y(x) continua e differenziabile con continuita in[x0, xF ] tale che y(x) soddisfa y ′(x) = f (x , y(x)) in [x0, xF ] ey(x) = y .

Metodi numerici per ODE

Questioni teoriche

Dipendenza continua dai dati: si studia il comportamento dellasoluzione quando la pertubazione sul dato iniziale tende a zero.

Condizionamento: perturbazione sul dato iniziale fissata.Infatti non possiamo farla tendere a zero!Il condizionamento e legato a ∂f/∂y .Se ∂f/∂y < 0, le soluzioni ottenute a partire da differenti valoriiniziali tendono a diminuire la loro distanza per x crescente.Il problema e ben condizionato (stabile).

0 0.05 0.1 0.15 0.2 0.25 0.3 0.350

0.2

0.4

0.6

0.8

1

1.2

1.4dato inizialedato perturbatosoluzionesol. prob. perturbato

Metodi numerici per ODE

Questioni teoriche

Se ∂f/∂y > 0, segue che la distanza tra due soluzioni ottenutea partire da valori iniziali di poco diversi, aumenta al crescere dix. Il problema e mal condizionato (instabile).

0 0.005 0.01 0.015 0.02 0.025 0.030

5

10

15

20

25dato inizialedato perturbatosoluzionesol. prob. perturbato

Metodi numerici per ODE

Metodi numerici

Nelle applicazioni, si richiede che f (x , y) sia sufficientementeregolare, ossia che ammetta derivate parziali continue elimitate fino all’ordine p, con p > 1, in S.La risoluzione numerica del problema di Cauchy si basa su unadiscretizzazione del dominio I = [x0, xF ] che puo essere fatta apasso costante o a passo variabile.Si decompone I in µ sottointervalli di ampiezza hn, con i nodidati da

xn = x0 +n∑

j=1

hj .

Se hn = h, allora xn = x0 + nh. In tal caso la discretizzazione ea passo costante. Cio capita raramente nelle applicazioni.I metodi numerici risolutivi si propongono di determinare unasuccessione di valori yn, n = 1 . . . , µ, ove yn rappresenta unaapprossimazione della soluzione analitica incognita in xn, ossiayn e una approssimazione di y(xn).

Metodi numerici per ODE

Metodi numerici

Il valore di yn si ottiene mediante approssimazioni calcolate in kpassi precedenti.Se k = 1, si parla di metodi ad un passo.In questo caso yn viene calcolato a partiredall’approssimazione yn−1.

Se k > 1, si parla di metodi multipasso.

Metodi numerici per ODE

Metodo di Eulero

Metodo semplice da illustrare ma non efficiente nella maggiorparte delle applicazioni.

xi+1 = xi + h, yi+1 = yi + hf (xi , yi), i = 0, . . . , µ− 1

E un metodo di ordine 1.

Metodi numerici per ODE

Metodi Runge Kutta

Formula generale

yi+1 = yi + hs∑

j=1

bj fj

dove

f1 = f (xi , yi), fj = f (xi + cih, yi + hj−1∑l=1

ajl fl), j = 2, . . . , s

Il numero s indica il numero di stadi ovvero il numero divalutazioni della funzione f .

Metodi numerici per ODE

Esempi di metodi Runge Kutta

Il metodo di HeunUtilizza due valutazioni funzionali (due stadi).E’ un metodo di ordine 2.

xi+1 = xi + h, yi+1 = yi +h2

(f1 + f2)

dovef1 = f (xi , yi), f2 = f (xi + h, yi + hf1)

Metodi numerici per ODE

Esempi di metodi Runge Kutta

Il metodo a tre stadi di ordine 3

yi+1 = yi +h6

(f1 + 4f2 + f3)

dove

f1 = f (xi , yi)

f2 = f (xi +h2, yi +

h2

f1)

f3 = f (xi + h, yi + h(2f2 − f1))

Metodi numerici per ODE

Attenzione: il numero di stadi NON e pari all’ ordine del metodo!Butcher ha provato una relazione tra il numero s degli stadi diuna formula Runge Kutta esplicita e il suo ordine k .

s 1 2 3 4 5 6 7 8 9k 1 2 3 4 4 5 6 6 7

Metodi numerici per ODE

Considerazioni pratiche: scelta del metodo

Metodo accurato: richiede piu valutazioni funzionali adogni passo, ma generalmente l’accuratezza richiesta eraggiunta con h ”non troppo piccolo”⇒ maggioreefficienza.

0 1 2 3 4 5 60.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4soluzione esattaeulero passo h=0.3heun passo h=0.3

0 1 2 3 4 5 60.5

1

1.5

2soluzione esattaeulero passo h=0.1heun passo h=0.1

Metodi numerici per ODE

Considerazioni pratiche: scelta del passo

Passo troppo piccolo comporta elevato costo sia in terminidi calcolo che di occupazione della memoria.In ogni caso non posso scendere sotto una certa soglia inquanto gli errori di arrotondamento supererebbero quellilocali di troncamento.Il passo deve essere scelto in modo che il metodo sianumericamente stabile.

Metodi numerici per ODE

Considerazioni pratiche: scelta del passo

Il passo deve essere tale che (λh) appartenga ad una certaregione: la regione di assoluta stabilita del metodo.Regioni di assoluta stabilita dei metodi RK

Ordine Intervalli di assoluta stabilita1 (-2,0)2 (-2,0)3 (-2.5127,0)4 (-2.7853,0)

Metodi numerici per ODE

Considerazioni pratiche: scelta del passo

Scelta di h : il piu grande possibile in modo da ottenereuna soluzione approssimata entro una certa tolleranza.Quale criterio uso per fare cio? In generale si usa uncriterio che si basa sulla stima dell’errore locale (ditroncamento).

Metodi numerici per ODE

Scelta del passo

Supponiamo di avere un metodo di ordine p

yn+1 = yn + hnΦ(xn, yn)

e consideriamo la soluzione locale del problema che passa peril punto (xn, yn){

u′(x) = f (x ,u(x)) x ∈ [xn, xF ]u(xn) = yn

L’ errore locale in xn+1 e definito come

el(xn+1) = yn+1 − u(xn+1),

mentre l’errore globale e

eg(xn+1) = yn+1 − y(xn+1).

Sappiamo che el(xn+1) = O(hp+1) e che eg(xn+1) = O(hp).Stimare l’errore globale e problematico. In generale si lavora suuna stima dell’errore locale che dipende solo dall’ultimo passoe non da tutti quelli precedenti.

Metodi numerici per ODE

Scelta del passo

Fissiamo una tolleranza tol (accuratezza richiesta) econsideriamo un secondo metodo di ordine superiore a p, peresempio di ordine p + 1. Abbiamo percio una coppia di metodiche a partire dal punto (xn, yn) ci forniscono dueapprossimazioni di ordine diverso nel punto successivo xn+1:

yn+1 = yn + hnΦ(xn, yn)

yn+1 = yn + hnΦ(xn, yn).

Si dimostra che |el(xn+1)| ≈ |yn+1 − yn+1|.

Metodi numerici per ODE

Scelta del passo

Se la stima dell’errore locale ottenuta con il passo hn e inferiorealla tolleranza fissata, il passo usato va bene e si accetta ilvalore yn+1. In caso contrario il passo utilizzato e troppo grandee si deve ripartire da (xn, yn) con un passo piu piccolo, ingenere si dimezza.

Scelta automatica del passoFisso un passo iniziale h0 = H e vado in x1. Calcolo la quantitael1. Fino a quando |el1| > tol , dimezzo il passo h0 = h0/2,torno in x0 e ripeto. Quando el1 ≤ tol accetto il passo h0. Sononel nuovo punto x1. Con che passo mi muovo per andare nelpunto successivo?

Metodi numerici per ODE

Scelta del passo

In genere non si usa quello precedente, ma si usa un passotentativo che dovrebbe garantire che l’approssimazionecalcolata sia accurata:

h1 = 0.9 p+1

√tolel1

h0.

Con questo passo vado in x2, stimo l’errore locale.....

In generale, supponiamo di essere arrivati in xn con passohn−1, che abbiamo accettato. Il passo tentativo per trovarel’approssimazione successiva sara

hn = 0.9 p+1

√toleln

hn−1.

Metodi numerici per ODE