Tesina Calcolo Numerico

13
Tesina Calcolo Numerico Confronto tra metodo di Adams- Bashfort e di Runge-Kutta Studente: Francesco Coppola 09/12/07

description

Confronto tra metodo di Adams-Bashfort e di Runge-Kutta del 4 ordine

Transcript of Tesina Calcolo Numerico

Page 1: Tesina Calcolo Numerico

Tesina Calcolo Numerico

Confronto tra metodo di Adams-Bashfort e di Runge-Kutta

Studente:

Francesco Coppola

09/12/07

Page 2: Tesina Calcolo Numerico

2Francesco Coppola Tesina di Calcolo Numerico

IntroduzioneL’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:

Dove:

2

++= hkyhxfk ii 12 2

1,

2

1

( )hkkkkyy ii 43211 226

1 ++++=+

( )ii yxfk ,1 =

( )hkyhxfk ii 34 , ++=

++= hkyhxfk ii 23 2

1,

2

1

Page 3: Tesina Calcolo Numerico

3Francesco Coppola Tesina di Calcolo Numerico

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:

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

( )iiiiii ffffh

yy 937595524 12334 −+−+= +++++

Page 4: Tesina Calcolo Numerico

4Francesco Coppola Tesina di Calcolo Numerico

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

Page 5: Tesina Calcolo Numerico

5Francesco Coppola Tesina di Calcolo Numerico

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

Page 6: Tesina Calcolo Numerico

6Francesco Coppola Tesina di Calcolo Numerico

maggiori) dove h = (b-a) / N, con N>0 passo, e ‘a’ e ‘b’ gli estremi dell’intervallo di integrazione [a, b].

6

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

Page 7: Tesina Calcolo Numerico

7Francesco Coppola Tesina di Calcolo Numerico

7

X (N=8) Y_RK Y_AB-1 0 0

-0,625 -0,263054145 -0,263054145-0,25 -0,484835176 -0,4848351760,125 -0,548344889 -0,548344889

0,5 -0,513871302 -0,5751987750,875 -0,432799485 -0,334633895

1,25 -0,32571859 -0,6949241011,625 -0,198082467 1,119263552

2 -0,044055725 1,699458102

Page 8: Tesina Calcolo Numerico

8Francesco Coppola Tesina di Calcolo Numerico

8

X (N=20) Y_RK Y_AB-1 0 0

-0,85 -0,094219925 -0,094219925-0,7 -0,20627447 -0,20627447

-0,55 -0,319027909 -0,319027909-0,4 -0,415717648 -0,412917187

-0,25 -0,486553351 -0,484185369-0,1 -0,52999957 -0,528127580,05 -0,54973975 -0,550270775

0,2 -0,551102361 -0,5511209030,35 -0,538960865 -0,541086764

0,5 -0,517040856 -0,5159425980,65 -0,487950466 -0,491042463

0,8 -0,453433426 -0,4494667720,95 -0,414619418 -0,420628404

1,1 -0,372206434 -0,3635466921,25 -0,326573279 -0,338224031

1,4 -0,277835956 -0,2624179281,55 -0,22585906 -0,244230224

1,7 -0,17022454 -0,149138431,85 -0,110147601 -0,130781935

2 -0,044309136 -0,02541527

Page 9: Tesina Calcolo Numerico

9Francesco Coppola Tesina di Calcolo Numerico

9

Page 10: Tesina Calcolo Numerico

10Francesco Coppola Tesina di Calcolo Numerico

X (N=50)X (N=50)

10

X (N=50) Y_RK Y_AB

-1 0 0

-0,94 -0,034676743 -0,034676743

-0,88 -0,073492341 -0,073492341

-0,82 -0,115700245 -0,115700245

-0,76 -0,160339126 -0,160325878

-0,7 -0,206287395 -0,206251294

-0,64 -0,25234246 -0,252278271

-0,58 -0,297313076 -0,297221364

-0,52 -0,340109608 -0,339997112

-0,46 -0,379817603 -0,379695441

-0,4 -0,415744618 -0,415625377

-0,34 -0,447436878 -0,447331617

-0,28 -0,474668721 -0,474584889

-0,22 -0,497412138 -0,497352825

-0,16 -0,515795264 -0,515759661

-0,1 -0,530057966 -0,530042543

-0,04 -0,540510507 -0,540510382

0,02 -0,547498839 -0,547508938

0,08 -0,551377857 -0,551393702

0,14 -0,552492483 -0,552510567

0,2 -0,551165502 -0,551183371

0,26 -0,547690763 -0,547706905

0,32 -0,542330322 -0,542343967

0,38 -0,535314278 -0,535325181

0,44 -0,526842299 -0,526850558

0,5 -0,517086106 -0,517092008

0,56 -0,506192374 -0,506196293

0,62 -0,494285712 -0,494288035

0,68 -0,481471501 -0,481472595

0,74 -0,467838482 -0,467838665

0,8 -0,453461023 -0,453460564

0,86 -0,438401065 -0,438400177

0,92 -0,422709741 -0,422708594

0,98 -0,406428714 -0,406427434

1,04 -0,389591226 -0,38958991

1,1 -0,37222293 -0,372221647

1,16 -0,354342492 -0,354341291

1,22 -0,335962006 -0,335960924

1,28 -0,31708723 -0,317086295

1,34 -0,297717662 -0,297716895

1,4 -0,277846441 -0,277845863

Page 11: Tesina Calcolo Numerico

11Francesco Coppola Tesina di Calcolo Numerico

Omettiamo per semplicità di riportare le tabelle dei casi N=100 e N=1000.

11

Page 12: Tesina Calcolo Numerico

12Francesco Coppola Tesina di Calcolo Numerico

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

Page 13: Tesina Calcolo Numerico

13Francesco Coppola Tesina di Calcolo Numerico

(- 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