Function InvestmentConstantRateAll(PresentValue, FutureValue, Payment, NumberPeriods, Type, Mode, NumberSolutions, Solutions)

# InvestmentConstantRateAll

The procedure InvestmentConstantRateAll returns the interest rate(s) for an investment based on periodic, constant payments and a constant interest rate.

InvestmentConstantRateAll(
PresentValue,            ! (input) numerical expression
FutureValue,             ! (input) numerical expression
Payment,                 ! (input) numerical expression
NumberPeriods,           ! (input) numerical expression
Type,                    ! (input) numerical expression
Mode,                    ! (input) numerical expression
NumberSolutions,         ! (output) numerical expression
Solutions                ! (output) one-dimensional parameter
)


## Arguments

PresentValue

The total amount that a series of future payments is worth at this moment. PresentValue must be a real number.

FutureValue

The cash balance you want to attain after the last payment is made. FutureValue must be a real number.

Payment

The periodic payment for the investment. Payment must be a real number.

NumberPeriods

The total number of payment periods for the investment. NumberPeriods must be a positive integer.

Type

Indicates when payments are due. $$Type = 0$$: Payments are due at the end of each period. $$Type = 1$$: Payments are due at the beginning of each period.

Mode

Indicates whether all the solutions need to be found or just one. $$Mode = 0$$: the search for solutions stops after one solution is found. $$Mode = 1$$: the search for solutions continues till all solutions are found.

NumberSolutions

The number of solutions found. If $$Mode = 0$$ NumberSolutions will always be $$1$$.

Solutions

There is not always a unique solution for InterestRate. Dependent on Mode one solution or all the solutions will be given. Solutions smaller than $$-1$$ are not supposed to be relevant, so the search for solutions is limited to the area greater than $$-1$$.

Note

• When you want to use this procedure in an objective function or constraint you have to use InvestmentConstantRate.

• The function InvestmentConstantRateAll is similar to the Excel function RATE.

## Example

Given the local declarations:

Parameter _p_noSol;
Set _s_solutionNumbers {
SubsetOf: Integers;
Index: _i_solNo;
}
Parameter _p_sols {
IndexDomain: _i_solNo;
}


All solutions to InvestmentConstantRate can be obtained using

_s_solutionNumbers := ElementRange(1,100);
InvestmentConstantRateAll(
PresentValue    :  -100,
FutureValue     :  0,
Payment         :  10,
NumberPeriods   :  13,
type            :  0,
Mode            :  1,
NumberSolutions :  _p_noSol,
Solutions       :  _p_sols );
block where single_column_display := 1, listing_number_precision := 6 ;
display _p_noSol, _p_sols ;
endblock ;


In this particular example there is only one solution:

_p_noSol := 1 ;

_p_sols := data
{ 1 : 0.039769 } ;


## References

• General equations for investments with constant, periodic payments.