modifiedInternalRate¶
Evaluates the modified internal rate of return for a schedule of periodic cash flows.
Synopsis¶
modifiedInternalRate (values, financeRate, reinvestRate)
Required Arguments¶
- float
values[]
(Input) - Array of size
count
of cash flows. - float
financeRate
(Input) - Interest paid on the money borrowed.
- float
reinvestRate
(Input) - Interest rate received on the cash flows.
Return Value¶
The modified internal rate of return for a schedule of periodic cash flows. If no result can be computed, NaN is returned.
Description¶
Function modifiedInternalRate
computes the modified internal rate of
return for a schedule of periodic cash flows. The modified internal rate of
return differs from the ordinary internal rate of return in assuming that
the cash flows are reinvested at the cost of capital, not at the internal
rate of return.
The modified internal rate of return also eliminates the multiple rates of return problem.
It is computed using the following:
where pnpv is calculated from netPresentValue
for positive values in
values
using reinvestRate
, and where nnpv is calculated from
netPresentValue
for negative values in values
using financeRate
.
Example¶
In this example, modifiedInternalRate
computes the modified internal
rate of return for an investment of $4,500 with cash flows of -$800, $800,
$800, $600, $600, $800, $800, $700 and $3,000 for 9 years.
from __future__ import print_function
from numpy import *
from pyimsl.math.modifiedInternalRate import modifiedInternalRate
values = [-4500., -800., 800., 800., 600.,
600., 800., 800., 700., 3000.]
finance_rate = .08
reinvest_rate = .055
mirr = modifiedInternalRate(values, finance_rate, reinvest_rate)
print("After 9 years, the modified internal rate of return")
print("on the cows is %.2f%%." % (mirr * 100.))
Output¶
After 9 years, the modified internal rate of return
on the cows is 6.66%.