以编程方式计算APR(年百分比率)

Ben*_*Ben 6 algorithm objective-c

我试图找到一种方法来编程基于计算APR

  • 贷款总额
  • 支付金额
  • 付款数量
  • 还款频率

无需考虑任何费用.

可以假定固定利率,任何剩余金额都可以汇入最后一笔付款.

下面的公式是基于信用协议,总额为6000欧元的信用额度,每月24欧元,分别为274.11欧元.

在此输入图像描述

(上例中的APR为9.4%)

我正在寻找任何编程语言的算法,我可以适应C.

Jir*_*riz 3

我想你想X根据你的方程进行计算。这个方程可以写成

f(y) = y + y**2 + y**3 + ... + y**N - L/P = 0
Run Code Online (Sandbox Code Playgroud)

在哪里

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)
Run Code Online (Sandbox Code Playgroud)

现在,您需要求解方程f(y) = 0才能得到y。这可以例如使用牛顿迭代(伪代码)来完成:

y = 1  (some plausible initial value)
repeat 
    dy = - f(y) / f'(y)
    y += dy
until abs(dy) < eps 
Run Code Online (Sandbox Code Playgroud)

导数为:

f'(y) = 1 + 2*y + 3*y**2 + ... + N*y**(N-1)
Run Code Online (Sandbox Code Playgroud)

您可以计算f(y)f'(y)使用多项式的霍纳规则以避免求幂。导数很可能可以通过一些第一项来近似。找到后y,你会得到x

x = y**(-F) - 1
Run Code Online (Sandbox Code Playgroud)