Fixato bugs su gauss, aggiunto check per numeri molto vicini a 0 su gauss, aggiunto esercizi

This commit is contained in:
2014-10-22 15:18:59 +02:00
parent 6b30e9e8cb
commit a7dc38ea38
7 changed files with 194 additions and 16 deletions

View File

@@ -0,0 +1,44 @@
U=[1.2,2.1,4.5;1.1,1.4,2.7;0.11,0.7,1.8]
b=[7.8;5.2;2.61]
exact=[1,1,1];
%verifica singoalarita
if det(U) ~= 0
disp('non singolare')
else
disp('singolare')
end
% 3 equazioni, 3 incognite
if det(U) ~= 0
disp('ammette singola soluzione')
else
disp('nessuna o infinite soluzioni')
end
%verifica condizionamento
condition= cond(U)
%applico gauss naif
[x1,y1]=convert_matrix_to_triangular_matrix_gauss_naif(U,b)
s1=[linear_system_resolver_triangular_matrix(x1,y1)]
%applico gauss parziale
[x2,y2]=convert_matrix_to_triangular_matrix_gauss_pivoting(U,b)
s2=[linear_system_resolver_triangular_matrix(x2,y2)]
% verifico errore tra soluzione calcolata e esatta
error_s1= norm(s1-exact,inf)/norm(exact,inf)
error_s2= norm(s2-exact,inf)/norm(exact,inf)

View File

@@ -0,0 +1,38 @@
U=[2,5,4;0,0,10;8,2,20]
b=[11;10;30]
exact=[1,1,1];
%verifica singoalarita
if det(U) ~= 0
disp('non singolare')
else
disp('singolare')
end
if det(U) ~= 0
disp('ammette singola soluzione')
else
disp('nessuna o infinite soluzioni')
end
%verifica condizionamento
cond(U)
%applico gauss naif
convert_matrix_to_triangular_matrix_gauss_naif(U,b)
%applico gauss parziale
[x,y]=convert_matrix_to_triangular_matrix_gauss_pivoting(U,b)
x1=[linear_system_resolver_triangular_matrix(x,y)]
% verifico errore tra x calcolata e esatta
norm(x1-exact,inf)/norm(exact,inf)

View File

@@ -0,0 +1,37 @@
U=[3,0.1,2;0.3,4,-1;3.3,4.1,1]
b=[5.1;3.3;8.4]
%verifica singoalarita
if det(U) ~= 0
disp('non singolare')
else
disp('singolare')
end
if det(U) ~= 0
disp('ammette singola soluzione')
else
disp('nessuna o infinite soluzioni')
end
%verifica condizionamento
condition= cond(U)
%applico gauss naif
%[x1,y1]=convert_matrix_to_triangular_matrix_gauss_naif(U,b)
%s1=[linear_system_resolver_triangular_matrix(x1,y1)]
%applico gauss parziale
[x2,y2]=convert_matrix_to_triangular_matrix_gauss_pivoting(U,b)
s2=[linear_system_resolver_triangular_matrix(x2,y2)]

View File

@@ -0,0 +1,17 @@
U=[3,0.1,0.2;0.3,4,-0.1;3.3,4.1,0.1]
b=[3.3;4.3;7.5]
%verifica singolarita
if det(U) ~= 0
disp('non singolare')
else
disp('singolare')
end

View File

@@ -0,0 +1,38 @@
U=[1e-15,5,4;3,2,10;8,2,20]
b=[11;10;30]
exact=[1,1,1];
%verifica singoalarita
if det(U) ~= 0
disp('non singolare')
else
disp('singolare')
end
if det(U) ~= 0
disp('ammette singola soluzione')
else
disp('nessuna o infinite soluzioni')
end
%verifica condizionamento
cond(U)
%applico gauss naif
convert_matrix_to_triangular_matrix_gauss_naif(U,b)
%applico gauss parziale
[x,y]=convert_matrix_to_triangular_matrix_gauss_pivoting(U,b)
x1=[linear_system_resolver_triangular_matrix(x,y)]
% verifico errore tra x calcolata e esatta
norm(x1-exact,inf)/norm(exact,inf)