Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una...
Click here to load reader
Transcript of Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una...
Esercizio 1
Scrivere una funzione di Matlab che implementi il metodo predictor-correctorper l’approssimazione di un problema di Cauchy della forma
y′(t) = f(t, y(t)) t ∈ (t0, t0 + T )
y(t0) = y0
che usa il metodo di Eulero esplicito come metodo predictor e il metododi Adams -Moulton a dos pasos come metodo corrector. Per inizializare laprocedura usare il metodo di Eulero esplicito.
Per i ≥ 1
u∗i+1 = ui + hf(ti, ui)
ui+1 = ui + h12 [5f(ti+1, u
∗i+1) + 8f(ti, ui)− f(ti−1, ui−1)]
dove h = T/N , ti = t0 + ih, u0 = y0. u1 si calcola usando metodo di Euleroesplicito.
1
Esercizio 2
Si consideri il problema di Cauchy{y′(t) = (−3t2 + 2t− 1)y(t) t ∈ (0, 1)y(0) = 1 .
Scrivere uno SCRIPT di Matlab che permetta di scegliere il numero N disottointervalli e
i) calcoli la soluzione approssimata di questo problema di Cauchy usandoil metodo di Crank-Nicolson con N sottointervalli;
ii) disegni il grafico della soluzione esatta y(t) = exp(−t3 + t2− t) e dellasoluzione approssimata;
iii) calcoli l’errore.
2
Esercizio 3
Scrivere una funzione di Matlab che implementi il seguente metodo di Runge-Kutta per approssimare la soluzione di un problema di Cauchy.
K1 = f(ti, ui)
K2 = f(ti + h2 , ui + h
2K1)K3 = f(ti + h, ui − hK1 + 2hK2)
ui+1 = ui + h6 (K1 + 4K2 + K3)
3
Esercizio 4
Scrivere una funzione di Matlab che implementi il metodo di Adams-Bashfortha due passi per l’ approssimazione della soluzione di un problema di Cauchydella forma
y′(t) = f(t, y(t)) t ∈ (t0, t0 + T )
y(t0) = y0
Metodo di Adams-Bashforth a due passi:
u0 = y0u1 calcolato con un metodo ad un passoPer n ≥ 1
un+1 = un + h2 [3f(tn, un)− f(tn−1, un−1)].
4