Iteració

De Viquipèdia
Dreceres ràpides: navegació, cerca

La iteració significa l'acte de repetir un procés amb l'objectiu d'aconseguir una meta desitjada, objectiu o resultat. Cada repetició del procés també se li denomina una "iteració", i els resultats d'una iteració s'utilitzen com a punt de partida per a la següent iteració.

Matemàtiques[modifica | modifica el codi]

Un pentàgon iteratiu. Connectant cantonades alternes d'un pentàgon regular es produeix un pentagrama que tanca un petit pentàgon invertit. Iterant el procés genera una seqüència de pentàgons i pentagrames niats.

La iteració, en matemàtica, es refereix al procés d'iteració d'una funció, és a dir aplicant la funció repetidament, usant la sortida d'una iteració com l'entrada a la següent. La iteració de funcions aparentment simples poden produir comportaments complexos i problemes difícils - per exemple, veure la conjectura de Collatz i les seqüències del malabarista.

Un altre ús de la iteració en matemàtiques és en mètodes iteratius que s'usen per produir solucions numèriques aproximades a certs problemes matemàtics. El mètode de Newton és un exemple d'un mètode iteratiu.

Programació[modifica | modifica el codi]

En programació, la iteració és la repetició d'un procés dins d'un programa d'ordinador. Pot usar-se tant com un terme genèric (com a sinònim de repetició) així com per descriure una forma específica de repetició amb un estat mutable.

Quan s'usa en el primer sentit, la recursivitat és un exemple d'iteració, però que usa la seva pròpia notació (notació recursiva), que no és el cas d'iteració.

No obstant això, quan s'usa en el segon sentit (cas més restringit), la iteració descriu l'estil de programació usat en llenguatges de programació imperativa. Això està en contraposició de la recursivitat, la qual té un enfocament més declaratiu.

Heus aquí un exemple d'iteració basant-se en assignació destructiva, en pseudocodi imperatiu:


 var i=0, a := 0        // inicialitzat a abans de començar la iteració
 for i from 1 to 3 {  // cicle 3 cops
     a := a + i       // increment amb el valor actual d'i
     print a              // s'imprimeix el número 6
     }

En aquest fragment de programa, el valor de la variable canvia a mesura que l'execució del programa progressa, prenent els valors 1, 2 i 3. Aquest canvi de valor -o estat mutable- és característic d'una iteració.

La iteració pot aproximar mitjançant tècniques recursives en llenguatges de programació funcional. L'exemple que segueix està escrit en Scheme. Noteu que és un codi recursiu (un cas especial d'iteració), doncs la definició de "com iterar", la funció iter, es diu a si mateixa de manera de solucionar la instància del problema. Específicament, usa recursión al final de la cua, la qual està present en llenguatges com Scheme perquè no es requereixi usar grans quantitats d'espai del stack.

;; sum : number -> number
;; to sum the first n natural numbers
(define (sum n)
  (if (and (integer? n) (> n 0))
      (let iter ([n n] [i 1])
        (if (= n 1)
            i
            (iter (- n 1) (+ n i))))
      ((assertion-violation 
       'sum "invalid argument" n))))

Un iterador és un objecte que engloba la iteració.

També, la iteració es realitza utilitzant un full de càlcul, o mitjançant l'ús de solucionadors o funcions predefinides disponibles en Excel. Moltes equacions implícites, com ara l'equació Colebrook, es poden resoldre en la comoditat d'un full de càlcul, mitjançant el disseny d'algorismes adequats de cálculo.[1]

Molts dels problemes d'enginyeria com la resolució d'equacions de Colebrook arriben a 8 dígits de precisió amb tan sols 12 repeticions i és suficient un màxim de 100 iteracions per arribar a un resultat precís de 15 dígits.[2]

Gestió de projectes[modifica | modifica el codi]

Iteracions en gestió de projectes àgils

Iteracions en el context d'un projecte es refereixen a la tècnica de desenvolupar i lliurar components incrementals de funcionalitats d'un negoci. Això està comunament associat al desenvolupament àgil de programari, però podria referir-se a qualsevol material. Una iteració resulta en un o més paquets atòmics i complets del treball del projecte que pugui realitzar alguna funció tangible del negoci. Múltiples iteracions contribueixen a crear un producte completament integrat. A això l'hi compara comunament amb l'enfocament de desenvolupament en cascada.

Vegeu també[modifica | modifica el codi]

Referpencies[modifica | modifica el codi]