Me gustaría ayuda con una fórmula para calcular el valor futuro dado lo siguiente:
Se invierte una cantidad al FINAL de cada año, comenzando con la cantidad de PMT al final de este año, a una tasa de interés del i% anual , compuesta anualmente, la cantidad de inversión se duplica cada dos años (acumulativamente) .
Me resulta difícil entender el último punto, " el monto de la inversión se duplica cada dos años ", ya que el valor futuro de la fórmula de anualidad creciente hace provisiones para la inversión que crece por año y no por segundo año, ¿cómo puedo proceder?
Aquí hay una fórmula para el saldo al comienzo del año.n
balance = ((1 + i)^n (3 + i) pmt + (1 + i) (-2^Floor[(1 + n)/2] -
2^Floor[n/2] (1 + i)) pmt)/(-1 + i + 3 i^2 + i^3)
La función Piso está disponible en Excel. Esta es una implementación de Excel.
Una versión sin uso de Floor es
balance = ((1 + i)^n (3 + i) pmt + 2^(1/4 (-1)^n (-1 + (-1)^n (-1 + 2 n))) (1 + i)
(-2^(1/2 (-1)^(2 n)) - 2^((-1)^n/2) (1 + i)) pmt)/(-1 + i + 3 i^2 + i^3)
Derivación de fórmulas
Aquí está la derivación. Con intereses i
al 10% e inicial pmt
.
i = 0.1
pmt = 100
El saldo al comienzo del año 1 es 0. Al final del año 1 se realiza un pago por lo que el saldo al comienzo del año 2 es pmt
. El próximo pago (el segundo) es el doble, etc.
p1 = 0
p2 = p1 (1 + i) + pmt
p3 = p2 (1 + i) + 2*pmt
p4 = p3 (1 + i) + 2*pmt
p5 = p4 (1 + i) + 2^2*pmt
p6 = p5 (1 + i) + 2^2*pmt
p7 = p6 (1 + i) + 2^3*pmt
p8 = p7 (1 + i) + 2^3*pmt
p9 = p8 (1 + i) + 2^4*pmt = 5437.33
p10 = p9 (1 + i) + 2^4*pmt = 7581.06
Otra forma de expresar p10
es
p[9 + 1] = p[9](1 + i) + 2^Floor[9/2]*pmt
Entonces esto se puede resolver usando Mathematica
RSolve[{p[n + 1] == p[n] (1 + i) + 2^Floor[n/2]*pmt, p[1] == 0}, p[n], n]
La fórmula calcula correctamente el saldo al comienzo del año especificado.
p[n] = ((1 + i)^n (3 + i) pmt + (1 + i) (-2^Floor[(1 + n)/2] -
2^Floor[n/2] (1 + i)) pmt)/(-1 + i + 3 i^2 + i^3)
p[9] = 5437.33
p[10] = 7581.06
Las funciones de piso pueden ser reemplazadas
Floor[(1 + n)/2] = 1/4 (-1)^n (-1 + (-1)^n + 2 (-1)^n n)
and Floor[n/2] = 1/4 (-1)^n (1 + (-1)^(1 + n) + 2 (-1)^n n)
donación
p[n] = ((1 + i)^n (3 + i) pmt + 2^(1/4 (-1)^n (-1 + (-1)^n (-1 + 2 n))) (1 + i)
(-2^(1/2 (-1)^(2 n)) - 2^((-1)^n/2) (1 + i)) pmt)/(-1 + i + 3 i^2 + i^3)
Por ejemplo, el saldo al comienzo del año 9
i = 0.1
pmt = 100
n = 9
balance = ((1 + i)^n (3 + i) pmt + 2^(1/4 (-1)^n (-1 + (-1)^n (-1 + 2 n))) (1 + i)
(-2^(1/2 (-1)^(2 n)) - 2^((-1)^n/2) (1 + i)) pmt)/(-1 + i + 3 i^2 + i^3)
= 5437.33
Método alternativo
La misma solución también se puede encontrar como la forma cerrada de una sumatoria.
La suma para el ejemplo se vería así
i = 0.1
pmt = 100
n = 9
balance = 2^0 pmt (1 + i)^(n - 1 - 1) +
2^1 pmt (1 + i)^(n - 2 - 1) + 2^1 pmt (1 + i)^(n - 3 - 1) +
2^2 pmt (1 + i)^(n - 4 - 1) + 2^2 pmt (1 + i)^(n - 5 - 1) +
2^3 pmt (1 + i)^(n - 6 - 1) + 2^3 pmt (1 + i)^(n - 7 - 1) +
2^4 pmt (1 + i)^(n - 8 - 1)
= 5437.33
Cálculo básico del valor futuro
Lo anterior contrasta con el cálculo básico sin ninguna duplicación como tal.
i = 0.1
pmt = 100
n = 9
Cálculo iterativo
p1 = 0
p2 = p1 (1 + i) + pmt
p3 = p2 (1 + i) + pmt
p4 = p3 (1 + i) + pmt
p5 = p4 (1 + i) + pmt
p6 = p5 (1 + i) + pmt
p7 = p6 (1 + i) + pmt
p8 = p7 (1 + i) + pmt
p9 = p8 (1 + i) + pmt = 1143.59
Cálculo de suma
balance = pmt (1 + i)^0 +
pmt (1 + i)^1 + pmt (1 + i)^2 +
pmt (1 + i)^3 + pmt (1 + i)^4 +
pmt (1 + i)^5 + pmt (1 + i)^6 +
pmt (1 + i)^7
= 1143.59
Derivación de fórmulas
balance = ((-1 + (1 + i)^(-1 + n)) pmt)/i = 1143.59
Si el objetivo es obtener una solución analítica, puede calcular el valor futuro de las inversiones realizadas en años pares e impares por separado y luego sumarlos. Cada uno puede aplicar la fórmula de valoración estándar en términos de intervalos de 2 años en lugar de intervalos de 1 año, ya que la unidad de tiempo es arbitraria. El monto de la inversión aumenta en un 100 % en cada intervalo y la tasa de interés efectiva es (1 + 0.01i)^2 - 1. Asimismo, el tiempo se mediría en intervalos de 2 años.
Se me ocurrió una versión de esto que me da la respuesta incorrecta, ¿alguien puede indicarme dónde me estoy equivocando?
def investment(PMT, n, i):
for x in range(1,n):
if x==2:
invest_even=PMT*2**(x/2)
FV_even= invest_even*((1+i)-1)/i
else:
invest_odd=PMT*2**((x-1)/2)
FV_odd=invest_odd*((1+i)-1)/i
x+=1
investment_balance=(FV_even+FV_odd)
return round(investment_balance, 2)
Respuesta en código de Mathematica
i = 0.1;
pmt = 100;
n = 9;
fvOdd = fvEven = 0;
For[x = 1, x < n, x += 1,
If[Mod[x, 2] == 0,
investEven = pmt*2^(x/2);
fvEven += investEven*(1 + i)^(n - x - 1)
,
investOdd = pmt*2^((x - 1)/2);
fvOdd += investOdd*(1 + i)^(n - x - 1)
]
]
balance = fvOdd + fvEven
5437.33
FV_even= invest_even*(1 + i)^(n - x - 1)
. Por ejemplo, el primer pago x = 1
debe capitalizarse durante siete años para obtener el valor futuro al comienzo del año 9. Además, las pruebas x==2
para verificar un año par solo funcionarán una vez. Puede usar un módulo 2 para verificar si x
es par o impar. He agregado una versión de su programa en Mathematica para mostrarle cómo se puede hacer.
bryan
ben voigt
Lorenzo