Расчет APR с использованием Newton Raphson в php
Я пытаюсь рассчитать APR, используя Ньютона Рафсона в PHP. Я изменил код из этого вопроса в php
Расчет годовой процентной ставки (нужна помощь с унаследованным кодом)
Однако формула в этом вопросе основана на первоначальной основной сумме, периодических ежемесячных платежах и общем количестве платежей. Мне нужно, чтобы мои расчеты в АТР включали первоначальный взнос. Это будет добавлено к первому ежемесячному платежу, означающему, что ежемесячные платежи больше не являются одинаковыми. Я полагаю, что это изменит исходную формулу и, следовательно, ее производную. Я понятия не имею, что использовать сейчас в качестве исходной формулы или как изменить это
Вот php
$numPay = 12;
$payment = 875;
$amount = 10000;
$error = pow(10,-5);
$approx = 0.05/12; // let's start with a guess that the APR is 5%
$prev_approx;
function f($x) {
global $numPay;
global $payment;
global $amount;
global $error;
return $amount * $x * (pow(1 + $x,$numPay)/(pow(1 + $x, $numPay) - 1)) - $payment;
}
function f_prime($x) {
global $numPay;
global $payment;
global $amount;
global $error;
return $amount * (pow(1 + $x,$numPay)/(-1 + pow(1 + $x,$numPay)) - $numPay * $x * pow(1 + $x,-1 + 2*$numPay)/pow(-1 + pow(1 + $x,$numPay),2) + $numPay * $x * pow(1 + $x,-1 + $numPay)/(-1 + pow(1 + $x,$numPay)));
}
echo f($approx) . "<br/>";
echo f_prime($approx) . "<br/>";
echo "initial guess $approx" . "<br/>";
for ($k=0;$k<20; $k++) {
$prev_approx = $approx;
$approx = $prev_approx - (f($prev_approx)/f_prime($prev_approx));
$diff = abs($approx-$prev_approx);
echo "new guess $approx diff is $diff <br/>";
if ($diff < $error) break;
}
$apr = round($approx * 12 * 10000 /100, 1); // this way we get APRs like 7.5% or 6.55%
echo "apr is $apr %";
Заранее благодарю за любую помощь
1 ответ
Если он просто добавлен к первому ежемесячному платежу как константа, просто... ну, добавьте его к первому ежемесячному сроку из расчетов. Ведь график платежей и проценты должны быть одинаковыми, это просто дополнительный платеж в первый срок. Это не влияет на другие платежи или общую сумму, подлежащую возврату с течением времени, так как это всего лишь комиссия.