Una progresión geométrica es una sucesión donde cada término se obtiene multiplicando por una razón constante.
Una progresión geométrica es una sucesión en la que cada término se obtiene multiplicando el término anterior por un mismo número.
Este tipo de patrón aparece en crecimiento exponencial, escalado de imágenes, intereses compuestos y duplicación de recursos.
La razón común se obtiene dividiendo un término por el término anterior.
Si esa razón se mantiene igual en toda la sucesión, la progresión es geométrica.
El término general de una progresión geométrica permite calcular cualquier término usando su posición.
En esta fórmula, a₁ es el primer término, r es la razón común y n es la posición.
Si una progresión comienza en 3 y se multiplica por 2, el término 6 se calcula así:
La potencia representa cuántas veces se aplica la multiplicación.
La fórmula se puede implementar con el operador de potencia.
function terminoGeometrico(primero, razon, posicion) {
return primero * razon ** (posicion - 1);
}
console.log(terminoGeometrico(3, 2, 1));
console.log(terminoGeometrico(3, 2, 6));
console.log(terminoGeometrico(100, 0.5, 4));Una razón mayor que 1 produce crecimiento; una razón entre 0 y 1 produce disminución.
Un ciclo permite obtener los primeros términos de la progresión.
function progresionGeometrica(primero, razon, cantidad) {
const terminos = [];
for (let n = 1; n <= cantidad; n++) {
terminos.push(primero * razon ** (n - 1));
}
return terminos;
}
console.log(progresionGeometrica(3, 2, 8));Este patrón es útil para generar escalas, multiplicadores y niveles.
Una progresión geométrica con términos positivos es creciente cuando la razón es mayor que 1.
El crecimiento se acelera porque cada término multiplica al anterior.
Una progresión geométrica positiva decrece cuando la razón está entre 0 y 1.
En cada paso se conserva una fracción del valor anterior.
Para comprobar si una lista es geométrica, se compara la razón entre términos consecutivos.
function esProgresionGeometrica(valores) {
if (valores.length < 2 || valores[0] === 0) {
return valores.length < 2;
}
const razon = valores[1] / valores[0];
for (let i = 2; i < valores.length; i++) {
if (valores[i - 1] === 0 || valores[i] / valores[i - 1] !== razon) {
return false;
}
}
return true;
}
console.log(esProgresionGeometrica([3, 6, 12, 24]));
console.log(esProgresionGeometrica([3, 6, 9, 12]));La validación debe tener cuidado con divisiones por cero.
La suma de los primeros n términos de una progresión geométrica finita se calcula con una fórmula.
Cuando la razón es 1, todos los términos son iguales y la suma es a₁ · n.
La implementación debe contemplar el caso especial en el que la razón vale 1.
function sumaGeometrica(primero, razon, cantidad) {
if (razon === 1) {
return primero * cantidad;
}
return primero * (1 - razon ** cantidad) / (1 - razon);
}
console.log(sumaGeometrica(3, 2, 4));
console.log(sumaGeometrica(5, 1, 6));
console.log(sumaGeometrica(80, 0.5, 4));Esta fórmula evita crear la sucesión completa cuando solo se necesita la suma.
En gráficos o videojuegos, los tamaños pueden escalarse multiplicando por una razón constante.
function escalasNivel(tamanoInicial, factor, niveles) {
const tamanos = [];
for (let nivel = 1; nivel <= niveles; nivel++) {
tamanos.push(tamanoInicial * factor ** (nivel - 1));
}
return tamanos;
}
console.log(escalasNivel(20, 1.25, 6));Cada nivel aumenta el tamaño en la misma proporción, no en la misma cantidad.
El crecimiento porcentual repetido se modela con una progresión geométrica.
function capitalCompuesto(capitalInicial, tasa, periodos) {
return capitalInicial * (1 + tasa) ** periodos;
}
console.log(capitalCompuesto(1000, 0.10, 1));
console.log(capitalCompuesto(1000, 0.10, 3));
console.log(capitalCompuesto(1000, 0.10, 5));Una tasa del 10% se expresa como razón multiplicativa 1.10.
Un error común es confundir crecimiento aritmético con crecimiento geométrico.
En el primero se suma una cantidad constante. En el segundo se multiplica por una razón constante.
Las progresiones geométricas describen cambios proporcionales. Son esenciales para comprender crecimiento exponencial, escalas, porcentajes acumulados y procesos repetidos por multiplicación.
En el próximo tema se presentará una introducción a las matrices, una estructura matemática muy utilizada en programación.