Sei sulla pagina 1di 5

## 1.

A = diag (ones (5, 1)); b = [1:5].';

A(1,2:end) = A(2,2:end) = 1;

A(5,4:5) = 1

D = diag (diag (A));

BJ = - D \ (A - D)

L = tril (A);

BGS = - L \ (A - L)

## 1.2

BJ^2, BJ^3, BJ^4

BGS^2, BGS^3

## 1.3

# Poiche' BJ^4 e' nulla, il metodo di Jacobi raggiungera'

# la convergenza in 4 iterazioni.

# Poiche' BGS^3 e' nulla, il metodo di Gauss-Seidel raggiungera'

# la convergenza in 3 iterazioni.

## 1.4

x_ex = A \b

x = b;

for ij = 1:4

x = BJ * x + D \ b;

end
norm (x - x_ex)

x = b;

for ij = 1:3

x = BGS * x + L \ b

end

norm (x - x_ex)

## 2.1

x0 = 0; x1 = 2; x2 = 4;

y0 = 1; y1 = 3;

cpsil = polyfit ([x0, y0, x1], [0, 0, 1], 2)

## psi_1 = x^2 / 2 - x/2 per x<=x1

cpsir = [cpsil(1), -(cpsil(2)+2*cpsil(1)*x2), (cpsil(3)+cpsil(2)*x2+cpsil(1)*x2^2)]

## psi_1 = (1/2) x^2 - (-1/2 + 2/2 x2) x + ( -1/2 x2 + 1/2 x2^2) per x>=x1

polyval (cpsir, [y1, x2])

## 2.2

cphi0 = polyfit ([x0, y0, x1], [0, 1, 0], 2)

cphi1 = polyfit ([x1, y1, x2], [0, 1, 0], 2)

## 2.3

# fH (xi) = Sum_(i=1)^(N-1) f(xj) delta_(ij) = f (xi)

# fH (yi) = Sum_(i=0)^(N-1) f(yj) delta_(ij) = f (yi)

## 2.4
# In ciascun intervallo (x_i, x_i+1) fH(x) e' un polinomio di secondo grado,

# inoltre fH(x) interpola la f nei punti (x_i, y_i, x_i+1), quindi si puo'

# usare la stima valida per il polinomio interpolante di Lagrange di secondo grado:

# | f(x) - fH(x) | < |p_i(x)| * max (|f^(III)|) / 6

# | p_i (x) | = |(x-x_i)(x-y_i)(x-x_i+1)| <= H^3

## 3.1

# se f e' un polinomio di secondo grado, fH = f,

# quindi il grado di accuratezza della regola proposta e' almeno 2.

# Inoltre, trattandosi di una formula di quadratura di

# Newton-Cotes con un numero N=3 dispari di nodi di quadratura equidistanti,

# ha grado di accuratezza N=3

## 3.2

# La formula di quadratura considerata e' la formula di Simpson composita

# sui sottointervalli (x_i, x_i+1), per la quale e' noto il risultato

# |I-IH| <= h^4 |b-a| max (|f^(IV)|) / 180

## 3.2

x0 = 0; x1 = pi/2; x2 = pi; y0 = pi/4; y1 = 3*pi/4;

cpsil = polyfit ([x0, y0, x1], [0, 0, 1], 2)

cpsir = polyfit ([x1, y1, x2], [1, 0, 0], 2)

cphi0 = polyfit ([x0, y0, x1], [0, 1, 0], 2)

cphi1 = polyfit ([x1, y1, x2], [0, 1, 0], 2)


IH = diff (polyval (polyint (cpsil), [x0, x1]) * sin (x1)) + ...

diff (polyval (polyint (cpsir), [x1, x2]) * sin (x1)) + ...

diff (polyval (polyint (cphi0), [x0, x1]) * sin (y0)) + ...

diff (polyval (polyint (cphi1), [x1, x2]) * sin (y1))

I = quad (@sin, 0, pi)

## 4.1

# Si tratta di un metodo esplicito ad un passo,

# in particolare id un metodo di RK a 2 stadi

## 4.2

# Il metodo e' di ordine 2

## 4.3

f = @(t, u) (u - t^2 +2*t + 1);

uex = @(t) (t^2 - 1);

u0 = -1;

hh = [1 1/2 1/4 1/8 1/16];

for ii = 1:numel(hh)

h = hh(ii);

u1 = u0 + h* ((1/3) * f(h, u0) + (2/3) * f(3*h/4, u0+3*h/4 * f(0, u0)))

e1(ii) = abs (uex(h) - u1)

end

## 4.4
diff (log (e1)) ./ diff (log (hh))

Potrebbero piacerti anche