额外付款的未来价值计算

Future Value Calculation with extra payments

我正在尝试创建一个 'savings goal' 计算器,但我对如何(如果可能)实现以下目标感到困惑:-

  1. 给定利率,计算达到目标所需的每月还款额。 (可以用底部的公式来做到这一点 - 在 javascript 中,但无论如何应该有意义)

  2. 根据未来某个时间的一次或多次一次性付款调整每月付款金额。 (无法解决这个问题)

例如,我可以计算出在 30 年内以 7% 的利率实现 300,000 英镑的余额是 245.91 英镑 pcm。

但我不确定如果引入第 5 年的一次性付款,我该如何调整此金额:-

e.g. 
yr 1 - x
yr 2 - 4 - x
yr 5 - 10000 lump sum
yr 6 - 30 - x

其中 x 是考虑到在第 30 年仍达到 300,000 英镑总额的一次性付款后每月所需的金额。

也适用于相同的情况,但在第 15 年再次付款。

e.g. 
yr 1 - x
yr 2 - 4 - x
yr 5 - 10000 lump sum
yr 6 - 14 - x
yr 15 - 10000 lump sum
yr 16 - 30 - x

我的思路是计算每笔一次性付款的未来价值(因此第 5 年 10000 年 25 年的复合利率为 7%),然后从所需金额中减去该金额(即 300,000 英镑) - 54,274.33 美元 = 245725.67 英镑)然后根据 245725.67 英镑计算所需的每月付款。

它很接近(301,827.53 英镑,每厘米 201.42 英镑)但我确信我在计算中遗漏了一些东西,因为它在更大的值下会更远。

我猜这是因为在第 5 年我重复计算了有效的付款金额(因为下面的计算仍然会考虑每月付款,即使它已被覆盖) - 我需要减去被覆盖的每月付款的复利?

我希望以上内容有意义,如有任何帮助,我们将不胜感激。

使用的计算:-

ir - 利率 fv - 终值(剩余价值) np - 周期数(年) pv - 现值 ^ = power 因为我在这里不知道该怎么做 :-P

(ir/12)[fv - pv(1 + ir/12) ^ 12np] / [(1 + ir/12) ^ 12np - 1]

或在Javascript

function calc1(ir, fv, np, pv){
/*
ir - interest rate 
fv - future value (residual value)
np - number of periods (years)
pv - present value
*/
var a, b, c, d;

a = ir / 12;
b = (1 + ir/12);
c = 12 * np;
d = (a * (fv - (pv * Math.pow(b, c)))) / (Math.pow(b, c) - 1);
return d;

}

是的,您关于重复计算的预感是正确的,您可以将第 5 年的金额也写为

x + (10000 - x)

其中第一项由几何求和公式覆盖。第二项需要减少 x,但 x 是未知的,因为问题是线性的,所以可能会被打破。

但是,为了避免过多的代码混乱并保持一定的灵活性,建议您像第一次猜测时那样做,并在确切的主要计算公式(您用于验证的那个计算公式)上使用正割公式£302k from x=201) 来优化结果。使用第一个猜测 xx+1 来初始化正割方法。