Iteracija

**Iteracija** je čin procesa ponavljanja sa ciljem da se približimo željenom cilju, meti ili rezultatu. Svako ponavljanje postupka se takođe naziva „iteracija“, i rezultati jedne iteracije se koristi kao polazna tačka za sledeću iteraciju. Petougao sa desne strane je takođe dobar primer kako se iteracija odnosi na rekurziju. Iako se koristi iteracija, na primer, da raščlani povezane liste, rekurzija je potrebna kada prelazimo na binarna stabala. Petougao pokazuje oba.

## Matematika
Iteracija u matematici se može odnositi na proces iteracije funkcije, odnosno primenom funkcije u više navrata, koristeći izlaz iz jedne iteracije kao ulaz u drugu. Iteracija naizgled jednostavnih funkcija može da proizvede kompleksna ponašanja i teške probleme - na primer, pogledajte Kolacovu pretpostavku i žonglerove sekvence.

Druga upotreba iteracije u matematici je u iterativnim metodama koje se koriste za proizvodnju približnih numeričkih rešenja za određene matematičke probleme. Njutnov metod je primer iterativnog metoda. Ručno izračunavanje kvadratnog korena nekog broja se često koristi i poznat je primer.

## Računarstvo

**Iteracija** u računarstvu je ponavljanje bloka naredbi unutar računarskog programa. Može se koristiti i kao opšti pojam, kao sinonim za ponavljanje, i da opiše specifičan oblik ponavljanja sa promenljivim stanjem. Zbunjujuće je to što se može odnositi na bilo koje ponavljanje koje počinje korišćenjem eksplicitne strukture ponavljanja, bez obzira na promenljivosti.

Kada se koristi u prvom smislu, rekurzija je primer *iteracije*, ali obično se koristi *rekurzivni zapis*, koji nije predmet *iteracije*.

Međutim, kada se koristi u drugom (više ograničenom) smislu, iteracija opisuje stil programiranja koji se koristi u imperativnim programskim jezicima. Ovo je u suprotnosti sa rekurzijom, koja ima više deklarativni pristup.

Korišćena u trećem smislu, ponavljanje koristi *while* ili *for petlje* isto kao što one koriste map ili fold funkcije i ovo se može smatrati iteracijom.

Evo jednog primera iteracije koji se oslanja na razoran zadatak, u imperativnom pseudokodu:

```
a = 0
for i from 1 to 3        // prolazi kroz petlju 3 puta
{
  a = a + i              // povećava trenutnu vrednost a za i
}
print a                  // štampa broj 6 (0 + 1; 1 + 2; 3 + 3)
```


U ovom delu programa, vrednost promenljive i se menja kroz vreme uzimajući vrednosti 1,2 i 3. Ova promena vrednosti—ili promenljivo stanje—je karakteristika iteracije.

Iteracija se može približavati pomoću rekurzivne tehnike u funkcionalnim programskim jezicima. Sledeći primer je u Scheme programskom jeziku. Imajte na umu da je ono što sledi rekurzivna iteracija (poseban slučaj iteracije)zbog definicije „kako ponoviti“, i njena funkcija, poziva sama sebe kako bi rešila problem instance. Konkretno koristi rep rekurziju pa tako ne koristi velike količine stek prostora.

```scheme
(let iterate ((i 1) (a 0))
  (if (<= i 3)
    (iterate (+ i 1) (+ a i))
    (display a)))
```


Iterator je objekat koji pruža iteraciju kao generički servis, omogućavajući da se iteracija uradi na isti način za niz različitih struktura podataka. Suprotno tome, iteratee je apstrakcija koja prihvata ili odbija podatke tokom procesa iteracije (kontrolisan spolja od strane popisivača - pa za razliku od koda koji koristi iteratore, iteratee kod nije „zadužen“ za proces iteracije).

Iteracija se vrši pomoću radnog lista, ili pomoću solver ili goal seek funkcija koje su dostupne u Ekselu. Mnoge implicitne jednačine kao što je Colebrook jednačina mogu se rešiti u udobnosti radnog lista projektovanjem odgovarajućih algoritama izračunavanja.

Mnogi od inženjerskih problema, kao što su rešavanje Colebrook jednačine dostiže 8 cifarnu preciznost u malih 12 iteracija i maksimalno 100 iteracija je dovoljno da se postigne 15 cifarna preciznost.

## Projektni menadžment

Iteracije u kontekstu projekta mogu da se odnose na tehniku izrade i dostavljanja postepenih komponenata poslovne funkcionalnosti, razvoj proizvoda ili proces dizajna. Ovo se najčešće povezuje sa žustrim razvojem softvera, ali bi potencijalno mogao biti svaki materijal. Jedna iteracija rezultira u jednoj ili više bitnoj veličini, ali kompletira pakete rada na projektu koji mogu da obavljaju neke opipljive poslovne funkcije. Više iteracija se ponavlja da bi se stvorio potpuno integrisani proizvod. To je često u suprotnosti sa pristupom modela vodopada.

## Obrazovanje

U nekim školama pedagogije, iteracija se koristi za opisivanje procesa nastave ili vođenje učenika kako bi ponovili eksperimente, procene, ili projekte, sve dok se ne dođe do preciznijih rezultata, ili dok učenik nije savladao tehničku veštinu. Ova ideja je došla iz stare izreke, „Vežbom do savršenstva“. Posebno, „iteracija“ se definiše kao „proces učenja i razvoja koji uključuje ciklična pitanja, davajući ljudima višestruke mogućnosti, npr: mogu da ponove ideje i da se kritički osvrnu na njihove implikacije.“

## Povezano
* Rekurzija
* Fraktal
* Iteracija funkcije

## Reference