Evaluates the modified internal rate of return for a schedule of periodic cash flows.
#include <imsl.h>
float
imsl_f_modified_internal_rate (int count, float values[],
float finance_rate, float reinvest_rate)
The type double function is imsl_d_modified_internal_rate.
int count
(Input)
Number of cash flows in values and count must greater
than one.
float values[]
(Input)
Array of size count of cash
flows.
float
finance_rate (Input)
Interest paid on the money
borrowed.
float
reinvest_rate (Input)
Interest rate received on the cash
flows.
The modified internal rate of return for a schedule of periodic cash flows. If no result can be computed, NaN is returned.
Function imsl_f_modified_internal_rate 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.
It also eliminates the multiple rates of return problem.
It is computed using the following:

where pnpv is calculated from imsl_f_net_present_value for positive values in values using reinvest_rate, and where nnpv is calculated from imsl_f_net_present_value for negative values in values using finance_rate.
In this example, imsl_f_modified_internal_rate 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.
#include <stdio.h>
#include "imsl.h"
void main()
{
float value[] = { -4500., -800., 800., 800., 600., 600., 800.,
800., 700., 3000. };
float finance_rate = .08;
float reinvest_rate = .055;
float mirr;
mirr = imsl_f_modified_internal_rate (10, value, finance_rate,
reinvest_rate);
printf ("After 9 years, the modified internal rate of return ");
printf ("on the cows is %.2f%%.\n", mirr * 100.);
}
After 9 years, the modified internal rate of return on the cows is 6.66%.
|
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |