Iterace

Z Wikipedie, otevřené encyklopedie

Slovo iterace může být použito ve stejném významu jako opakování (lat. iteretur – opakovat).

Základním principem iterace je opakování určitého procesu v měnícím se kontextu. Uplatňuje se především v dynamických jevech.

Základní typy iterací:

  • přenesení postupu do jiného kontextu (například jazyk popisuje jevy okolního světa, metajazyk popisuje jazyk)
  • řešení problému postupným opakováním s dalším a dalším přibližováním se žádoucímu výsledku; každé další opakování mění kontext, ve kterém probíhá další krok
  • prosté opakování (sériová výroba)

Matematika

Iterace v matematice znamená proces opakovaného použití funkce s cílem přiblížení se, dosáhnutí cíle či výsledku. Každé opakování procesu je taktéž nazváno iterací a výsledky z jedné iterace se použijí jako vstup pro další iteraci.

V matematice může iterace odkazovat na proces iterace funkce, t.j. opakované užití funkce pomoci výstupu z jedné iterace jako vstup do další. Iterace zdánlivě jednoduchých funkcí může vytvářet složité problémy – např. Collatzova metoda.

y = f(x)

v dalším kroku se použije výsledek

z = f(y)

Tato metoda se používá při řešení celé řady matematických problémů.

Příklad: Transcendentní rovnice

Jednoduchým příkladem k demonstraci iterace je numerické řešení transcendentní rovnice x = cos(x), jejíž analytické řešení pomocí postupných úprav a známých vztahů je nemožné (nebo aspoň velmi obtížné). Pro přibližné řešení stačí vhodně zvolit počáteční hodnotu x (např. ), iterovat () a sledovat, jak se mění hodnota x.

Pseudokód:

var x := 1
print x
for i from 1 to 50 {
  x := cos(x)
  print x
}

Je vidět, že zhruba po 25 krocích se již hodnota x vypsaná na 4 desetinná místa nemění:

1,0000 → 0,5403   0,8576   0,6543   0,7935   0,7014   0,7640
0,7221   0,7504   0,7314   0,7442   0,7356   0,7414   0,7375
0,7401   0,7384   0,7396   0,7388   0,7393   0,7389   0,7392
0,7390   0,7391   0,7391   0,7391   0,7391 → …

Počítače

Iterace v programování znamená opakované volání funkce v počítačovém programu. Zvláštní formou iterace je rekurze.

Ukázka iterace (v pseudokódu):

 var i, a := 0        // inicializace proměnných před iterací
 for i from 1 to 3 {  // smyčka se opakuje třikrát, přičemž i nabývá hodnot z pole {1,2,3}
     a := a + i       // zvýšit hodnotu o hodnotu i
 }
 print a              // vytisknout číslo 6

V tomto úseku programu se hodnota proměnné i postupně mění a nabývá hodnot 1, 2 a 3. Taková postupná změna je charakteristickým znakem iterace.

Regulární výrazy

V regulárních výrazech se mohou vyskytovat iterace dvojího typu, syntakticky zapsané pomocí unárních operátorů:

  • X* pro i nulový počet iterací, tedy žádný nagenerovaný / přijatý znak, se syntaktickým záznamem pomocí "hvězdičky", úplně formálně v pozici mocniny;
  • X+ pro nenulový počet iterací, tedy pro alespoň jeden nagenerovaný / přijatý znak, zapsaný pomocí "plus", buď prostě za iterovaným znakem, anebo formálněji opět na pozici pravého horního indexu.

Související články