Approssimazione della soluzione di un problema di Cauchy Data una funzione f : [tI , tF ] × R → R e un numero reale yI ∈ R si cerca la funzione y : [tI , tF ] → R tale che y 0 (t) = f (t, y (t)) tI ≤ t ≤ tF y (tI ) = yI . I metodi numerici per la approssimazione di y I Non forniscono una funzione definita in tutti i punti dell’intervallo [tI , tF ]. I Forniscono un valore approssimato de y in diversi punti dell’intervalo. Questi punti si dicono nodi. I La soluzione approssimata negli altri punti di [tI , tF ] si ottiene interpolando. I nodi si possono prendere distribuiti uniformemente in [tI , tF ] scegliendo un numero naturale N, definendo h = (tF − tI )/N e considerando i nodi tn = tI + n h 0≤n≤N. Metodo di Eulero y 0 (t) = f (t, y (t)) tI ≤ t ≤ tF y (tI ) = yI . Sia N ∈ N e h = tF −tI N . Chiamiamo tn = tI + n h per 0 ≤ n ≤ N. u0 = y I per n = 0, . . . , N − 1 un+1 = un + hf (tn , un ) . un ≈ y (tn ) Esercizio Escrivere una funzione di Matlab che implementi il metodo di Eulero per l’approssimazione della soluzione di un problema di Cauchy. Metodi basati su Taylor Dato il problema di Cauchy y 0 = −y + t + 1 t ∈ [0, 1] y (0) = 1 . (che ha soluzione y (t) = t + e −t ) I approssimare la soluzione usando il metodo di Eulero con passo h = 0.1 e passo h = 0.05; I confrontare l’errore con passo h = 0.1 e con passo h = 0.05; I ripetere usando il metodo di Taylor di ordine 2 e di ordine 4. Il metodo di Eulero per sistemi di equazioni Usando il metodo di Eulero approssimare la soluzione di 0 y1 = −4y1 − 2y2 + cos t + 4 sin t y 0 = 3y1 + y2 − 3 sin t 2 y1 (0) = 0 y2 (0) = −1 . Soluzione esatta: ( t ∈ [0, 2] y1 (t) = 2e −t − 2e −2t + sin t . y2 (t) = −3e −t + 2e −2t y 00 − 2y 0 + 2y = e 2t sin t y (0) = −0.4 t ∈ [0, 1] y 0 (0) = −0.6 Soluzione esatta: y (t) = 0.2e 2t (sin t − 2 cos t). Metodi di Runge-Kutta I Metodo di Heun (ordine 2) I u0 = y I per n = 0, . . . , N − 1 k1 = f (tn , un ) k2 = f (tn + h, un + hk1 ) h un+1 = un + (k1 + k2 ) 2 Metodo di Runge-Kutta di ordine 4 (RK4) u0 = yI per n = 0, . . . , N − 1 k1 = f (tn , un ) k2 = f (tn + h2 , un + h2 k1 ) k3 = f (tn + h2 , un + h2 k2 ) k4 = f (tn + h, un + hk3 ) h un+1 = un + (k1 + 2k2 + 2k3 + k4 ) 6 Esercizio I Scrivere una funzione di Matlab che implementi il metodo di Heun per lpprossimazione della soluzione di un problem adi Cauchy. I Scrivere una funzione di Matlab che implementi il metodo RK4. I Verificare numericamente l’ordine di convergenza di questi due metodi.