Iteración
# Iteración

Iteración significa repetir varias veces un proceso con la intención de alcanzar una meta deseada, objetivo o resultado. Cada repetición del proceso también se le denomina una "iteración", y los resultados de una iteración se utilizan como punto de partida para la siguiente iteración.

## Matemáticas

La Iteración, en matemática, se refiere al proceso de iteración de una función, es decir, aplicando la función repetidamente, usando la salida de una iteración como la entrada a la siguiente. La iteración de funciones aparentemente simples pueden producir comportamientos complejos y problemas difíciles - por ejemplo, ver la conjetura de Collatz y las secuencias del malabarista.

Otro uso de la iteración en matemáticas es en métodos iterativos que se usan para producir soluciones numéricas aproximadas a ciertos problemas matemáticos. El método de Newton es un ejemplo de un método iterativo.

## Programación

En programación, Iteración es la repetición de un segmento de código dentro de un programa de computadora. Puede usarse tanto como un término genérico (como sinónimo de repetición) como para describir una forma específica de repetición con un estado mutable.

Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.

Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el acto de repetir dentro del estilo de programación imperativa. Esto está en contraposición de la recursión de funciones, la cual expresa repetición con un enfoque más declarativo.

He aquí un ejemplo de iteración basándose en asignación destructiva, en pseudocódigo imperativo:

En este fragmento de programa, el valor de la variable i cambia a medida que la ejecución del programa progresa, tomando los valores 1, 2 y 3. Este cambio de valor —o estado mutable— es característico de una iteración.

La iteración puede aproximarse por medio de técnicas recursivas en lenguajes de programación funcional. El ejemplo que sigue está escrito en Scheme. Nótese que es un código recursivo (un caso especial de iteración), pues la definición de "cómo iterar", la función iter, se llama a sí misma de manera de solucionar la instancia del problema. Específicamente, usa recursión al final de la cola, la cual está presente en lenguajes como Scheme para que no se requiera usar grandes cantidades de espacio del stack.

Un iterador es un objeto que engloba la iteración.

También, la iteración se realiza usando una hoja de cálculo, o mediante el uso de solucionadores o funciones predefinidas disponibles en Excel. Muchas ecuaciones implícitas, como por ejemplo la ecuación Colebrook, se pueden resolver en la comodidad de una hoja de cálculo, mediante el diseño de algoritmos adecuados de cálculo.

Muchos de los problemas de ingeniería como la resolución de ecuaciones de Colebrook llegan a 8 dígitos de precisión con tan solo 12 repeticiones y es suficiente un máximo de 100 iteraciones para alcanzar un resultado preciso de 15 dígitos.

## Gestión de proyectos

Iteraciones en el contexto de un proyecto se refieren a la técnica de desarrollar y entregar componentes incrementales de funcionalidades de un negocio. Esto está comúnmente asociado al desarrollo ágil de software, pero podría referirse a cualquier material. Una iteración resulta en uno o más paquetes atómicos y completos del trabajo del proyecto que pueda realizar alguna función tangible del negocio. Múltiples iteraciones contribuyen a crear un producto completamente integrado. A esto se lo compara comúnmente con el enfoque de desarrollo en cascada.

