U matematici, sistem iterirane funkcije ili IFS (od engl.iterated function system) je postupak konstruisanja fraktala, pri čemu su dobijene konstrukcije uvek samoslične.
IFS fraktali, kako se obično zovu, mogu biti bilo koje dimenzije, iako se obično računaju i crtaju u 2D. Fraktal je načinjen od unija nekoliko kopija samog sebe, pri čemu je svaka kopija transformirana funkcijom (otuda i sistem funkcije). Kanonski primer je trougao Serpinskog. Funkcije su obično kontraktivne, što znači da zbližavaju tačke i smanjivaju oblike. Stoga je oblik IFS fraktala načinjen od nekoliko manjih kopija samog sebe koje se moguće preklapiti, svaki od kojih je načinjen od kopija samog sebe, i tako ad infinitum. Ovo je ishodište samoslične fraktalne naravi.
Kolekcija funkcija skupa s kompozicijom oblikuje monoid. Ako postoje samo dve takve funkcije, monoid je diadički monoid. Kompozicija može biti vizualizirana kao beskonačno binarno stablo u kojem se na svakom čvoru može obaviti kompozicija s jednom ili drugom funkcijom (tj., traversirati levom ili desnom granom). U opštem slučaju, ako postoji p funkcija, tada se kompozicija može vizualizovati kao p-adično stablo.
Budući da kompozicija funkcije uzima ovaj oblik, elementi monoida se mogu shvatiti kao izomorfni s p-adičnim brojevima, tj. svaka cifra p-adičnog broja označava funkciju s kojom se komponira.
Najuobičajeniji algoritam za računanje IFS fraktala je igra haosa. Sastoji se od odabira slučajne tačke na ravni, te iterativne primene jedne od slučajno odabranih funkcija iz sistema funkcija te iscrtavanja tačke. Alternativni algoritam je generiranje svih mogućih sledova funkcija do date razdaljine, te iscrtavanja rezultata primene svakog od ovih sledova funkcija na inicijalnu tačku ili oblik.
Svaki od ovih algoritama pruža globalnu konstrukciju koja generiše tačke raspodeljene duž celog fraktala. Ako se crta malo područje fraktala, mnoge će od ovih tačaka padati izvan granica zaslona, što čini zumiranje unutar IFS konstrukcija nepraktičnim. Tamo gde se zahteva visok stupanj detaljnosti na malom području faktala, metode lokalne konstrukcije zasnovane na proračunu unaprednih orbita i sudbine pojedinih tačaka bi mogle biti delotvorne (iako nijedna programska podrška za rješavanje IFS-eva to ne čini).
Primer: fraktalna "paprat"
Sledi primer slike paprati izračunate koristeći sistem iterirane funkcije.
Prva iscrtana tačka je ishodište (x0 = 0, y0 = 0) te su potom nove tačke iterativno izračunate slučajnom primenom jedne od sledećih koordinatnih transformacija:
xn + 1 = 0
yn + 1 = 0.16 yn
Ova je koordinatna transformacija odabrana 1% vremena i preslikava svaku tačku u tačku u linijskom segmentu prikazanim zeleno na slici.
xn + 1 = 0.2 xn − 0.26 yn
yn + 1 = 0.23 xn + 0.22 yn + 1.6
Ova koordinatna transformacija je odabrana 7% vremena i preslikava svaku tačku unutar crnog pravougaonika u tačku unutar crvenog pravougaonika na slici.
xn + 1 = −0.15 xn + 0.28 yn
yn + 1 = 0.26 xn + 0.24 yn + 0.44
Ova koordinatna transformacija je odabrana 7% vremena i preslikava svaku tačku unutar crnog pravougaonika u tačku unutar tamnoplavog pravougaonika na slici.
xn + 1 = 0.85 xn + 0.04 yn
yn + 1 = −0.04 xn + 0.85 yn + 1.6
Ova koordinatna transformacija je odabrana 85% vremena i preslikava svaku tačku unutar crnog pravougaonika u tačku unutar svijetloplavog pravougaonika na slici.
Prva koordinatna transformacija iscrtava stabljiku. Druga iscrtava donji list paprati nalevo. Treća iscrtava donji list nadesno. Četvrta generira sukcesivne kopije stabljike i donjih listova kako bi upotpunila paprat. Rekurzivna narav IFS-a jamči da je celina replika svakog od listova. Napomena: Paprat je unutar opsega -5 <= x <= 5 i 0 <= y <= 10.