pvvar
Present value of varying cash flow
Description
calculates present value of a varying cash flow.PresentVal
= pvvar(CashFlow
,Rate
)
adds an optional argument for PresentVal
= pvvar(___,CFDates
)CFDates
.
Examples
Calculate Present Value for Regular and Irregular Cash Flow
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
Input Arguments
CashFlow
— Cash flow amounts
vector
Cash 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 rate
decimal
Periodic 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
datetime array | string array | cell array of date character vectors | serial date numbers
(Optional) Indicates irregular cash flow, specified as a datetime array, string array, cell array of date character vectors, or vector of serial date numbers 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
| string
| char
| datetime
Output Arguments
PresentVal
— Present value
numeric
Present value, returns the net present value of a varying cash flow. Present value is calculated at the time the first cash flow occurs.
Version History
Introduced before R2006a
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)