|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
[Matlab]for e while
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
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
che omerta
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
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
__________________
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
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. 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
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:37.



















