1. Tesina Calcolo
Numerico
Confronto tra metodo di Adams-
Bashfort e di Runge-Kutta
Studente:
Francesco Coppola
09/12/07
2. Francesco Coppola Tesina di Calcolo Numerico 2
Introduzione
L’oggetto di questa tesina consiste nel confrontare il comportamento dei metodi Runge-Kutta e
Adams-Bashfort di ordine 4, al variare del passo h, applicati all’equazione:
L’ambiente in cui si è scelto di effettuare le simulazioni numeriche è stato MATLAB.
Metodo di Runge-Kutta del 4 ordine:
Questo metodo fa parte della famiglia dei metodi One-step, cioè di quei metodi in cui la
valutazione dell’equazione al passo i+1 necessita solamente di uno dei precedenti valori
approssimati della soluzione, ed esattamente di quello del passo precedente i il metodo di Runge-
Kutta Classico ( cioè quello del 4 ordine) è il seguente:
1
y i +1 = y i + ( k1 + 2 k 2 + 2 k 3 + k 4 ) h
6
Dove:
k1 = f ( x i , y i )
1 1
k 2 = f xi + h, y i + k1 h
2 2
1 1
k 3 = f xi + h, y i + k 2 h
2 2
k 4 = f ( xi + h, y i + k 3 h )
2
3. Francesco Coppola Tesina di Calcolo Numerico 3
Metodo di Adams-Bashfort del 4 ordine:
Questo metodo fa parte invece della famiglia dei metodi Multi-step, cioè quei metodi in cui la
valutazione del passo y i+k richiede la conoscenza di k valori precedenti y i+j con j=0,1, ….k-1. Per
avviare il metodo sono quindi necessari dei valori di innesco, i quali sono solitamente ricavati da
metodi one-step, in genere dello stesso ordine del metodo multi-step, nel nostro caso quindi per
implementare il metodo di AB del 4 ordine useremo 3 passi del metodo RK del 4 ordine (classico).
Il metodo di Adams del 4 ordine è il seguente:
h
y i + 4 = yi +3 + ( 55 f i +3 − 59 f i + 2 + 37 f i +1 − 9 f i )
24
Codici MatLab dei metodi utilizzati:
Riportiamo ora i codici sorgenti matlab utilizzati per implementare
numericamente i metodi risolutivi per il metodo di Runge-Kutta è stata
elaborata la seguente function:
3
4. Francesco Coppola Tesina di Calcolo Numerico 4
Per Il metodo di Adams-Bashfort è stata elaborata una function in cui i 3 valori di innesco sono
calcolati utilizzando il metodo Runge-Kutta del 4 ordine:
4
5. Francesco Coppola Tesina di Calcolo Numerico 5
Simulazioni al variare del Passo:
Di seguito sono riportate alcune simulazioni, grafici della soluzione dei due metodi sovrapposti e
relative tabelle dei valori ai nodi, eseguite al diminuire dell’intervallo h (cioè per passi N sempre
5
6. Francesco Coppola Tesina di Calcolo Numerico 6
maggiori) dove h = (b-a) / N, con N>0 passo, e ‘a’ e ‘b’ gli estremi dell’intervallo di integrazione
[a, b].
X (N=4) Y_RK Y_ AB
-1 0 0
-0,25 -0,477777864 -0,477777864
0,5 -0,365009622 -0,365009622
1,25 -0,204766226 -0,204766226
2 -0,008265328 0,048713661
6
11. Francesco Coppola Tesina di Calcolo Numerico 11
Omettiamo per semplicità di riportare le tabelle dei casi N=100 e N=1000.
11
12. Francesco Coppola Tesina di Calcolo Numerico 12
Dall’analisi dei grafici possiamo vedere come per una scelta di passo troppo piccola il metodo di
Adams si discosta dalla soluzione fornita dal metodo di Runge-Kutta, per poi convergere ad essa
per passi maggiori fino a sovrapporsi esattamente alla stessa. Non avendo a disposizione la
soluzione analitica (esatta) del nostro problema, non possiamo affermare nulla circa l’accuratezza,
l’errore relativo o l’errore assoluto dei due metodi utilizzati, possiamo però eseguire un’analisi
della stabilità degli stessi.
Analisi della Stabilità:
Dalla teoria sappiamo che Il metodo di Runge-Kutta essendo un metodo one-step risulta essere
consistente, zero stabile e convergente, sempre dalla teoria sappiamo che il metodo di Adams-
Bashfort è sicuramente zero stabile, da un punto di vista numerico però, né la condizione di
convergenza né quella di zero stabilità assicurano che i metodi forniscano risultati accettabili è
quindi necessario definire un altro tipo di stabilità che prende il nome di Stabilità Assoluta, e fa
riferimento al caso in cui si operi con un passo fissato N>0. Per fornire risultati utili all’analisi di
diversi metodi si ricorre a un particolare problema detto ‘problema test’, grazie al quale si studia il
comportamento dei vari metodi quando essi sono applicati alla sua soluzione.
Problema test:
La cui soluzione è y (t) = , c = costante , e nel nostro caso avremo .
Vogliamo quindi analizzare le condizioni per cui l’errore globale di troncamento, derivante
dall’applicazione di uno dei metodi one-step o multi-step, si propaghi in maniera stabile quando
h→ . Un metodo è detto assolutamente stabile quando per un assegnato valore di , tutte le
radici del polinomio di stabilità cadono all’interno del cerchio unitario, quindi si definisce una
regione del piano complesso detta Regione di Assoluta Stabilità, in cui quel dato metodo è stabile
per tutti i valori di che ricadono nella suddetta regione, se λ risulta essere reale allora la
regione di stabilità si riduce allora ad un intervallo dell’asse reale detto di Intervallo di Assoluta
Stabilità.
Dalla teoria sappiamo che per il metodo di Runge-Kutta si perviene alla condizione per la quale:
Dalla quale si può dedurre che se λ è reale allora l’Intervallo di Stabilità Assoluta è dato da:
12
13. Francesco Coppola Tesina di Calcolo Numerico 13
(- 2.7853,0). Mentre per il metodo di Adams-Bashfort di ordine 4, sempre la teoria ci fornisce il
valore dell’intervallo di Stabilità Assoluta che in questo caso è pari a : (- ) .
Nel nostro problema specifico sappiamo che :
Che risulta essere Reale e positivo per cui la soluzione del problema test sarà crescente con x, cioè
diverge, dovendo prendere per forza di cose un passo N > 0, ed essendo λ > 0 e Reale, segue per
entrambi metodi in questione, con questa scelta delle condizioni iniziali del problema di Cauchy, il
prodotto non potrà mai appartenere ai rispettivi intervalli di assoluta stabilità, per nessuna
scelta possibile del passo. Per cui entrambi i metodi non risultano essere Assolutamente Stabili.
Confronto tra il Metodo di Adams-
Bashfort e di Runge-Kutta:
Possiamo comunque fare alcune considerazioni di carattere generale, il Metodo di Runge-Kutta
risulta essere efficiente anche quando la soluzione non viene ben approssimata con polinomi, di
solito è poco sensibile a eventuali discontinuità delle funzioni del sistema, è facile cambiare il
passo di integrazione in un momento qualsiasi, Il tempo di calcolo dell’algoritmo non è elevato,
quindi per sistemi ODE che richiedano poche risorse di calcolo, il tempo complessivo di
integrazione (CPU time) risulta basso, di contro Il numero di calcoli del sistema ODE è
generalmente maggiore rispetto a quello degli altri metodi Multi-Step. Il Metodo di Adams-
Bashfort invece richiede un minor numero di calcoli di funzione per passo di integrazione, di
contro come tutti i metodi Multi-Step espliciti è instabile, gli algoritmi Multi-Step non sono
autosufficienti, occorre cioè disporre di altri algoritmi per avviare l’integrazione e calcolare i punti
coinvolti nella formula, le formule sono adatte ad un passo costante ed ogni qualvolta si modifica il
passo di integrazione occorre re-inizializzare l’integrazione per poter disporre nuovamente dei
punti necessari alla formula stessa.
13