Metodi numerici per ODEromani/index_files/didattica/2007-08/pdf_files/ODE.pdf · Scelta del passo...
Transcript of Metodi numerici per ODEromani/index_files/didattica/2007-08/pdf_files/ODE.pdf · Scelta del passo...
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