Resolver ecuaciones iterativas en Excel: Colebrook con LAMBDA recursiva y REDUCE

Caso excepcional que demuestra el poder de las funciones modernas de Excel en ingeniería. Un ingeniero industrial de casi 70 años, consultor en proyectos térmicos, plantea un problema clásico: calcular el factor de fricción de Colebrook-White, una ecuación implícita que requiere iteración (el resultado aparece a ambos lados de la ecuación). Tradicionalmente se resuelve con VBA o celdas auxiliares encadenadas.

Con LAMBDA recursiva (Leo): implementa la iteración directamente en una fórmula, sin macros ni nombre definido. La LAMBDA se pasa a sí misma como argumento (patrón Y-combinator) y itera hasta alcanzar la precisión deseada:

``
=LET(
n; 4;
D; G9;
Ru; G10;
Rey; G11;
Ffini; G12;
R; LAMBDA(R; x; i;
LET(
y; 1 / (-2LOG10((Ru/D/3,71) + (2,51/(ReyRAIZ(x)))))^2;
SI(i = 1; y; R(R; y; i - 1))
)
);
R(R; Ffini; n)
)
`

Con REDUCE + SECUENCIA (Leo): alternativa más limpia que usa REDUCE para iterar N pasos, aplicando la función de Colebrook en cada paso:

`
=LET(
n; 5;
F; LAMBDA(x;
1 / (-2LOG10((Ru/D/3,71) + (2,51/(ReyRAIZ(x)))))^2
);
REDUCE(F(Ffini); SECUENCIA(n - 1); LAMBDA(a; b; F(a)))
)
`

El autor destaca un insight clave: "LAMBDA dentro de LET" funciona mejor que "LET dentro de LAMBDA" — definir las variables del problema en LET y luego usar LAMBDA` solo para la iteración hace la fórmula mucho más legible.

Varios ingenieros del grupo (petrolero de Venezuela, profesora de estructuras de España) celebran ver Excel aplicado a problemas reales de ingeniería. Hugo lo resume: "¡Qué lindo reto para cerrar 2024!"

El problema: una ecuación que se resuelve a sí misma

Un ingeniero industrial, consultor en proyectos térmicos, trajo a la comunidad un problema que cualquiera del mundo de la ingeniería reconoce: calcular el factor de fricción de Colebrook-White. Es una ecuación implícita, es decir, la incógnita aparece a los dos lados del igual. No se despeja: hay que iterar, dar un valor inicial, calcular, volver a meter el resultado y repetir hasta que se estabilice.

Tradicionalmente esto se resolvía con VBA o con una cadena de celdas auxiliares, una por iteración. Leo demostró que las funciones modernas de Excel lo hacen en una sola celda, sin macros.

Solución 1: LAMBDA recursiva

La primera versión implementa la iteración dentro de la propia fórmula. La LAMBDA se pasa a sí misma como argumento (el patrón conocido como Y-combinator) y va reduciendo un contador hasta terminar:

`` =LET( n; 4; D; G9; Ru; G10; Rey; G11; Ffini; G12; R; LAMBDA(R; x; i; LET( y; 1 / (-2LOG10((Ru/D/3,71) + (2,51/(ReyRAIZ(x)))))^2; SI(i = 1; y; R(R; y; i - 1)) ) ); R(R; Ffini; n) ) ``

n es el número de iteraciones, Ffini el valor inicial y la LAMBDA aplica la fórmula de Colebrook en cada pasada. Cuando el contador llega a 1, devuelve el resultado.

Solución 2: REDUCE + SECUENCIA

Más limpia y, para muchos, más fácil de leer. En vez de recursión, usa REDUCE para iterar N pasos, aplicando la función de Colebrook (definida como LAMBDA con nombre local) en cada uno:

`` =LET( n; 5; F; LAMBDA(x; 1 / (-2LOG10((Ru/D/3,71) + (2,51/(ReyRAIZ(x)))))^2 ); REDUCE(F(Ffini); SECUENCIA(n - 1); LAMBDA(a; b; F(a))) ) ``

REDUCE arranca con la primera aplicación de la función sobre el valor inicial y, por cada elemento de SECUENCIA(n - 1), vuelve a aplicarla sobre el resultado anterior. El número de pasos se controla con n, así que ajustar la precisión es cambiar un número.

El insight: LAMBDA dentro de LET

Leo dejó una lección de estilo que vale para cualquier fórmula compleja: "LAMBDA dentro de LET" funciona mejor que "LET dentro de LAMBDA". Definir las variables del problema (diámetro, rugosidad, Reynolds, valor inicial) en un LET claro y reservar la LAMBDA solo para la parte iterativa hace la fórmula mucho más legible y fácil de mantener.

Funciones clave

  • LAMBDA recursiva: itera sin macros pasándose a sí misma como argumento.
  • REDUCE + SECUENCIA: la alternativa iterativa limpia, con el número de pasos como parámetro.
  • LET: nombra las variables físicas del problema y separa datos de lógica.
  • LOG10 y RAIZ: el corazón matemático de la ecuación de Colebrook.

Conclusión

Ver Excel resolviendo una ecuación implícita de mecánica de fluidos sin una sola línea de VBA emocionó a varios ingenieros del grupo, de un petrolero en Venezuela a una profesora de estructuras en España. Y esa es una de las cosas más bonitas de la comunidad de Influexcel: un problema de ingeniería de verdad, resuelto entre todos, que además enseña un patrón —iterar con REDUCE o con LAMBDA recursiva— aplicable a mil cálculos distintos.

Más contenido de Excel en InflueXcel