presentValueSchedule¶
Evaluates the present value for a schedule of cash flows. It is not necessary that the cash flows be periodic.
Synopsis¶
presentValueSchedule (rate, values, dates)
Required Arguments¶
- float
rate
(Input) - Interest rate.
- float
values[]
(Input) - Array of size
count
of cash flows. - struct tm
dates[]
(Input) - Array of size
count
of dates cash flows are made. For a more detailed discussion on dates see the Usage Notes section of this chapter.
Return Value¶
The present value for a schedule of cash flows that is not necessarily periodic. If no result can be computed, NaN is returned.
Description¶
Function presentValueSchedule
computes the present value for a schedule
of cash flows that is not necessarily periodic.
It can be found by solving the following:
count∑i=1valuei(1+rate)(di−d1)/365
In the equation above, di represents the i-th payment date, d1 represents the 1st payment date, and valuei represents the i-th cash flow.
Example¶
In this example, presentValueSchedule
computes the present value of 3
payments, $1,000, $2,000 and $1,000, with an interest rate of 5% made on
January 3, 1997, January 3, 1999 and January 3, 2000.
from __future__ import print_function
from numpy import *
from datetime import date
from pyimsl.math.presentValueSchedule import presentValueSchedule
rate = 0.05
values = [1000., 2000., 1000.]
dates = [date(1997, 1, 3),
date(1999, 1, 3),
date(2000, 1, 3)]
xnpv = presentValueSchedule(rate, values, dates)
print("The present value of the cash flows is $%.2f." % (xnpv))
Output¶
The present value of the cash flows is $3677.90.