Javascript 带额外付款的未来价值计算
我正在尝试创建一个“储蓄目标”计算器,但我一直在思考如何(如果可能的话)实现以下目标:-Javascript 带额外付款的未来价值计算,javascript,math,amortization,Javascript,Math,Amortization,我正在尝试创建一个“储蓄目标”计算器,但我一直在思考如何(如果可能的话)实现以下目标:- 在给定利率的情况下,计算实现目标所需的每月付款金额。(可以使用底部的公式实现这一点-在javascript中,但无论如何都应该有意义) 根据未来某个时间点的一次或多次一次性付款调整每月付款金额。(这个我做不出来) 例如,我可以计算出,以7%的利率在30年内实现300000英镑的余额是245.91英镑 但如果在第5年实行一次性付款,我不确定如何调整该金额:- e.g. yr 1 - x yr 2 - 4 -
e.g.
yr 1 - x
yr 2 - 4 - x
yr 5 - 10000 lump sum
yr 6 - 30 - x
其中x是每月所需的金额,考虑到在第30年仍达到300000英镑总额的一次性付款
同样适用于相同的场景,但在第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%),然后从所需金额中减去该金额(300000英镑-54274.33美元=245725.67英镑),然后根据245725.67英镑计算每月所需付款)
它很接近(301827.53英镑,201.42 pcm),但我确信在计算中遗漏了一些东西,因为它在更大的值上走得更远
我猜这是因为在第5年,我重复计算了一个有效的付款金额(因为下面的计算仍然会考虑每月付款,即使它已经被过度使用)-我是否需要为被过度使用的每月付款减去复利
我希望以上所说的都是有意义的,任何帮助都将不胜感激
使用的计算:-
利率
fv-未来价值(剩余价值)
np-周期数(年)
pv-现值
^例如:我不知道怎么做
(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;
}
是的,你关于重复计算的直觉是正确的,你可以把第五年的金额也写为
x + (10000 - x)
其中第一项包含在几何和公式中。第二项需要减少x
,但是x
未知,这会导致一个圆圈,因为问题是线性的,所以可能会被打破
然而,为了避免太多的代码混乱并保持一定的灵活性,可以建议您像第一次猜测一样,使用正割公式对精确的主计算公式(您用于验证从x=201获得302k英镑)进行细化。使用第一个猜测
x
和x+1
初始化割线法。这是数学软件Mathematica的问答网站,不是一般的数学。嗨,谢谢你的回答-我很清楚你说的是计算出第5年原始付款金额的未来值,然后减去这个值,然后重新计算-如果我在x+1下循环,直到达到所需金额?不完全是,我说的是打破循环。制作一个函数y=futureValue(x)
。这里我们知道它是线性的,所以割线法一步就解决了它。但即使它不是线性的,割线法也应该通过几个步骤来解决它<代码>目标=300000;y0=未来价值(x0)-目标;y1=未来价值(x1)-目标;x2=(x1*y0-x0*y1)/(y0-y1)代码>应该会导致futureValue(x2)-目标非常小。啊,我知道了-谢谢-还没有尝试过,但我明白你的意思以及它将如何工作。