Su uno script Esercizio1 scrivere:
1
% Esercizio12
clear all3
close all4
clc5
% fissare epsilon e definire la matrice A6
epsilon = 10^(−
15);7
A = [7 7 0; 1 1−
epsilon 4;−
1 3−
9];8
% definire il vettore b9
xVera = [2;5;7]; b = A*xVera;10
% calcolare fattorizzazione LU e risolvere il sistema11
[L, U] = LUgauss(A);12
y = L\b; xLUgauss = U\y;13
% calcolare fattorizzazione LU con pivoting e risolvere il sistema14
[L, U, P] = lu(A);15
y = L\(P*b); xLUpermut = U\y;16
% calcolare gli errori e stamparli a video17
format short e18
ELUgauss = norm(xVera−
xLUgauss)/norm(xVera)19
ELUpermut = norm(xVera−
xLUpermut)/norm(xVera)20
% Essendo il sistema numericamentte singolare, e'necessario permutare
21
% la matrice.22
x0 = [1 4 8]';23
tol = 1e−
06;24
kmax = 100;25
xJ=Jacobi(A,b,x0,tol,kmax);26
% Per capire se il metodo converge e' sufficiente calcolare27
D=diag(diag(A)); DI=diag(1./diag(A));28
J=−
DI*(A−
D);29
disp(['Spectral radius of the iteration matrix = ',...30
num2str(max(abs(eig(J))))]);31
% Converge essendo il raggio spettrale minore di 1.1