Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una...

4

Click here to load reader

Transcript of Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una...

Page 1: Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una funzione di Matlab che implementi il metodo predictor-corrector per l’approssimazione

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

Page 2: Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una funzione di Matlab che implementi il metodo predictor-corrector per l’approssimazione

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

Page 3: Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una funzione di Matlab che implementi il metodo predictor-corrector per l’approssimazione

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

Page 4: Esercizio 1 - science.unitn.italonso/didattica/AN17_18/Esercizi2.pdf · Esercizio 1 Scrivere una funzione di Matlab che implementi il metodo predictor-corrector per l’approssimazione

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