PDA

View Full Version : [Matlab]for e while


The_ouroboros
03-11-2008, 18:26
A livello di complessita macchina...qualìè la diferenza tra un for con un if di controllo al suo interno ad ogni ciclo ed un while con la stessa condizione??

Grazie

The_ouroboros
04-11-2008, 17:15
che omerta :eek: :eek:

^TiGeRShArK^
04-11-2008, 18:03
dipende da come viene tradotto il codice matlab in codice macchina...
se non sbaglio il codice matlab è interpretato quindi con il while dovresti risparmiare qualcosina, mentre in un linguaggio con un compilatore decente oggi come oggi non credo ci siamo differenze se l'ottimizzatore fa il suo porco lavoro :oink:

The_ouroboros
04-11-2008, 18:06
il codice da cui è sorta la domanda è questo.
Sto usando un metodo iterativo di risoluzione sistemi lineare( Jacobi in particolare) e volevo ottimizzare un pochetto la situazione che ho visto in laboratorio.

% 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