|
We're glad you came by, but you might find what you're looking for elsewhere. TI-Basic Developer is not the site it once was. While its information on commands and other calculator features remains almost second-to-none, its forum, archives, and even hosting service, Wikidot, have been decaying for years. The calculator community would love to see what you're working on, or help you in your next coding adventure, but TI-Basic Developer is no longer the place to do it. Instead, you should head over to Cemetech (primarily American) or TI-Planet (primarily international). Both are active, well-established forums with their own archives, chatrooms, reference material, and abundant coding tools and resources. We'll see you there, we hope. |
Computes the net present value of money over a specified time period.
npv(interest rate,CF0,CFList[,CFFreq])
Press:
- 2nd FINANCE (on a TI-83) or APPS (TI-83+ or higher) to access the finance menu
- On the TI-83+ or higher, select the first option "Finance…" from the APPS menu
- 7 or use arrow keys to scroll to it
TI-83/84/+/SE
2 bytes
The npv( command computes the net present value of money over a specified time period. If a positive value is returned after executing npv(, that means it was a positive cashflow; otherwise it was a negative cashflow. The npv( command takes four arguments, and the fourth one is optional:
- interest rate — the percentage of the money that is paid for the use of that money over each individual period of time.
- CF0 — the initial amount of money that you start out with; this number must be a real number, otherwise you will get a ERR:DATA TYPE error.
- CFList — the list of cash flows added or subtracted after the initial money.
- CFFreq — the list of frequencies of each cash flow added after the initial money; if this is left off, each cash flow in the cash flow list will just appear once by default.
Sample Problem
Your mom recently opened a bank account for you, with $500 as a gift to start you off. This is welcome news to you, until you find out that the bank charges 5% as the interest rate for the account. So, you get a job at Rocco's Pizzas delivering pizzas, which brings in $1,000-$2,000 each month. For the last five months, in particular, you have earned $1,250, $1,333, $1,575, $1,100, and $1,900. (Assume there are no other expenses, such as gas, car payment, etc.)
Plugging in all of the different values into the npv( command, this is what our code looks like:
:npv(5,500,{1250,1333,1575,1100,1900Optimization
The npv( command's optional fourth argument should be left off if each cash flow of money in the list of cash flows just appears once.
:npv(5,1550,{2E3,3E3,4E3},{1,1,1
can be
:npv(5,1550,{2E3,3E3,4E3At the same time, if there are cash flows that occur multiple times, it can be smaller to just use the frequency argument:
:npv(8,0,{200,200,300,300,300
can be
:npv(8,0,{200,300},{2,3Formulas
Without a frequency list, the formula for npv( is the following:
(1)When a frequency list is used, the same formula can be applied if we expand the list with frequencies into a long list without frequencies. However, it's possible to do the calculation directly. We define the cumulative frequency Sj as the sum of the first j frequencies (S0 is taken to be 0):
(2)Error Conditions
- ERR:DATA TYPE is thrown if you try to use anything other than a real number for the interest rate.
- ERR:DIM MISMATCH is thrown if the list of cash flows and the list of cash flow frequencies have different dimensions.
Related Commands
.