Metodi numerici
per equazioni differenziali ordinarie - laboratorio
Docente:
Beatrice Meini
Lezione 5: Metodi a piu' passi lineari
Attenzione: La versione 3.2 di Octave ha un package per risovere ODE; per utilizzare questa versione occorre dare il comando octave3.2.
Le functions di Matlab che implementano metodi LMM sono ode113 (metodo esplicito, basato sulle formule di Adams-Bashforth-Moulton) e ode15s (metodo implicito, basato sui metodi BDF), mentre quella di Octave e' odebdi (metodo implicito, basato sui metodi BDF).
La
function [y] = f5(t,x)
e' la funzione che definisce una equazione differenziale
tale che l'IVP con condizione iniziale x(1)=1 ha soluzione x(t)=1/t.
La function [t, x]= adams(fname, tspan, x0,
h, k) risolve l'IVP definito dalla function fname, sull'intervallo
tspan, con condizione iniziale x0, utilizzando un metodo esplicito di
Adams-Bashforth a k passi, con passo di integrazione h. Il metodo a k
passi ha ordine di convergenza k. Il numero di passi k varia da 1 a 6.
La
function [t,sol,x1,x2,x3,x4,err]=vari_lmm(l,h) approssima la soluzione dell'IVP descritto qui, utilizzando i quattro metodi LMM a 2 passi descritti nello stesso documento. In entrata la variabile l contiene il parametro lambda, e h e' il passo di discretizzazione. In uscita, t e' la discretizzazione dell'intervallo, sol e' la soluzione esatta, x1, x2, x3, x4 sono le approssimazioni ottenute con i 4 metodi, err e' il vettore con i 4 massimi errori globali di discretizzazione.
Il metodo (a) e' consistente ma non 0-stabile, il metodo (b) e' consistente, ma "debolmente" 0-stabile (ha radici 1 e -1), il metodo (c) e' consistente di ordine 2 e 0-stabile, il metodo (d) e' un metodo implicito consistente di ordine 2 e 0-stabile.