¿Cuál es el algoritmo para calcular una función trigonométrica?

Bueno, depende de la función, y además, para cada función, hay una serie de algoritmos, pero aquí hay un algoritmo muy simple pero perfectamente suficiente para posiblemente la función trigonométrica más fundamental *:

La serie Taylor [math] \ displaystyle \ sum_ {n = 0} ^ {\ infty} \ frac {(ix) ^ {n}} {n!} [/ Math] converge al número complejo que representa la rotación por x radianes ( es decir, [matemáticas] \ cos (x) + i \ sin (x) [/ matemáticas]). Por lo tanto, al calcular esta serie con la precisión deseada, se obtienen los valores de [matemática] \ cos (x) [/ matemática] y [matemática] \ sin (x) [/ matemática] con la precisión deseada.

Pero, ¿qué tan lejos en la serie se necesita llegar para obtener esa precisión? Bueno, uno puede dar varios límites de error más flojos o más agudos para esto, pero una regla particularmente simple es que, según el teorema del resto de Lagrange, la diferencia entre la suma de los primeros términos [matemáticos] n [/ matemáticos] de esta serie y el el valor real de [math] \ cos (x) + i \ sin (x) [/ math] no es mayor en magnitud que [math] \ frac {| x | ^ n} {n!} [/ math], el magnitud del primer término omitido.

Armado con esta información, uno sabe hasta dónde extrapolar esta serie para calcular las expansiones decimales de [math] \ cos (x) [/ math] y [math] \ sin (x) [/ math] con la precisión deseada, y puede usar la aritmética racional para hacer precisamente eso. [Por supuesto, en la práctica de optimización, uno aumenta lo anterior con varios trucos inteligentes para mejorar el rendimiento, pero incluso la idea central como se presenta aquí ya es bastante útil (aunque uno debería al menos “normalizar” x grande a ángulos “equivalentes” más pequeños) , para una convergencia más rápida)]

(*: Bueno, quizás la función trigonométrica más fundamental es en realidad la rotación por x revoluciones, en lugar de la rotación por x radianes, pero es solo un factor de conversión bien conocido …)