I've used the
Code Analyzer for HP Calculators with the following
Python program:
Code:
def sin_cos_tan(x):
global X, Y, Z, T, L
X = x
# sin
STO(0)
DUP()
MUL()
number(20)
DIV()
number(1)
ADD()
RECIPROCAL()
number(10)
MUL()
number(7)
SUB()
RCL(0)
number(3)
DIV()
MUL()
STO(1)
# cos
RCL(0)
DUP()
MUL()
number(30)
DIV()
number(1)
ADD()
RECIPROCAL()
number(5)
MUL()
number(3)
SUB()
RCL(0)
DUP()
MUL()
number(4)
CHS()
DIV()
MUL()
number(1)
ADD()
STO(2)
# tan
RCL(1)
SWAP()
DIV()
x = symbols("x")
sin_cos_tan(x)
This is mostly a verbatim translation of your program.
Make sure to import the
sympy library block before running it.
We can then use the
series function to compare the trigonometric functions with their approximations:
Code:
from sympy import series, sin, cos, tan
# sin
print(latex(R[1]))
print(latex(series(R[1], x, 0, 11)))
print(latex(series(sin(x), x, 0, 11)))
# cos
print(latex(R[2]))
print(latex(series(R[2], x, 0, 11)))
print(latex(series(cos(x), x, 0, 11)))
# tan
print(latex(X))
print(latex(series(X, x, 0, 11)))
print(latex(series(tan(x), x, 0, 11)))
This results in the following output:
\frac{x \left(-7 + \frac{10}{\frac{x^{2}}{20} + 1}\right)}{3}
x - \frac{x^{3}}{6} + \frac{x^{5}}{120} - \frac{x^{7}}{2400} + \frac{x^{9}}{48000} + O\left(x^{11}\right)
x - \frac{x^{3}}{6} + \frac{x^{5}}{120} - \frac{x^{7}}{5040} + \frac{x^{9}}{362880} + O\left(x^{11}\right)
- \frac{x^{2} \left(-3 + \frac{5}{\frac{x^{2}}{30} + 1}\right)}{4} + 1
1 - \frac{x^{2}}{2} + \frac{x^{4}}{24} - \frac{x^{6}}{720} + \frac{x^{8}}{21600} - \frac{x^{10}}{648000} + O\left(x^{11}\right)
1 - \frac{x^{2}}{2} + \frac{x^{4}}{24} - \frac{x^{6}}{720} + \frac{x^{8}}{40320} - \frac{x^{10}}{3628800} + O\left(x^{11}\right)
\frac{x \left(-7 + \frac{10}{\frac{x^{2}}{20} + 1}\right)}{3 \left(- \frac{x^{2} \left(-3 + \frac{5}{\frac{x^{2}}{30} + 1}\right)}{4} + 1\right)}
x + \frac{x^{3}}{3} + \frac{2 x^{5}}{15} + \frac{43 x^{7}}{800} + \frac{3133 x^{9}}{144000} + O\left(x^{10}\right)
x + \frac{x^{3}}{3} + \frac{2 x^{5}}{15} + \frac{17 x^{7}}{315} + \frac{62 x^{9}}{2835} + O\left(x^{11}\right)
Sine
Formula
\[
s(x) = \frac{x \left(-7 + \frac{10}{\frac{x^{2}}{20} + 1}\right)}{3}
\]
Taylor Series
\[
s(x) = x - \frac{x^{3}}{6} + \frac{x^{5}}{120} - \frac{x^{7}}{2400} + \frac{x^{9}}{48000} + O\left(x^{11}\right)
\]
\[
\sin(x) = x - \frac{x^{3}}{6} + \frac{x^{5}}{120} - \frac{x^{7}}{5040} + \frac{x^{9}}{362880} + O\left(x^{11}\right)
\]
Cosine
Formula
\[
c(x) = - \frac{x^{2} \left(-3 + \frac{5}{\frac{x^{2}}{30} + 1}\right)}{4} + 1
\]
Taylor Series
\[
c(x) = 1 - \frac{x^{2}}{2} + \frac{x^{4}}{24} - \frac{x^{6}}{720} + \frac{x^{8}}{21600} - \frac{x^{10}}{648000} + O\left(x^{11}\right)
\]
\[
\cos(x) = 1 - \frac{x^{2}}{2} + \frac{x^{4}}{24} - \frac{x^{6}}{720} + \frac{x^{8}}{40320} - \frac{x^{10}}{3628800} + O\left(x^{11}\right)
\]
Tangent
Formula
\[
t(x) = \frac{x \left(-7 + \frac{10}{\frac{x^{2}}{20} + 1}\right)}{3 \left(- \frac{x^{2} \left(-3 + \frac{5}{\frac{x^{2}}{30} + 1}\right)}{4} + 1\right)}
\]
Taylor Series
\[
t(x) = x + \frac{x^{3}}{3} + \frac{2 x^{5}}{15} + \frac{43 x^{7}}{800} + \frac{3133 x^{9}}{144000} + O\left(x^{11}\right)
\]
\[
\tan(x) = x + \frac{x^{3}}{3} + \frac{2 x^{5}}{15} + \frac{17 x^{7}}{315} + \frac{62 x^{9}}{2835} + O\left(x^{11}\right)
\]
These are very good approximations.
How did you come up with these?
Somewhat related are
Bhaskara's Sine and Cosine Approximations.