Az IFS az angol Iterated Function System (iterált egyenletrendszer) matematikai szakkifejezés betűszava. Ez az írás egy iterált egyenletrendszert mutat be, főként matematikában járatlanok számára.
Az első megértendő dolog az iteráció fogalma. A legegyszerűbb példa a növekvő számsor: 1, 2, 3, 4 ... A számsor úgy keletkezik, hogy a sorozat előző tagjához hozzáadunk egyet, és az lesz a sorozat következő tagja, és ezt ismételjük a végtelenig. Az egyesével növekvő számsort a matematikusok így írják le:
a(n+1) = an+1
Ezt a leírást nevezik az iteráció generátor-függvényének. A generátor-függvény, tehát egy olyan metematikai eljárás, ami egy számból egy másikat állít elő. Ha a generátor függvény eredményén újra, meg újra végrehajtjuk a generátor- függvényt, és a számokat sorba rakjuk, akkor iterációt hajtunk végre. Az iteráció számsort állít elő.
Az iterált egyenletrendszer annyiban különbözik az iterált egyenlettől, hogy a generátorfüggvény egy egyenlet helyett egy egyenletrendszer. Az egyenletrendszerek jelen esetben nem nagyon érdekesek (egyébként igen), csak egyetlen egy rendszert mutatok be, azt, aminek az alapján a rajzok készültek.
Két dimenzióban három dolgot lehet csinálni egy ponttal: elforgatást, eltolást és skálázást. Ezeket transzformációnak nevezik a matematikusok, és az egyszerűség(?) kedvéért a háromféle transzformáció képletét egy egyenletrendszerbe foglalják össze, amit transzformációs mátrixnak neveznek. A transzformációs mátrix gyakorlatilag egy halom szám (esetünkben pontosan 6). Ezek a mátrixok nagyon sok mindenre jók, de a mi esetünkben egyetlen előnyük van: alkalmasak generátorfüggvénynek, miután egy pontból egy másikat képesek előállítani, és a kapott ponton újra végrehajthatóak.
Az előbbi egyszerű példánál maradva: ha egy pontot újra, meg újra eltolok keletre egy egységet, akkor az iteráció eredményeképp egy pontokból álló sort kapok, ami egy vízszintes vonal lesz, ha elég sűrűn vannak a pontok. Ha az egyes lépések között a pontot el is forgatom, egy spirál lesz a végeredmény.
De ezzel még nincs vége a dolognak, mert a fent vázolt módszerrel egyeneseket, köröket és spirálokat lehet rajzolni, és most ez nem elég. Az általam használt eljárásban nem egy transzformációs mátrix szerepel, hanem több. (A gyakorlatban 2 és 32 között). Az egyszerűség kedvéért mondjuk, hogy négy. Az egyes iterációk között a négy mátrix (generátor függvény) közül véletlenszerűen választok egyet. A kiválasztott mátrix határozza meg a pontsor következő tagját. (Olyan ez, mintha a növekvő és a csökkenő számsort "összekeverném", néha hozzáadnék egyet, néha elvennék egyet az előző tagból)
De még ezzel sincs vége a dolognak. A különböző mátrixok valószínűsége nem egyforma, a négy közül az egyik gyakrabban fordul elő, mint a másik. Matematikailag ez minden.
Hogyan lesznek ebből rajzok? A rajzok voltaképpen pontsorok. Az első pont mindig a rajzlap közepén van, azután a bemutatott módszerrel pontok hihetetlen tömege rajzolja meg az ábrát. Tónusok úgy keletkeznek, hogy a rajzlap egy pontja nemcsak fekete, vagy fehér lehet, hanem a szürke 255 árnyalatát veheti fel. Az első találatnál a pont az első árnyalatot kapja, a másodiknál a másodikat, és így tovább.
Az eljárás nagyon számításigényes, a 100 rajz elkészítéséhez több (igaz, nem valami fényes) számítógép dolgozott (kisebb- nagyobb) megszakításokkal hat hónapig.
A felvázolt eljárás térben is használható. Különbség csak a transzformációs mátrixok hosszában mutatkozik. A pontok térben helyezkednek el, az eredmény fizikai megjelenítése nehéz (de érdemes) feladat. Itt tölthető le a három dimenziós IFS-halmazokat generáló és megjelenítő szoftver.