Какой численный метод используется в этой реализации IRR?

На сайте ActiveState Recipes есть функция, реализующая Внутреннюю норму доходности в Python:

def irr(cashflows, iterations=100):
    """The IRR or Internal Rate of Return is the annualized effective 
       compounded return rate which can be earned on the invested 
       capital, i.e., the yield on the investment.

       >>> irr([-100.0, 60.0, 60.0, 60.0])
       0.36309653947517645
    """
    rate = 1.0
    investment = cashflows[0]
    for i in range(1, iterations+1):
        rate *= (1 - npv(rate, cashflows) / investment)
    return rate

Этот код возвращает правильные значения (при по крайней мере для пары примеров, которые я проверил в Excel), но я хотел бы знать , почему .

  • Похоже, это не реализация метода Ньютона (без производной) или секущей Метод (отслеживает только одну итерацию).
  • В частности, определение инвестиционной переменной как первого элемента денежного потока (и его последующее использование) сбивает меня с толку.

Есть идеи?

6
задан wk2752 31 July 2011 в 23:00
поделиться