34. Cálculo de plazos o tasas con métodos numéricos

Cuando una tasa o un plazo aparece dentro de varios factores, la ecuación puede no admitir un despeje cerrado y debe resolverse buscando una raíz.

34.1 De una ecuación financiera a una raíz

Con importes desconocidos, la ecuación de valor suele ser lineal. Cuando la incógnita es una tasa o un plazo, aparece en bases, exponentes o varios factores simultáneamente.

La estrategia consiste en llevar todos los términos a un miembro y definir una función residual. Resolver el problema financiero equivale a encontrar dónde esa función vale cero.

Idea central: un método numérico no “adivina” la solución; genera aproximaciones controladas y verifica el residual de la ecuación original.

34.2 Las tres piezas del problema

Función residual

Expresa el desequilibrio financiero.

Dominio e intervalo

Delimitan soluciones económicamente admisibles.

Criterio de parada

Define precisión y máximo de iteraciones.

Sin estas piezas, un número devuelto por un algoritmo no constituye una solución confiable.

34.3 Función de valor para una tasa

Si dos carteras deben ser equivalentes y la tasa i es desconocida:

g(i)=VA(f;i)−VB(f;i)
buscar i* tal que g(i*)=0

El punto y coma recuerda que la fecha focal y los flujos están fijos, mientras que la tasa varía.

34.4 Función de valor para un plazo

Cuando se desconoce una fecha o duración n:

h(n)=VA(f;n)−VB(f;n)
buscar n* tal que h(n*)=0

La variable puede aparecer en la fecha focal, en la fecha de un flujo o en ambas. Debe definirse con precisión antes de programar.

34.5 Cuándo existe una fórmula cerrada

Un capital único C que alcanza M después de n períodos sí permite despejes directos:

i=(M/C)1/n−1
n=ln(M/C)/ln(1+i)

No conviene usar iteración cuando una fórmula estable y válida resuelve el caso. Los métodos numéricos son necesarios cuando la estructura es más compleja.

34.6 Por qué varios flujos complican el despeje

En una ecuación como:

100.000(1+i)12+60.000(1+i)4=180.000

la misma tasa aparece con exponentes diferentes. No puede aislarse mediante una única raíz o logaritmo elemental, aunque la función sea fácil de evaluar.

34.7 Residual y significado del signo

Definimos:

g(i)=100.000(1+i)12+60.000(1+i)4−180.000

Si g(i)<0, el valor acumulado queda por debajo del objetivo; si g(i)>0, lo supera. Un cambio de signo encierra al menos una raíz si la función es continua.

34.8 El dominio financiero

Con potencias compuestas y exponentes no enteros se requiere 1+i>0, es decir, i>−1. También pueden existir restricciones económicas más estrechas, como no admitir tasas negativas.

Para plazos se suele exigir n≥0, o una fecha posterior a cierto flujo. El algoritmo nunca debería explorar fuera del dominio declarado.

34.9 Buscar un intervalo inicial

Antes de iterar se evalúa la función en dos extremos a y b. Para bisección debe cumplirse:

g(a)·g(b)≤0

Si no hay cambio de signo, puede no existir una raíz en el intervalo, haber una raíz tangencial o existir un número par de raíces. Ampliar el intervalo sin límites no es una solución segura.

34.10 Método de bisección

Bisección parte un intervalo con cambio de signo por la mitad y conserva el subintervalo que sigue encerrando una raíz.

[a,b]cambio de signo
→
m=(a+b)/2evaluar residual
→
nuevo intervalomitad con raíz

Es lento comparado con métodos de orden superior, pero converge para una función continua cuando el intervalo inicial es válido.

34.11 Error acotado en bisección

Después de k divisiones, el ancho del intervalo es:

anchok=(b−a)/2k
error de la raíz ≤ anchok/2

Esta cota permite estimar anticipadamente cuántas iteraciones hacen falta para una tolerancia en la variable.

34.12 Ejemplo de tasa por bisección

Para la ecuación del apartado 34.6, el intervalo [−50 %, 50 %] contiene un cambio de signo. La bisección obtiene:

i≈0,013032734428
i≈1,303273443 % mensual

Al sustituirla, el residual monetario es prácticamente cero dentro de la precisión numérica.

34.13 Método de Newton-Raphson

Newton utiliza la pendiente local para proyectar la siguiente aproximación:

xk+1=xk−g(xk)/g′(xk)

Cerca de una raíz simple suele converger muy rápido, pero necesita una derivada y un punto inicial razonable.

34.14 Derivada de una ecuación financiera

Para g(i)=Σ Ck(1+i)nk:

g′(i)=Σ Cknk(1+i)nk−1

Si la derivada es casi cero, el paso de Newton puede ser enorme. Debe rechazarse o limitarse para no salir del dominio.

34.15 Método de la secante

La secante aproxima la derivada con dos evaluaciones anteriores:

xk+1=xk−g(xk)(xk−xk−1)/[g(xk)−g(xk−1)]

No requiere derivada analítica, pero tampoco garantiza conservar un intervalo con raíz.

34.16 Comparación de métodos

MétodoVentajaRiesgo
BisecciónConvergencia garantizada con intervalo válido.Convergencia lineal relativamente lenta.
NewtonMuy rápido cerca de una raíz simple.Puede divergir o salir del dominio.
SecanteNo necesita derivada.No conserva siempre el encierro.
HíbridoCombina seguridad y velocidad.Implementación más compleja.

34.17 Estrategia híbrida

Un solucionador robusto mantiene un intervalo con cambio de signo. Intenta un paso de Newton o secante y, si cae fuera del intervalo o no es finito, utiliza bisección.

Resultado: la raíz permanece encerrada y se aprovecha la convergencia rápida cuando las condiciones locales son favorables.

34.18 Resolver un plazo

Supongamos $90.000 en el tiempo 0 y $50.000 en el período 5, ambos acumulados a una fecha desconocida n, con tasa del 2 %, para alcanzar $180.000:

h(n)=90.000(1,02)n+50.000(1,02)n−5−180.000

Sobre el intervalo [5,30], bisección obtiene n≈14,420399646 períodos.

34.19 Plazos fraccionarios y contractuales

Una raíz como 14,4204 períodos es matemáticamente válida, pero el contrato puede aceptar solo fechas enteras o días determinados. Debe decidirse si se redondea hacia arriba, hacia abajo o se interpola por días.

Después de aplicar la regla contractual se recalcula el residual, porque la fecha factible ya no coincide exactamente con la raíz continua.

34.20 Criterios de parada

Conviene combinar dos tolerancias:

|g(xk)|≤εf
|b−a|/2≤εx

La primera controla el desequilibrio monetario; la segunda controla la incertidumbre de la tasa o plazo. También debe fijarse un máximo de iteraciones.

34.21 Escalas y tolerancia relativa

Un residual de $0,01 puede ser relevante o despreciable según el tamaño de la operación. Puede usarse:

error relativo=|g(x)|/máx(1,escala de capitales)

La tolerancia de la variable debe expresarse en unidades claras: tanto por uno para tasas y períodos para plazos.

34.22 Ausencia de solución

Una meta puede ser inalcanzable dentro del dominio permitido. Si la función conserva el mismo signo en todo el intervalo y se conoce su monotonía, no existe una raíz allí.

El software debe informar “no se encontró una raíz en el intervalo”, no devolver un extremo ni la última aproximación como si fuera una solución.

34.23 Raíces múltiples

Cuando los flujos cambian de signo varias veces, una ecuación de tasa puede tener varias raíces reales. Cada una equilibra matemáticamente la ecuación, pero puede tener una interpretación económica distinta.

Un único intervalo amplio y un solo punto inicial no demuestran unicidad. Conviene explorar una grilla, detectar varios cambios de signo y resolver cada subintervalo.

34.24 Raíces tangenciales

Una raíz de multiplicidad par puede tocar el eje sin cambiar de signo. Bisección basada exclusivamente en signos no la detectará.

La inspección del mínimo de |g(x)|, el análisis de la derivada o métodos especializados ayudan a identificarla. Aun así debe verificarse el residual final.

34.25 Monotonía y unicidad

Si todos los capitales acumulados son positivos y sus exponentes también lo son, la función suele ser creciente respecto de i en i>−1. Un cambio de signo implica entonces una única raíz.

Con cobros y pagos mezclados, exponentes positivos y negativos o tasas por tramos, la monotonía debe demostrarse y no suponerse.

34.26 Estabilidad de la evaluación

Para tasas pequeñas y exponentes grandes es preferible calcular:

(1+i)n=exp[n·log1p(i)]

log1p conserva precisión cuando i está cerca de cero. Antes de sumar, se controlan valores no finitos y posibles desbordamientos.

34.27 Trazabilidad del solucionador

Una salida auditable debería incluir raíz, residual, iteraciones, intervalo inicial, intervalo final, método y motivo de parada.

Guardar una traza de iteraciones facilita detectar un intervalo incorrecto, una función discontinua o una convergencia demasiado lenta.

34.28 Procedimiento recomendado

  1. Construir la ecuación de valor original.
  2. Definir la función residual.
  3. Establecer dominio y restricciones económicas.
  4. Explorar valores y localizar cambios de signo.
  5. Elegir el método y las tolerancias.
  6. Iterar controlando valores finitos.
  7. Sustituir la raíz en la ecuación original.
  8. Informar residual, iteraciones y posibles raíces alternativas.

34.29 Laboratorio: resolver tasa y plazo

Los dos solucionadores aplican bisección. Los límites de tasa se ingresan como porcentajes y los de plazo como cantidad de períodos.

Solucionador numérico financiero

Cada cálculo exige que el residual cambie de signo entre sus límites.

Tasa desconocida

A(1+i)n+B(1+i)n−s=M

Raíz encontrada1,303273439 %La tasa equilibra la ecuación.

Plazo desconocido

A(1+i)n+B(1+i)n−s=M

Raíz encontrada14,420400857925 períodosEl plazo alcanza el monto objetivo.
Iteraciones tasa24
Residual tasa−$0,000056
Iteraciones plazo22
Residual plazo$0,004318

Últimas iteraciones del solucionador de tasa

IteraciónLímite inferiorPunto medioLímite superiorResidual

Ambas raíces fueron encontradas y verificadas.

34.30 Implementación de bisección

function biseccion(fn, inferior, superior, toleranciaF = 1e-8, maxIter = 200) {
  let a = inferior;
  let b = superior;
  let fa = fn(a);
  let fb = fn(b);
  if (![a, b, fa, fb, toleranciaF].every(Number.isFinite)) {
    throw new TypeError("Datos no finitos");
  }
  if (a >= b || toleranciaF < 0) throw new RangeError("Intervalo no válido");
  if (Math.abs(fa) <= toleranciaF) return { raiz: a, residual: fa, iteraciones: 0 };
  if (Math.abs(fb) <= toleranciaF) return { raiz: b, residual: fb, iteraciones: 0 };
  if (Math.sign(fa) === Math.sign(fb)) throw new RangeError("No hay cambio de signo");

  for (let k = 1; k <= maxIter; k++) {
    const medio = a + (b - a) / 2;
    const fm = fn(medio);
    if (!Number.isFinite(fm)) throw new RangeError("Evaluación no finita");
    if (Math.abs(fm) <= toleranciaF) {
      return { raiz: medio, residual: fm, iteraciones: k };
    }
    if (Math.sign(fa) !== Math.sign(fm)) b = medio;
    else { a = medio; fa = fm; }
  }
  throw new Error("No convergió dentro del máximo de iteraciones");
}

const g = i => 100000 * (1 + i) ** 12
  + 60000 * (1 + i) ** 4 - 180000;
console.log(biseccion(g, -0.5, 0.5, 0.01));

Una versión general debería combinar tolerancia del residual y del intervalo, además de devolver la traza y el motivo de finalización.

34.31 Errores frecuentes

  • Iterar sin definir el residual: impide verificar la solución.
  • Ignorar el dominio: genera bases o evaluaciones inválidas.
  • Usar bisección sin cambio de signo: elimina su garantía.
  • Confiar en un único punto inicial: puede ocultar otras raíces.
  • Detenerse solo por cantidad de iteraciones: no mide precisión.
  • Confundir tasa decimal y porcentaje: multiplica el resultado por cien.
  • Redondear durante la iteración: puede impedir convergencia.
  • No sustituir la raíz: deja el resultado sin comprobación.

34.32 Ejercicio propuesto

$120.000 invertidos hoy y $80.000 incorporados en el mes 6 deben equivaler a $250.000 en el mes 15. Calculá por bisección la tasa efectiva mensual dentro del intervalo [0 %, 5 %] y verificá el residual.

Ver solución
El resultado se calcula al cargar la página.
const residual = i => 120000 * (1 + i) ** 15
  + 80000 * (1 + i) ** 9 - 250000;

const resultado = biseccion(residual, 0, 0.05, 0.000001);
console.log(resultado);

La raíz es aproximadamente 1,776021045 % mensual. Al sustituirla, el residual monetario es menor que la tolerancia indicada.

34.33 Para recordar

  • Resolver una tasa o plazo significa hallar una raíz del residual.
  • Primero deben definirse dominio e intervalo económico.
  • Bisección requiere continuidad y cambio de signo.
  • Newton es rápido, pero necesita controles y una derivada estable.
  • Una ecuación puede no tener raíz o tener varias.
  • La convergencia debe considerar residual e incertidumbre de la variable.
  • La raíz siempre se sustituye en la ecuación original.
  • La salida debe informar método, iteraciones y precisión.