Corso di Laurea Triennale in Matematica
Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre
Esercitazione 8
Creare una cartella <cognome> dove verranno salvati i file creati nella sessione di lavoro. Appena entrati in MATLAB posizionarsi in <cognome>.
Risolvere in ambiente MATLAB i seguenti esercizi.
1. Scrivere una function MATLAB che
a) implementi i metodi di Eulero, Heun, (facoltativo RK3):
Sintassi: [t, y]=metodo(fun,tspan,y0,h) Parametri di INPUT:
fun: stringa con il nome del file in cui è definita l'equazione differenziale tspan: [t0,tf], istante di tempo iniziale e finale
y0: condizione iniziale h: passo temporale Parametri di OUTPUT:
t: vettore contenente un insieme di punti interni all'intervallo [t0,tf]
y: vettore contenente la soluzione nei punti del vettore t
b) usando la coppia di metodi Eulero-Heun, fornisca la soluzione in modo che l'errore locale ad ogni passo sia inferiore a una tolleranza fissata (input).
2. Eseguire il file showtrunc.m che illustra il comportamento dell’errore locale di troncamento nel metodo di EULERO applicato alla risoluzione del problema a valori iniziali:
1 . 0 ,
1 ) 0 ( ), ( 5 ) (
' t =− y t y = h=
y (2.1)
Considerare poi il seguente problema.
Si supponga di aver depositato 100€ su un conto corrente con interesse annuo pari al 6%. Se con y(t) si denota la somma di denaro sul conto corrente al passare di t anni, supponendo che l’interesse sia calcolato in modo continuo, y(t) risolverà il problema a valori iniziali
06 . 0 ,
100 ) 0 ( ), ( ) (
' t =ry t y = r=
y (2.2)
Pertanto, calcolare l’interesse ad un intervallo discreto di tempo h (espresso in frazioni dell’anno), significherà trovare una soluzione approssimata del problema con un metodo alle differenze finite. Modificare il file showtrunc.m per illustrare il comportamento dell’errore locale di troncamento nel metodo di EULERO applicato alla risoluzione del problema (2.2) con h=1/12.
3. Utilizzando i metodi di Eulero, Heun, (Rk3) con passi h= 1,0.5,0.1,0.05, calcolare la soluzione numerica del seguente problema di Cauchy:
y’ = y2 cos(2x), y(0)=1, x∈[0,6].
Commentare i risultati confrontando con la soluzione analitica y(x)=1/(1-cos(x)sin(x)).
Si determini poi una soluzione approssimata utilizzando la coppia di metodi Eulero- Heun con scelta automatica del passo, fissando tol=10^-3. Ripetere l’esercizio con tol=10^-5. Cosa si osserva e perchè? Quanti passi si sono eseguiti nei due casi?
4. Utilizzando il metodo di Eulero esplicito con passi h = 0.1, 0.01,0.001, risolvere l’equazione differenziale del primo ordine a valori iniziali
) 1 0
( 1
) 0 ( 1, cos 1
' 22 2 = ≤ <
= −
+ − y x
x y x x
y x ,
la cui soluzione esatta è
1 1 ) sin
( 2
−
= − x x x
y .
Utilizzare poi la coppia di metodi Eulero-Heun con scelta automatica del passo fissando tol=10^-4.