sto usando un metodo iterativo di risoluzione sistemi lineare( Jacobi in particolare) e volevo ottimizzare un pochetto la situazione che ho visto in laboratorio.
codice:
% Metodo Jacobi
function [x,iter]=jacobi(a,b,x0,nmax,tol) % tol e' la tolleranza per il
% test d'arresto
% nmax e' il numero massimo di
% iterazioni consentite
% iter e' il contatore delle
% iterazioni
M=diag(diag(a));
N=M-a;
ro=max(abs(eig(inv(M)*N)));
if ro>=1
error(['raggio spettrale della matrice di iterazione e''' num2str(ro)])
end
% controllo sulla convergenza del metodo
x=x0;
iter=0;
while norm(b-a*x)/norm(b)>tol && iter<nmax
x=M\(N*x+b);
iter=iter+1;
end