NumPy: NaN в расчете ipmt только для значения 15 - PullRequest
0 голосов
/ 02 апреля 2020

Я закодировал какое-то погашение l oop с фиксированным годовым погашением и годовой скорректированной процентной нагрузкой. В рамках расчета процентной нагрузки я всегда получаю RuntimeWarning, если у меня есть значение nper 15, потому что оно рассчитывается для 6-го периода / года NaN (см. Рисунок ниже).

Для всех других значений nper, которые я тестировал, это работает хорошо.

Вот мой код:

import numpy as np

Project_period = 20
Loan_term = 15
grace_period = 0
nper = Loan_term - grace_period #repayment period

pv = 21173500 #present value
fv = 0 #future value
rate = 0.025
Repayment_yearly_P75 = pv / nper
expenses_Interest = []

Year_of_operation = 1


while pv > 0 or Year_of_operation <= Project_period:
    if pv > 0:
        Interest_burden = np.ipmt(rate, 1, nper, pv, fv, when=0)
    else:
        Interest_burden = 0.0
    print(Year_of_operation, pv, abs(Interest_burden))
    nper = nper - Year_of_operation
    if Year_of_operation > grace_period and pv > 0:
        pv = pv - Repayment_yearly_P75
    else:
        pv = pv
    expenses_Interest.append(abs(Interest_burden))
    if pv < 0:
        pv = 0
    else:
        pass
    Year_of_operation += 1

Кто-нибудь знает, в чем проблема?

enter image description here

...