我试图找到基于计算APR(年利率)编程方式
- 贷款总额
- 付款金额
- 支付数
- 还款频率 的方式来编程计算APR
没有必要考虑任何费用。
可以假定固定利率,剩余的任何金额都可以计入最后一笔付款。
以下公式基于信用协议,信用额度为€6000欧元,每24个月分期偿还274.11欧元。
(实际年利率为上面的例子是9.4%)
我要寻找一个在任何编程语言的算法,我可以适应C.
任何帮助将是非常赞赏。
我试图找到基于计算APR(年利率)编程方式
没有必要考虑任何费用。
可以假定固定利率,剩余的任何金额都可以计入最后一笔付款。
以下公式基于信用协议,信用额度为€6000欧元,每24个月分期偿还274.11欧元。
(实际年利率为上面的例子是9.4%)
我要寻找一个在任何编程语言的算法,我可以适应C.
任何帮助将是非常赞赏。
我想你想从你的公式计算X
。这个方程可以写成
f(y) = y + y**2 + y**3 + ... + y**N - L/P = 0
其中
X = APR
L = Loan (6000)
P = Individual Payment (274.11)
N = Number of payments (24)
F = Frequency (12 per year)
y = 1/((1 + X)**(1/F)) (substitution to simplify the equation)
现在,你需要解决的方程f(y) = 0
得到y
。这可以通过例如使用牛顿迭代(伪代码):
y = 1 (some plausible initial value)
repeat
dy = - f(y)/f'(y)
y += dy
until abs(dy) < eps
的衍生物是:
f'(y) = 1 + 2*y + 3*y**2 + ... + N*y**(N-1)
你会使用霍纳规则多项式避免幂计算f(y)
和f'(y)
。该衍生物可能会接近几个第一项。你发现y
后,你会得到x
:
x = y**(-F) - 1
下面是Objective C的代码片段,我想出了(这似乎是正确的),如果有人有兴趣:
float x = 1;
do{
fx = initialPaymentAmt+paymentAmt *(pow(x, numPayments+1)-x)/(x-1)+0*pow(x,numPayments)-totalLoanAmt;
dx = paymentAmt *(numPayments * pow(x , numPayments + 1) - (numPayments + 1)* pow(x,numPayments)+1)/pow(x-1,2)+numPayments * 0 * pow(x,numPayments-1);
z = fx/dx;
x=x-z;
} while (fabs(z)>1e-9);
apr=100*(pow(1/x,ppa)-1);
嗨本我正在寻找相同的公式。什么是ppa在这里? –
Hi Nilesh,自从我写这篇文章以来已经有一段时间了!但我认为ppa是每年付款的数量。 – Ben
我要成为在目标c中实现它,但我会很高兴用任何语言的答案。 – Ben
另一个问题:APR方法可能会根据完整的要求而大不相同。一件简单的事情就是你是否需要考虑气球支付。另外,剩下的便士会发生什么?他们是折合成最后一笔还是以某种方式分散在最后一对?你是否必须考虑浮动利率(如ARM贷款)?各项费用是如何处理的?简而言之,您的全部要求是什么?您尝试了什么? – NotMe
http://en.wikipedia.org/wiki/Annual_percentage_rate – pmg