gerson@parc.xerox.com (Dan Gerson) (07/12/90)
Here is yet another version of the TVM calculations available on HP's financial calculators (the TVM equation was copied from the HP-12C manual). This displays all the variables' values when any are changed, and permits you to solve for any unknown given the other values. It also supports different number of compounding periods per year, giving annualize displays and inputs for the number of payments and interest rates. To use it, when you go into its directory, eval CST to get the custom menu. Then you can store into any variable by entering the number and then the menu item. Right-shifted menu items solves the variable. Left-shifted N or I permits you to enter annualized figures (similar to the blue shifted variables on the HP-12C). {N} is the number of payment periods, {I} is the interest rate per period, {PMT} is the payment per period, {PV} is the principal value, {FV} is the future value, and {N/YR} is the number of payment periods per year. You can also directly enter in values using the VAR menu if you don't want the display, using CST just to solve unknowns. I suppose this could have a better interface. Checksum: #B7B4h (I think. Alright, so I'm lazy.) Size: 1163 ------------------------------------------------------------ %%HP: T(3)A(D)F(.); DIR NPYR 12 N 0 I 0 PMT 0 PV 0 FV 0 DVALS \<< CLLCD RCLF 0 FIX " N = " N + " (" + 1 FIX N NPYR / + "yrs)" + 1 DISP 3 FIX " I = " I + " (" + I NPYR * + ")" + 2 DISP 2 FIX "PMT = " PMT + 3 DISP " PV = " PV + 4 DISP " FV = " FV + 5 DISP 0 FIX "N/yr= " NPYR + 6 DISP 3 FREEZE STOF \>> STOD \<< STO DVALS \>> CST { { "N" { \<< 'N' STOD \>> \<< NPYR * 'N' STOD \>> \<< 'N' TVM \>> } } { "I" { \<< 'I' STOD \>> \<< NPYR / 'I' STOD \>> \<< 'I' TVM \>> } } { "PMT" { \<< 'PMT' STOD \>> \<< 'PMT' STOD \>> \<< 'PMT' TVM \>> } } { "PV" { \<< 'PV' STOD \>> \<< 'PV' STOD \>> \<< 'PV' TVM \>> } } { "FV" { \<< 'FV' STOD \>> \<< 'FV' STOD \>> \<< 'FV' TVM \>> } } { "N/YR" { \<< 'NPYR' STOD \>> } } } TVM \<< 'EXP(-N*LNP1( I/100))' \-> ivar s \<< '-(.01*(s* FV+PV)/(1-s)*I)=PMT ' ivar 0 ROOT DVALS \>> \>> END