(71B) Approximation for Tan(x) for the HP-71B
09-25-2017, 08:03 PM (This post was last modified: 09-27-2017 01:17 PM by Namir.)
Post: #1
 Namir Senior Member Posts: 771 Joined: Dec 2013
(71B) Approximation for Tan(x) for the HP-71B
This is an approximation for tan(x) using a sequence of polynomial coefficients that I found in a book "A Handbook of Integer Sequences" by A. J. A Sloane that presents numerous sequences of integers. The book does cover a few approximation to functions, including tan(x). Here is the code for the HP-71B. When you run the program, it prompts you to enter a value of X. The program then displays the calculated value of tan(x), pauses for 3 seconds, and then displays the %\$ error. The function offers excellent approximation for (0, 0.35). You can use trig identities to calculate the tan(x) for higher angles using accurate tan(x) for smaller x values, for example, using:

tan(x) = 2*tan(x/2)/(1 + tan(x/2)^2)

Here is the HP-71B listing.

Code:
10 REM TAN(X) APPROXIMATION 20 RADIANS @ N=12 30 DIM C(12) 40 FOR I = 1 TO N @ READ C(I) @ NEXT I 50 INPUT "X? ";X 60 S = 0 70 P = X 80 X2 = X * X 90 FOR I = 1 TO N 100 S = S + C(I) * P / FACT(2*I-1) 110 P = P * X2 120 NEXT I 130 DISP "TAN(";X;")=";S @ WAIT 3 140 T=TAN(X) 150 DISP "%ERR=";100*(T-S)/T 160 DATA 1, 2, 16, 272, 7936, 353792, 22368256 170 DATA 1903757312, 209865342976 180 DATA 29088885112832, 4.9514980531241E+15, 1.01542388650685E+18 190 END

Here is another version that combines the original sequence and the factorials

Here is the HP-71B listing.

Code:
10 REM TAN(X) APPROXIMATION 20 RADIANS @ N=12 30 DIM C(12) 40 FOR I = 1 TO N @ READ C(I) @ NEXT I 50 INPUT "X? ";X 60 S = 0 70 P = X 80 X2 = X * X 90 FOR I = 1 TO N 100 S = S + C(I) * P  110 P = P * X2 120 NEXT I 130 DISP "TAN(";X;")=";S @ WAIT 3 140 T=TAN(X) 150 DISP "%ERR=";100*(T-S)/T 160 DATA 1, 0.333333333333333, 0.133333333333333 162 DATA 0.053968253968254, 0.0218694885361552 164 DATA  0.0088632355299022, 0.00359212803657248 170 DATA 0.00145583438705132, 0.000590027440945586 180 DATA 0.000239129114243552, 0.0000969153795692946 182 DATA 0.0000392783238833167 190 END
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)