ESERCIZIO 1 =========== Tab. differenze divise x | y | DD1 | DD2 | DD3 | DD4 | DD5 ---------------------------------------------- -2 | 31.08 | -28.43 | 12.77 | -3.8 | 1.0 | 0.0 -1 | 2.65 | -2.89 | 1.37 | 0.2 | 1.0 | 0 | -0.24 | -0.15 | 1.97 | 4.2 | 1 | -0.39 | 3.79 | 14.57 | 2 | 3.4 | 32.93 | 3 | 36.33 | Polinomio di interpolazione P(x) = 31.08 + (-28.43)*(x+2) + 12.77*(x+2)*(x+1) + ... -3.8*(x+2)*(x+1)*x + 1.0*(x+2)*(x+1)*x*(x-1) = [1 -1.8 0.37 0.28 -0.24] Zeri: Applico Sturm 1.5 -0.5 0.4 + 0.4i 0.4 - 0.4i ESERCIZIO 2 =========== Matrice di iterazione di Jacobi: Mj = D^(-1)*(E+F) [ 0 -1 0 0] = [10 0 2 0] [ 0 0 0 1] [-3.3333 -0.3333 0.6667 0] coeff_Jacobi = [1 0 9.3333 0.6667 -13.3333] Il metodo di Jacobi non converge. Matrice di iterazione di Gauss-Seidel: Mgs = (D-E)^(-1)*(F) [0 -1 0 0 ] = [0 -10 2 0 ] [0 0 0 1 ] [0 6.667 -0.6667 0.6667] coeff_Gauss_Seidel = [1 9.3333 -6 -6.667 0] Il metodo di Gauss-Seidel non converge. ESERCIZIO 3 =========== h = 0.1 x0 = 0.0 y0 = 2.0 y' = f(x,y) f(x,y) = y+x Si richiedeva di fare 10 passi dello schema di RK4. Esempio di un passo: 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) Quindi x_n = x0 = 0.0 y_n = y0 = 2.0 k_1 = f(x_n,y_n) = 2.0 k_2 = f(x_n+h/2, y_n+h*k_1/2) = 2.1 k_3 = f(x_n+h/2, y_n+h*k_2/2) = ... k_4 = f(x_n+h, y_n+h*k_3) = ... x_n+1 = x_n + h y_n+1 = y_n + h/6 * (k_1+2k_2+2k_3+k_4) x | y | yexact | ea = |y-yexact| er = |ea|/|yv| | ------------------------------------------------------------- 0.0 | 2.0000.. | 2.0000.. | 0.0000 | 0.0000/2.0 0.1 | 2.2155.. | 2.2155.. | 0.0000 | ... 0.2 | 2.4642.. | 2.4642.. | 1.0e-6 | ...