next up previous contents
Next: 3.3.3 if-else-end struktura Up: 3.3 Petlje i uvjetne Previous: 3.3.1 for petlje

3.3.2 while petlja

Kod while petlje naredbe između while i end izvršavaju se sve dok su svi elementi izraz-a istiniti:
 >> while izraz
       naredbe...
    end
Razmotrimo sljedeći primjer
 >> num=0;EPS=1;
 >> while (1+EPS)>1
       EPS=EPS/2;
       num=num+1;
    end
 >> num
 num =
     53
 >> EPS=2*EPS
 EPS =
   2.2204e-016
 >> eps
 eps =
   2.2204e-016
Ovaj primjer prikazuje jedan od načina određivanja vrijednosti najmanjeg broja (EPS) koji može biti dodan 1 tako da je rezultat tog zbroja $1+\textrm{EPS} > 1$ koristeći konačnu preciznost. Našu smo varijablu EPS usporedili s specijalnom funkcijom MATLAB-a - eps. Što se zapravo događa u ovoj petlji. Vrijednost EPS se stalno smanjuje od početne vrijednosti (EPS=1) pri svakom prolazu kroz petlju. Budući da MATLAB koristi 16 znamenaka pri prezentiranju brojeva za očekivati je da EPS (odnosno eps) bude oko $10^{-16}$. Tako je uvjet $1+\textrm{EPS} > 1$ neistinit (false, jednak nuli) i petlja se prekida. Na kraju EPS množimo sa 2 jer se u zadnjem prolazu kroz petlju stvarna vrijednost EPS podijelila sa 2.



Milan Vrdoljak, 2007-10-15