Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
|
|
Attempted to access; index out of bounds because size.
Posted:
Dec 6, 2012 5:20 AM
|
|
My code is:
clear N=2; %dimensione di lavoro x0=input ('inserisci il punto iniziale:'); %valore iniziale x=x0; xit=x'; k=0; delta0=1.0; %passo theta=0.5; %correzione del passo epsilon=1e-3; %precisione che vogliamo maxnv=100; %massimo numero di vettori che vogliamo generare deltak=delta0; vector_count=0; %azzero il contatore dei vettori %adesso cominciamo il ciclo del random walk %questo ciclo viene ripetuto finchè il deltak è maggiore di epsilon while (deltak>epsilon) r=[1;1]; while (norm(r)>1.0) r=random('unif',-1,1,N,1) %compreso nell'intervallo -1 e 1, di dimensioni Nx1 end %una volta generato il vettore lo si deve normalizzare u=r/norm(r) x1=x+deltak*u %adesso dobbiamo imporre che il vettore è accettabile se la funzione %calcolata in quel punto è minore di quella al punto precedente if (f(x1)<f(x)) x=x1 %il valore che ho trovato diventa il mio x0 xit=[xit;x']; vector_count=0; %riazzero il contatore dei vettori else vector_count=vector_count+1 end if (vector_count>maxnv) vector_count=0 deltak=deltak*theta end k=k+1 end minimo=x k
vel=[]; for j=1:k veloc=norm(xit(j+1,:)'-x)/norm(xit(j,:)'-x); vel=[vel;j veloc]; end vel plot(vel(:,1), vel(:,2), '-*')
when it runs i have this following message error: Attempted to access xit(36,:); index out of bounds because size(xit)=[35,2]. Error in randomwalkmodificatodame (line 45) veloc=norm(xit(j+1,:)'-x)/norm(xit(j,:)'-x);
Do someone know why?
|
|
|
|