Sobre la base de mi respuesta anterior aquí
r is the monthly or quarterly interest rate
y is the number of years
m is the number of months or quarters per year
p is the initial regular deposit
x is the annual deposit percentage increase
c is the initial capital
fv = (p (1 + r) (-1 + (1 + r)^m) ((1 + r)^(m y) - (1 + x)^y))/
(r (-1 + (1 + r)^m - x)) + c (1 + r)^(m y)
Para un 5% compuesto anualmente, el tipo mensual r = (1 + 0.05)^(1/12) - 1
Para un 5% compuesto mensualmente, el tipo mensual r = 0.05/12
Véase cálculo del tipo nominal para aclararlo.
Con los siguientes valores (tasa compuesta mensual)
r = 0.05/12
m = 12
p = 1000
x = 0.03
c = 2000
fv = 100000
Solución de y : y = 6.36822
El objetivo se alcanza en 6 años y 5 meses.
También se muestra la solución trazada.
Resultado de la comprobación de y = 6
utilizando fórmulas y Excel.
fv = (p (1 + r) (-1 + (1 + r)^m) ((1 + r)^(m y) - (1 + x)^y))/
(r (-1 + (1 + r)^m - x)) + c (1 + r)^(m y) = 92988.93
El capital compuesto figura por separado en la columna H, es decir c (1 + r)^(m y)
Tenga en cuenta que, probablemente debido a los saltos anuales en la contribución mensual, sólo las entradas de los años redondos coinciden exactamente con las cifras de Excel, es decir, para y = 6 + 5/12
fv = (p (1 + r) (-1 + (1 + r)^m) ((1 + r)^(m y) - (1 + x)^y))/
(r (-1 + (1 + r)^m - x)) + c (1 + r)^(m y) = 100936.25
También se dejó de pagar el primer mes de intereses del capital. La celda J1 de Excel debería ser 2008.333 y la fórmula debería terminar así ... + c (1 + r)^(m y + 1)
. El interés del capital es correcto en la versión siguiente.
Pregunta adicional
Paso a un aumento mensual de la comilla del 0,5
fv = (p ((1 + r)^n - (1 + x)^n))/(r - x) + c (1 + r)^n
donde x es el porcentaje mensual de incremento de la comilla y n es el número de meses.
La fórmula tampoco puede expresarse para n.
Veré de seguir con Método de Newton para resolver esto rápidamente, computacionalmente (sin un solucionador de terceros).
Solución Newton-Raphson para n
Necesitamos encontrar una root para esta fórmula con una incógnita, n
(p ((1 + r)^n - (1 + x)^n))/(r - x) + c (1 + r)^n - fv = 0
Usando el algoritmo aquí: https://en.wikipedia.org/wiki/Newton%27s_method#Code
Este método requiere la derivada de la fórmula. (La fórmula y su derivada funcionarán para todas las variaciones numéricas del cálculo. Nota Log
es a la base e.)
¿Qué? n = 80.6977
en este contexto es cuestionable. Seguro que puede saber que el penúltimo pago es el 80º.
r = 0.05/12; p = 1000; x = 0.005/12; c = 2000; n = 80;
fv = (p ((1 + r)^n - (1 + x)^n))/(r - x) + c (1 + r)^n = 98991.5145
Por el fin del mes 80 fv = 98991.5145 (1 + r) = 99403.9792
y luego llega la última contribución y hace que el saldo supere el objetivo de 100000. Entonces, ¿qué ocurre en n = 80.6977
es un poco teórico.
Podrías encontrar más fácilmente el penúltimo mes con un simple bucle.
r = 0.05/12; p = 1000; x = 0.005/12; c = 2000; fv = 100000; n = 0;
While[c < fv,
u = {n++, c};
c *= (1 + r);
c += p;
p *= (1 + x)]
{u, {n, c}}
{{80, 98991.5145}, {81, 100438.867}}
Anexo
Añadir una solución Newton-Raphson para la anualidad de pago creciente anualmente (corregida).
La solución te dice que el objetivo se alcanza en el año 6. Así que añadir un bucle para encontrar el penúltimo y último mes.
y = 6
fv = (p (1 + r) (-1 + (1 + r)^m) ((1 + r)^(m y) - (1 + x)^y))/
(r (-1 + (1 + r)^m - x)) + c (1 + r)^(m y + 1) = 93000.17
n = 0;
While[fv < 100000,
u = {n++, fv};
fv = (fv + p (1 + x)^y) (1 + r)]
{u, {n, fv}}
{{4, 99386.06}, {5, 100999.2}}
En este caso se alcanza el objetivo antes de se efectúa el pago mensual. El caso en que se alcance o supere el objetivo después de también habría que gestionar el pago.