我試圖找到基於計算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