Sucesiones · Tema 12

Sucesiones recursivas y puntos fijos

Cómo analizar procesos donde cada estado nace del anterior, justificar su convergencia y convertir una iteración en un algoritmo confiable.

01 · Punto de partida

El próximo valor depende del estado actual

Muchos algoritmos no calculan una respuesta mediante una fórmula directa. Comienzan con una estimación, aplican una transformación y repiten:

a₀ → a₁=f(a₀) → a₂=f(a₁) → a₃=f(a₂) → ···

Este patrón aparece al aproximar raíces, simular sistemas dinámicos, ajustar parámetros, suavizar datos y buscar equilibrios.

  • ¿La regla produce un término válido en cada paso?
  • ¿Los valores permanecen en una región controlada?
  • ¿La sucesión aumenta, disminuye u oscila?
  • ¿Existe un límite y qué ecuación debe satisfacer?
  • ¿Con qué rapidez disminuye el error?
  • ¿Cuándo debe detenerse el programa?

02 · Definición recursiva

Condición inicial y regla de actualización

Una sucesión de primer orden queda definida mediante un valor inicial y una función de iteración:

a₀ dado,    an+1=f(an)

Ambos datos son indispensables. La misma función produce órbitas diferentes según el punto inicial.

Elementos de una iteración.
ElementoFunciónEjemplo
a₀Estado o estimación inicial.a₀=0
fTransformación aplicada en cada paso.f(x)=(x+3)/2
aₙEstado después de n iteraciones.0, 1.5, 2.25, …
ÓrbitaSucesión completa generada.(aₙ)

Si f contiene raíces, logaritmos o divisiones, también debemos garantizar que cada término permanece en su dominio.

03 · Equilibrios

Qué es un punto fijo

Un número L es punto fijo de f si:

f(L)=L

Si una iteración alcanza exactamente L, permanece allí. Si aₙ→L y f es continua en L, entonces:

L = lim an+1 = lim f(an) = f(L)

Por eso todo límite convergente debe ser un punto fijo. Para f(x)=(x+3)/2:

L=(L+3)/2   ⇒   L=3

04 · Iteración bien definida

Intervalos invariantes

Un conjunto I es invariante si f(I)⊆I. Si a₀∈I, todos los términos permanecen dentro de I.

Para f(x)=(x+3)/2, el intervalo [0,3] es invariante:

0≤x≤3   ⇒   1.5≤(x+3)/2≤3

Esta propiedad cumple dos tareas: garantiza que la recurrencia sigue definida y proporciona cotas. En problemas con f(x)=√(2+x), demostrar que los términos permanecen no negativos es indispensable antes de estudiar el límite.

Elegir I→Probar f(I)⊆I→a₀∈I→aₙ∈I para todo n

05 · Convergencia monótona

Probar dirección y acotación

Sea a₀=0 y aₙ₊₁=(aₙ+3)/2. Ya sabemos que 0≤aₙ≤3. Además:

an+1−an = (3−an)/2 ≥ 0

La sucesión es creciente y está acotada superiormente por 3. El teorema de convergencia monótona asegura la existencia del límite. La ecuación de punto fijo lo identifica como 3.

  1. 1
    Invariancia.

    Probar que los términos permanecen en un intervalo.

  2. 2
    Monotonía.

    Estudiar aₙ₊₁−aₙ.

  3. 3
    Existencia.

    Aplicar convergencia monótona.

  4. 4
    Identificación.

    Resolver L=f(L).

06 · Contracciones

Una transformación que reduce distancias

Supongamos que en un intervalo invariante existe 0≤q<1 tal que:

|f(x)−f(y)| ≤ q|x−y|

Entonces f es una contracción. Si L=f(L):

|an+1−L| = |f(an)−f(L)| ≤ q|an−L|

Repitiendo:

|an−L| ≤ qn|a₀−L|

La existencia de un punto fijo único y la convergencia desde cualquier punto del intervalo se reúnen en el teorema de punto fijo de Banach. Aquí utilizamos su idea central sin desarrollar toda la teoría métrica.

07 · Estabilidad local

La derivada cerca del punto fijo

Si f es derivable y L es punto fijo, el valor |f'(L)| orienta la estabilidad:

Interpretación local.
ValorComportamiento esperado cerca de L
|f'(L)|<1Atractivo: los errores pequeños se reducen.
|f'(L)|>1Repulsivo: los errores se amplifican.
|f'(L)|=1El criterio no decide; hace falta otro análisis.

Un signo negativo con magnitud menor que uno suele producir aproximación alternada; un signo positivo produce acercamiento desde un mismo lado, si la órbita permanece en la región estable.

08 · Velocidad de convergencia

Cómo evoluciona el error

Para la iteración afín aₙ₊₁=(aₙ+3)/2 y L=3:

an+1−3 = (an−3)/2

Por lo tanto:

|an−3| = (1/2)n|a₀−3|

Cada iteración reduce el error a la mitad. Para exigir error menor que ε, buscamos n tal que qⁿ|a₀−L|<ε. Usando logaritmos:

n > log(ε/|a₀−L|) / log(q),   0<q<1
function iteracionesNecesarias(errorInicial, razon, tolerancia) {
  if (!(razon > 0 && razon < 1)) throw new RangeError("La razón debe estar entre 0 y 1");
  return Math.ceil(Math.log(tolerancia / errorInicial) / Math.log(razon));
}

console.log(iteracionesNecesarias(3, 0.5, 1e-6));

09 · Aproximar raíces

La iteración de Herón para √2

La recurrencia

an+1 = (an + 2/an)/2

es el método de Newton aplicado a x²−2=0. Sus puntos fijos satisfacen L²=2. Si comenzamos con a₀>0, la iteración permanece positiva y converge a √2.

function aproximarRaizDos(inicial, pasos) {
  let x = inicial;
  const datos = [{ paso: 0, valor: x, error: Math.abs(x - Math.SQRT2) }];
  for (let n = 1; n <= pasos; n += 1) {
    x = (x + 2 / x) / 2;
    datos.push({ paso: n, valor: x, error: Math.abs(x - Math.SQRT2) });
  }
  return datos;
}

console.log(aproximarRaizDos(1, 5));

Los errores caen mucho más rápido que en una contracción lineal simple. El curso de cálculo numérico estudiará esta velocidad y sus condiciones de forma sistemática.

10 · Cuando la iteración no converge

Ciclos, escape y sensibilidad

La función f(x)=1−x tiene el punto fijo 1/2, pero si a₀≠1/2, la órbita alterna entre a₀ y 1−a₀. Resolver L=f(L) no predice esa falta de convergencia.

↔

Ciclo

La órbita repite varios valores.

↑

Escape

Los valores abandonan toda región acotada.

≈

Estancamiento numérico

El redondeo hace iguales dos iteraciones aunque el problema no esté resuelto.

function iterar(regla, inicial, pasos) {
  const valores = [inicial];
  for (let n = 0; n < pasos; n += 1) valores.push(regla(valores.at(-1)));
  return valores;
}

console.log(iterar(x => 1 - x, 0.2, 8));

11 · Algoritmo confiable

Criterios de parada y diagnósticos

Una implementación debe limitar iteraciones, rechazar resultados no finitos y registrar por qué terminó.

function iterarHasta(regla, inicial, tolerancia, maxIteraciones = 1000) {
  let anterior = inicial;
  for (let iteracion = 1; iteracion <= maxIteraciones; iteracion += 1) {
    const actual = regla(anterior);
    if (!Number.isFinite(actual)) return { estado: "no-finito", iteracion, valor: actual };
    const cambio = Math.abs(actual - anterior);
    if (cambio <= tolerancia) return { estado: "tolerancia", iteracion, valor: actual, cambio };
    anterior = actual;
  }
  return { estado: "maximo", iteracion: maxIteraciones, valor: anterior };
}

console.log(iterarHasta(Math.cos, 1, 1e-10));

El cambio entre iteraciones no siempre estima el error verdadero. Cuando sea posible, agregamos un residuo como |f(x)−x| o verificamos la ecuación original.

Aplicaciones del mismo patrón iterativo

Interpretaciones de aₙ₊₁=f(aₙ).
ÁreaEstado aₙPunto fijo
Resolución de ecuacionesAproximación de una raíz.Solución buscada.
SimulaciónEstado del sistema en el paso n.Equilibrio estable.
OptimizaciónParámetro actualizado.Configuración estacionaria.
Procesamiento de datosSeñal después de un filtro.Resultado que ya no cambia.
Aprendizaje automáticoPesos tras una actualización.Punto estacionario del entrenamiento.

Compartir la estructura no significa compartir las garantías. Cada aplicación necesita demostrar que su transformación conserva el dominio y reduce alguna medida apropiada del error.

12 · Exploración interactiva

Laboratorio: órbitas y puntos fijos

Elegí una transformación, el valor inicial y la cantidad de iteraciones. Observá convergencia, alternancia o ciclos.

EXPERIMENTO 12

Iterador de puntos fijos

aₙ₊₁=(aₙ+3)/2

Resultados debajo.
Punto fijo de referenciaL = 3
Último valor≈ 2,9999
Último cambio≈ 0,0001
Diagnóstico visibleSe aproxima

Los valores se acercan al punto fijo 3.

Cada punto representa el valor después de una iteración. La línea punteada indica el punto fijo de referencia.

13 · Comprensión

Confusiones frecuentes

«Resolver L=f(L) demuestra convergencia»

Solo produce candidatos. La órbita puede divergir o entrar en un ciclo.

«Todo punto fijo atrae iteraciones»

Puede ser repulsivo; la estabilidad depende del comportamiento de f cerca de él.

«Si el cambio es pequeño, el error también»

No necesariamente. Puede haber convergencia lenta, estancamiento o un punto que casi no cambia sin resolver el problema.

«Una recurrencia siempre está bien definida»

Cada término debe permanecer en el dominio de la función.

«La derivada local controla cualquier valor inicial»

Solo describe una región cercana al punto fijo.

«Más iteraciones siempre mejoran el resultado»

Una iteración inestable puede amplificar errores o desbordarse.

14 · Práctica y síntesis

Ejercicios de comprensión

Ejercicio 1: candidato de límite

Para aₙ₊₁=√(2+aₙ), encontrá los puntos fijos reales.

Ver solución

Si converge a L≥0, entonces L=√(2+L). Al cuadrar, L²−L−2=0, con soluciones 2 y −1. La condición L≥0 descarta −1; el único candidato es 2.

Ejercicio 2: prueba monótona

Para a₀=0 y aₙ₊₁=(aₙ+5)/2, demostrá convergencia y calculá el límite.

Ver solución

Por inducción, 0≤aₙ<5. Además aₙ₊₁−aₙ=(5−aₙ)/2>0. Es creciente y acotada por 5; converge y L=(L+5)/2 da L=5.

Ejercicio 3: punto fijo inestable

Analizá aₙ₊₁=2aₙ. ¿Qué punto fijo tiene y qué sucede si a₀≠0?

Ver solución

El único punto fijo es 0. Si a₀≠0, aₙ=2ⁿa₀ y su magnitud crece sin cota. Como |f'(0)|=2>1, el punto fijo es repulsivo.

Ejercicio 4: implementar y diagnosticar

Generá diez iteraciones de cos(x) desde x₀=1 e imprimí valores y cambios.

Ver solución
let anterior = 1;
const datos = [];
for (let n = 1; n <= 10; n += 1) {
  const actual = Math.cos(anterior);
  datos.push({ n, valor: actual, cambio: Math.abs(actual - anterior) });
  anterior = actual;
}
console.log(datos);

Ideas para recordar

  • Una recurrencia necesita condición inicial y regla de actualización.
  • Todo límite debe ser punto fijo, pero no todo punto fijo es atractivo.
  • Los intervalos invariantes garantizan dominio y aportan cotas.
  • Monotonía y acotación permiten probar existencia.
  • Una contracción reduce errores al menos geométricamente.
  • |f'(L)| orienta la estabilidad local.
  • Un algoritmo debe combinar tolerancia, máximo de iteraciones y validaciones.

En el próximo tema estudiaremos sucesiones de Cauchy, que permiten detectar convergencia comparando términos sin conocer previamente el límite.