Present value of varying cash flow
calculates present value of a varying cash flow.PresentVal = pvvar(CashFlow,Rate)
adds an optional argument for PresentVal = pvvar(___,CFDates)CFDates.
Calculate the net present value for a regular and irregular cash flow.
Regular Cash Flow
This cash flow represents the yearly income from an initial investment of $10,000. The annual interest rate is 8%.
Year 1 - $2000
Year 2 - $1500
Year 3 - $3000
Year 4 - $3800
Year 5 - $5000
To calculate the net present value of this regular cash flow:
PresentVal = pvvar([-10000 2000 1500 3000 3800 5000], 0.08)
PresentVal = 1.7154e+03
Irregular Cash Flow
An investment of $10,000 returns this irregular cash flow. The original investment and its date are included. The periodic interest rate is 9%.
January 12, 1987 - ($1000)
February 14, 1988 - $1500
March 3, 1988 - $2000
June 14, 1988 - $3000
December 1, 1988 - $4000
To calculate the net present value of this irregular cash flow:
CashFlow = [-10000, 2500, 2000, 3000, 4000]; CFDates = ['01/12/1987' '02/14/1988' '03/03/1988' '06/14/1988' '12/01/1988']; PresentVal = pvvar(CashFlow, 0.09, CFDates)
PresentVal = 142.1648
The net present value of the same investment under different discount rates of 7%, 9%, and 11% is obtained by:
PresentVal = pvvar(repmat(CashFlow,3,1)', [.07 .09 .11], CFDates)
PresentVal = 1×3
419.0136 142.1648 -122.1275
CashFlow — Cash flow amountsCash flow amounts, specified as a vector of varying cash flows. Include the initial
investment as the initial cash flow value (a negative number). If
CashFlow is a matrix, each column is treated as a separate
cash-flow stream.
Data Types: double
Rate — Periodic interest ratePeriodic interest rate, specified as a decimal. If CashFlow is
a matrix, a scalar Rate is allowed when the same rate applies to all
cash-flow streams in CashFlow. When multiple cash-flow streams
require different discount rates, Rate must be a vector whose length
equals the number of columns in CashFlow.
Data Types: double
CFDates — Indicates irregular cash flow(Optional) Indicates irregular cash flow, specified as a vector of serial date numbers, cell array of date character vectors, or datetime arrays on which the cash flows occur.
Specify CFDates when there are irregular (nonperiodic) cash
flows. The default assumes that CashFlow contains regular
(periodic) cash flows. If CashFlow is a matrix, and all cash-flow
streams share the same dates, CFDates can be a vector whose length
matches the number of rows in CashFlow. When different cash-flow
streams have different payment dates, specify CFDates as a matrix the
same size as CashFlow.
Data Types: double | cell | char | datetime
PresentVal — Present valuePresent value, returns the net present value of a varying cash flow. Present value is calculated at the time the first cash flow occurs.
You have a modified version of this example. Do you want to open this example with your edits?