Introduzione alle equazioni differenziali, problema di Cauchy, metodo di Eulero, metodi Runge-Kutta.
I sistemi dinamici possono essere rappresentati matematicamente dall’equazioni differenziali ordinarie (ODE).
Si chiama problema di Cauchy il problema delle ricerca di una funzione y continua e derivabile nell’intervallo [a,b] a valori in R tale che:
y’=f(t,y(t)) a<=t<=b
y(a)=ya
Con il linguaggio simbolico dei sistemi dinamici, il compartimento è la variabile di stato y(t), ed i flussi entranti/uscenti sono la parte positiva/negativa dell’equazione differenziale y’.
L’esigenza di avere dei metodi numerici per la risoluzione delle ODE è in classicamente giustificata dal fatto che solo una piccola parte dei modelli matematici possono essere risolti attraverso l’analisi matematica classica, ma non è l’unica ragione infatti è importante sottolineare che spesso anche la valutazione di una soluzione analitica richiede una approssimazione numerica e quindi affetta da errore, e che proprio questa valutazione può avere un elevato costo computazionale. Un ultima “ragione” che vogliamo sottolineare è che spesso si desidera un avere un sistema (software) in grado di trovare la soluzione per una batteria di problemi spesso molto simili tra loro.
I metodi numerici sono basati su una semplice idea. Si discretezza l’intervallo [a,b] considerando un numero finito di punti (chiamati nodi)
a=t0<t1<t2<…<tn-1<tn=b
e si calcola in ti una approssimazione yi di y(ti)
In altri termini in corrispondenza dei nodi ti, un particolare metodo genera una sequenza di valori yi che definiscono la soluzione discreta e rappresentano le approssimazioni dei valori y(ti) della soluzione continua. E’ importante notare che in prima approssimazione, per semplicita’ possiamo supporre che i nodi ti sono equispaziati cioe’
ti+1-ti=h=(b-a)/n con i=0,1,…,n
I metodi numerici per la soluzione delle equazioni differenziali si possono dividere in due diversi tipi: metodi one-step e metodi multi-step.
Nei metodi one-step il valore yi viene calcolato utilizzando unicamente l’approssimazione precedente yi-1; nei metodi multi-step invece il valore yi viene calcolato utilizzando piu’ approssimazioni precedenti.
Inoltre i metodi possono essere di carattere esplicito o implicito. Si dice che il metodo è esplicito se il calcolo di yi non è funzione di yi, altrimenti si dice implicito.
Il metodo di Eulero è il piu semplice metodo one-step esplicito per risolvere il problema di Cauchy
y’=f(x,y)
y(x0)=y0
Sia [a,b], con x0=a , l’intervallo in cui si vuole approssimare la soluzione del problema di Cauchy; dividiamo l’intervallo in n sottointervalli uguali con i punti equidistanti
xk=a+kh k=0,1,…,n
Indichiamo con y(xk) il valore esatto della soluzione nel punto xk e con yk il valore approssimato. Supponiamo che le funzioni y(x), y’(x) e y”(x) siano continue e usiamo la formula di Taylor per sviluppare y(x) nell’intorno del punto x0.
y(x)=y(x0)+ y’(x0)(x-x0)+(x-x0)^2/2 y”(c)
con c opportuno punto compreso fra x0 e x.
Sostituendo y’(x0)=f(x0,y(x0)) e h=x1-x0 nello sviluppo di Taylor si ha:
y(x)=y(x0)+ hf(x0,y(x0))+h^2/2 y”(c)
Se il passo h è sufficientemente piccolo si può trascurare il termine contenente la derivata seconda e si ottiene la formula di Eulero:
y1=y0+ hf(x0,y(x0))
Il procedimento può essere ripetuto, generando una successione di valori yk , k = 0,1,…,n, che approssimano la soluzione nei punti xk; il generico passo del metodo di Eulero è dato dalla seguente formula alle differenze finite.
Diamo ora una interpretazione geometrica della formula di Eulero.
La retta tangente in xk al grafico di y=y(x) ha coefficiente angolare:
y’(xk)=f(xk,y(xk))
Il metodo consiste nell’assumere come approssimazione di y(xk+1) il valore assunto in xk+1 dalla retta tangente alla curva y =y(x) nel punto (xk, yk).
Formula di Eulero
yk+1 =yk +hf (xk , yk) k =0,1,….,n -1
L’algoritmo del metodo di Eulero può essere scritto come segue:
.
h:=(T-t0)/n
y(0):=y0
for i=1,n do
t:=t0+I*h
y(i):=y(i-1)+h*f(t,y(i-1))
endfor
.
Come abbiamo visto, il metodo di Eulero non fornisce un’approssimazione accurata della soluzione e l’errore cresce allontanandosi dal punto x0 in cui è assegnata la condizione iniziale. In generale, tutti i metodi numerici per la risoluzione di equazioni differenziali generano due tipi diversi di errore:
Gli errori di troncamento sono di due tipi diversi: il primo è detto errore locale di troncamento, il secondo è detto errore globale di troncamento.
L’errore locale è l’errore commesso nel singolo passo del metodo da xk a xk+1, e non tiene conto degli errori introdotti nei passi precedenti (come se il valore trovato al passo precedente fosse esatto). Quindi, l’errore locale di troncamento nel punto xk+1 è definito da:
EL =y(xk+1)-yk –hF(xk, yk,h)
L’errore globale è l’errore su yk quando tutti i precedenti valori yk -1, yk -2 ,… sono determinati anch’essi col metodo numerico, ossia l’errore globale tiene conto della propagazione degli errori. Questo errore è molto difficilmente valutabile in quanto y(xk) non è noto; poiché però l’errore globale dipende da h, si può ragionevolmente pensare che scegliendo un passo h sufficientemente piccolo l’errore diminuisca.
L’errore globale di troncamento nel punto xk è, quindi, definito da:
EG =y(xk) -yk
ed è la differenza fra il valore analitico della soluzione in xk e il valore approssimato ottenuto con il metodo numerico. Inoltre, se l’errore globale EG=O(hp), il metodo si dice di ordine p.
Abbiamo visto che il metodo di Eulero è del 1° ordine; è un metodo convergente, ma non molto usato perche bisogna scegliere un passo h molto piccolo per avere un errore globale accettabile. Infatti se si dimezza il passo h, l’errore globale viene ridotto a metà. Scegliendo però un passo molto piccolo, l’errore di arrotondamento dovuto alla precisione finita del calcolo cresce e può prevalere sull’errore globale di troncamento. In tal caso l’errore complessivo del metodo, a cui contribuiscono sia l’errore globale di troncamento che l’errore di arrotondamento, cresce. C’è quindi la necessità di introdurre dei metodi con maggiore accuratezza: i metodi Runge-Kutta.
Questi metodi si ottengono dalla formula di Taylor ma non fermandosi semplicemente alla derivata prima della funzione f(t,y) ma fino alla derivata di ordine 3 o 4
2. Introduzione alla modellistica
4. Il software di sistemi dinamici SIMILE
5. Introduzione agli errori numerici
6. Introduzione alle equazioni differenziali ordinarie (ode)
7. Modularità
8. Errori nel processo di modellistica
9. Dinamica di popolazione isolata
11. Interazione tra popolazione
13. Introduzione ai modelli di catene alimentari
14. Modelli Suscettibili - Infetti - Rimossi (SIR)
15. Introduzione a modelli spazio/tempo
16. Modelli integrati di simulazione
17. Introduzione a modelli individual-based (IBM)
18. Un confronto tra individual-based model and community model
19. Un esempio di IBM: un modello energetico/decisionale del barbag...