(42S) TVM Program for HP 42S - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Software Libraries (/forum-10.html) +--- Forum: General Software Library (/forum-13.html) +--- Thread: (42S) TVM Program for HP 42S (/thread-1387.html) (42S) TVM Program for HP 42S - Ender - 05-23-2014 11:02 AM [attachment=684]A TVM program for HP 42S. RE: TVM Program for HP 42S - Jeff_Kearns - 05-25-2014 03:10 PM (05-23-2014 11:02 AM)Ender Wrote:  A TVM program for HP 42S. There is a much shorter (albeit less extravagant) 31 step version here for those who don't wish to enter 253 lines of code: An accurate TVM equation written as a program for the HP42S Solver. n number of periods i interest rate PMT periodic payment PV present value FV future value B/E BEGIN/END Solve equation: PMT*(i1-1)*(1/i+p)+PV*i1+FV=0 where (i1-1) = e1^(n*ln1(i)) and i1 = e^(n*ln1(i)) and ln1(x) = ln(1+x) and e1(x) = e^x-1 p=0 for END, p=1 for BEGIN The use of ln1+x and e^x-1 prevents the loss of significant digits for small values of i. Consider these extreme examples for accuracy checking: Example 1: n=63 i=0.00000161 PV=0 PMT=-1,000,000 END Mode (set B/E=0 in Solver) Solving for FV: HP 42S: 63,000,031.4434 (correct is 63,000,031.4433) Example 2: n=31536000 i=10/n PV=0 PMT=-0.01 END Mode Solving for FV: HP 42S: 331,667.006689 (correct is 331,667.006691) You might compare these results using the "normal" TVM equation, found in many manuals E.g. using the TVM equation in the 42S manual, we get 62,921,744.4422 and 311,565.594018 respectively. The program: 00 {91-Byte Prgm } 01 LBL "TVM" 02 MVAR "N" 03 MVAR "I%" 04 MVAR "PV" 05 MVAR "PMT" 06 MVAR "FV" 07 MVAR "B/E" 08 RCL "I%" 09 100 10 / 11 LN1+X 12 RCL* "N" 13 E^X-1 14 RCL* "PMT" 15 RCL "I%" 16 100 17 / 18 1/X 19 RCL+ "B/E" 20 * 21 RCL "PV" 22 RCL "I%" 23 100 24 / 25 LN1+X 26 RCL* "N" 27 E^X 28 * 29 + 30 RCL+ "FV" 31 END RE: TVM Program for HP 42S - Werner - 05-25-2014 07:34 PM This is my version. Shorter, and also works for I%=0: Code: ```00 { 78-Byte Prgm } 01*LBL "TVM" 02 MVAR "N" 03 MVAR "i%" 04 MVAR "PV" 05 MVAR "PMT" 06 MVAR "FV" 07 MVAR "BEG" 08 RCL "i%" 09 X=0? 10 1 E-99 11 1 12 X<>Y 13 % 14 ENTER 15 LN1+X 16 RCL* "N" 17 E^X-1 18 STO+ ST Z 19 RCL* "PMT" 20 X<>Y 21 1/X 22 RCL+ "BEG" 23 * 24 X<>Y 25 RCL* "PV" 26 + 27 RCL+ "FV" 28 END``` Cheers, Werner