#Hoy quiero comentar una #curiosidad que ilustra muy bien cómo aprovechar una fórmula con ingenio
¿Has pensado alguna vez cómo hace una calculadora para calcular el seno de un ángulo?
Siguen 14 tuits ⬇️⬇️⬇️
Lo que se le suele ocurrir a todo el mundo es incluir tablas más o menos detalladas con alguna regla de interpolación
Y también acudir a expresiones matemáticas que permiten aproximar el valor del seno de x usando polinomios
Hoy en día no hay grandes restricciones de memoria ni de capacidad de cálculo en las calculadoras que usan los estudiantes
Pero no hace mucho había que optimizar ambos factores
Lo que sigue es una forma muy ingeniosa de conseguirlo
Primero vamos a recordar la representación del seno y coseno en el círculo unidad
Y unas fórmulas que permiten obtener los valores del seno y coseno de un ángulo a partir de los valores de otro ángulo
Habrás visto que el seno y el coseno pueden verse como las componentes de un vector unitario que forma un ángulo alfa
Y que haciendo una multiplicación matricial podemos “rotarlo” un ángulo beta que, por cierto, puede ser positivo o negativo
Esa expresión va a ser muy útil porque dado un ángulo cualquiera, podemos llegar a él a partir de ángulos conocidos
Fíjate
En el GIF anterior limitamos la posición del vector
Primero vimos que era mayor de 45º, por lo que nos ubicamos a mitad de camino entre 45º y 90º (67.5º)
Allí vimos que el ángulo de nuestro vector es menor, por lo que nos ubicamos a mitad de camino entre 67.5º y 45º
Repitiendo el proceso con la mitad de incremento de ángulo en cada paso, nos acercarnos al ángulo buscado tanto como queramos
Y como podemos hacerlo siempre con los ángulos 45, 45/2, 45/4, … la fórmula que vimos para rotar un vector nos llevará al seno y al coseno del ángulo
Aquí tienes unos ejemplos que he calculado para convencerte
Usa 20 pasos y proporciona el valor correcto con 5 decimales
Pero es posible optimizar la tabla y los cálculos necesarios
De nuevo, la trigonometría proporciona unas fórmulas muy útiles
Con la expresión obtenida en el GIF anterior se han logrado dos cosas
- Necesitar únicamente el valor de la tangente
- Sacar un factor común fuera de la matriz de rotación que no depende del sentido de giro
La ventaja de la primera es evidente pero la segunda permite olvidarse de ese cálculo de raíz cuadrada.
Si el número de pasos es fijo, podemos tener pre-calculado el valor resultante y aplicarlo al final del proceso
Pero hay más
Hemos conseguido una matriz compuesta sólo por 1 y tangente de beta
¿Y si hacemos que la tangente de beta sea 1/2, 1/4, 1/8 …?
No es tan eficaz como usar la mitad de ángulo pero ¡dividir por potencias de 2 en binario está chupado! y nos ahorramos las tangentes
Es decir, podemos calcular el valor del seno de un ángulo con una precisión de 5 decimales usando una tabla con 20 valores (los ángulos incrementales) y el factor de ajuste final
¿No es ingenioso?
Aquí tienes los ejemplos de antes añadiendo en naranja el cálculo optimizado
Ojo, para que la comparación anterior fuera justa, no se incluía el “truco” de aplicar el factor corrector al final
FIN
Gracias por leer
¿te gustó?
¿lo conocías?
Por cierto, este algoritmo se llama CORDIC (COordinate Rotation DIgital Computer) por si quieres investigar más
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Este es el hilo prometido en reacción a lo comentado por Omar Montes en el programa El Hormiguero sobre que las matemáticas no valen para nada
Es un ejemplo curioso de lo importante que puede ser calcular una raíz cuadrada
Siguen 8 tuits (+1 bonus) ⬇️
El 2 de diciembre de 1999 salía al mercado el videojuego Quake III Arena
Evolución de aquella primera versión Quake de junio de 1996 que empleaba verdaderos modelos 3D tanto para los jugadores y enemigos como para el mundo en el que se desenvuelven
Espectacular ¿verdad?
Hacer eso en un PC o consola de la época requería mucho ingenio que se plasmaba en curiosos trucos y optimizaciones
Quizá la más famosa sea la usada para calcular el inverso de la raíz cuadrada de un número
Tampoco de aquellos juguetes de los años 60 como DigiComp I (3 flip-flops mecánicos y programables) y DigiComp II (que no es programable pero permite hacer operaciones haciendo caer canicas por una estructura)
Tampoco hablaré de ordenadores construidos “dentro de ordenadores”
Sí, hay quien ha logrado construir ordenadores en el juego de la vida de Conway, en el PowerPoint y en el Minecraft
Hoy voy a comentar sobre el desarrollo en serie de Taylor
Mostraré ejemplos en los que se puede hacer sin fórmula (incluso algunos sin derivar) y una relación sorprendente y bellísima con un resultado (de Newton nada menos)
¿Te apetece? (van 7 tuits) 👇
Sabrás que el desarrollo en serie de Taylor permite aproximar una función en torno a un punto mediante un polinomio
Yo usaré la aproximación en torno al 0
Se obtiene con esta fórmula y básicamente requiere obtener el valor de las derivadas (primera, segunda, ...) de la función
A veces se puede obtener sin conocer la fórmula
El caso típico es la función exponencial
Sabemos que vale 1 en x=0 y que su derivada es ella misma
¿Podemos obtener el polinomio sólo con eso?
Sí, fíjate en este GIF
Se deriva el polinomio y se van igualando los coeficientes