ODE === Y' = F(X,Y) <-- Equazione differenziale Y(X0) = Y0 <-- Condizioni iniziali x0 x1 x2 x3 x4 x5 x6 x7 | --- | --- | --- | --- | --- | --- | --- | ... y0 y1 y2 y3 y4 y5 y6 y6 ESEMPIO ======= y' = 2x <-- f(x,y) y(0) = 0 <-- y_0 = 0 e x_0 = 0 la cui soluzione esatta e' y(x) = x^2 METODO DI EULERO ================ Formula di aggiornamento: y_n+1 = y_n + h*f(x_n,y_n) h = 0.1 n = 0 ----- x_n | y_n | f(x_n,y_n) | --------------------------- 0.0 | 0.0 | 0.0 | da cui trovo x_1 = x_0 + h = 0.0+0.1 = 0.1 y_1 = y_0 + h*f(x_0,y_0) = 0.0+0.1*0.0 = 0.0 n=1 ----- x_n | y_n | f(x_n,y_n) | --------------------------- 0.1 | 0.0 | 0.2 | da cui trovo x_2 = x_1 + h = 0.1+0.1 = 0.2 y_2 = y_1 + h*f(x_1,y_1) = 0.0+0.1*0.2 = 0.02 ... METODO DI RUNGE-KUTTA DI ORDINE 4 ================================= y_n+1 = y_n + h/6 * (k_1+2k_2+2k_3+k_4) k_1 = f(x_n,y_n) k_2 = f(x_n+h/2, y_n+h*k_1/2) k_3 = f(x_n+h/2, y_n+h*k_2/2) k_4 = f(x_n+h, y_n+h*k_3) Costruiamo una tabella del tipo (al passo n) x_n | y_n | k_1 = f(x_n,y_n) x_n+h/2 | y_n+h*k_1/2 | k_2 = f(x_n+h/2, y_n+h*k_1/2) x_n+h/2 | y_n+h*k_2/2 | k_3 = f(x_n+h/2, y_n+h*k_2/2) x_n+h | y_n+h*k_3 | k_4 = f(x_n, y_n+h*k_4) calcolo il nuovo x e y x_n+1 = x_n+h y_n+1 = y_n + h/6 * (k_1+2k_2+2k_3+k_4)