Iteratie

herhaling, begrip in wiskunde en informatica

Iteratie is herhaling, iteratief is herhalend.

Deze begrippen uit de wiskunde en de informatica geven aan dat met een bepaald, zich herhalend proces een berekening kan worden uitgevoerd. Een itererend proces kan bijvoorbeeld convergeren tot één waarde, maar kan ook leiden tot oscillatie, of een chaotische ontwikkeling met zich meebrengen.

Als een bepaalde actie voor de tweede, derde of nde maal wordt uitgevoerd, is sprake van een reeks iteraties, waarvan de nde iteratie nu plaatsvindt.

Iteratieprocedures worden onder andere gebruikt om continue systemen te benaderen met discrete modellen. Door middel van iteratieprocedures kunnen de oplossingen van transcendente vergelijkingen berekend worden, en kunnen differentiaalvergelijkingen benaderd worden met differentievergelijkingen.

In de informatica verwijst iteratief meestal naar het programmeren van herhaling, met gebruik van zogenaamde lus-constructies (op zijn Engels: loops), die een imperatieve programmeertaal daarvoor aanbiedt. Voorbeelden zijn de for-lus, de while-lus en de until-lus: zie repetitie (informatica) voor details. Een alternatief hiervoor is recursie.

Voorbeeld bewerken

Een voorbeeld van iteratieve berekening: neem het getal 10, tel daar 1 bij op en deel het vervolgens door 2. Tel bij het resultaat weer 1 op en deel het vervolgens weer door 2. Door dit een aantal malen te herhalen zal het resultaat uiteindelijk het getal '1' opleveren. Bij een ingewikkelder variant worden alle resultaten van de iteraties bij elkaar opgeteld. In onderstaand programmeervoorbeeld zou van elke iteratie 1 afgetrokken kunnen worden en door dat resultaat steeds bij elkaar op te tellen ontstaat het getal '9'.

Voorbeeld in pseudocode bewerken

De iteratie zoals hierboven beschreven:

P = 10              De variabele noemen we 'P' en deze start bij 10.
Q = 0               De tweede variabele is 'Q', en deze start bij 0.
Doe steeds opnieuw:
{
   P = P + 1        Tel 1 bij 'P' op
   P = P / 2        Deel 'P' door 2
   Q = Q + (P - 1)  Q wordt verhoogd met het verschil van 'P' en 1
}

Het resultaat van bovenstaande berekening is:

Iteratie P Q Iteratie P Q
0 10.000 0.0000 9 1.0176 8.9824
1 5.5000 4.5000 10 1.0088 8.9912
2 3.2500 6.7500 11 1.0044 8.9956
3 2.1250 7.8750 12 1.0022 8.9978
4 1.5625 8.4375 13 1.0011 8.9989
5 1.2813 8.7188 14 1.0005 8.9995
6 1.1406 8.8594 15 1.0003 8.9997
7 1.0703 8.9297 16 1.0001 8.9999
8 1.0352 8.9648

In dit voorbeeld wordt met de variabele 'Q' het getal '9' berekend. Dat is niet erg zinvol, omdat bij deze iteratie van tevoren al bekend is dat '9' de uitkomst is (het optellen en aftrekken met één kan weggehaald worden, en dan blijft over dat steeds de helft bij elkaar opgeteld wordt). Met een eenvoudige iteratie kan echter ook het getal pi berekend worden.

Voorbeeld in Java bewerken

In onderstaand voorbeeld, dat geschreven is in Java, wordt de iteratie honderd keer uitgevoerd. De iteratie wordt gedefinieerd met behulp van een for-loop.

for(int i=0; i<100; i++) {
	// Doe iets
}

Voorbeeld in PHP bewerken

In onderstaand voorbeeld wordt gebruikgemaakt van een while-loop. Het gaat echter om dezelfde iteratie: deze wordt ook honderd keer uitgevoerd. De iteratie is echter geschreven in PHP.

$i = 0;
while($i < 100) {
	// doe iets
	$i++;
}

Taalkunde bewerken

In de taalkunde is iterativiteit of frequentativiteit een vormeigenschap van werkwoorden die herhaalde werking aangeeft, bijvoorbeeld het element (affix) -el-, als in trappelen en hakkelen.

Zie ook bewerken