Iteració
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ó". Els resultats d'un procés d'iteració s'utilitzen com a punt de partida per a la següent iteració.[1]
Matemàtiques
[modifica]![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/40/Pentagon_iteration.svg/220px-Pentagon_iteration.svg.png)
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]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 de 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ó), perquè 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ó 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àlcul.[2]
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.[3]
Gestió de projectes
[modifica]![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Agile_Project_Management_by_Planbox.png/220px-Agile_Project_Management_by_Planbox.png)
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. Això es compara comunament amb l'enfocament de desenvolupament en cascada.
Vegeu també
[modifica]- Equació de Colebrook-White
- Equació de Darcy-Weisbach
- Bucle for
- Funcions implícites
- Funció iterada
- Desenvolupament iteratiu i creixent
- Iterador
- Bucle while
- Desenvolupament en espiral
- Desenvolupament en cascada
Referències
[modifica]- ↑ «Iteració». Gran Enciclopèdia Catalana. Barcelona: Grup Enciclopèdia Catalana.
- ↑ «Solve Implicit Equations Inside Your Worksheet». Arxivat de l'original el 2009-08-17. [Consulta: 8 desembre 2012].
- ↑ «Colebrook Equation». Arxivat de l'original el 2020-10-17. [Consulta: 8 desembre 2012].