Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Un doble péndulo en 100 líneas de Javascript

Simular algunos procesos físicos en la computadora requieren, en ocasiones, de “engines” que ya consideren cómo se comportan las leyes de la física en la...

doble-pendulo00

Simular algunos procesos físicos en la computadora requieren, en ocasiones, de “engines” que ya consideren cómo se comportan las leyes de la física en la mecánica newtoniana, por ejemplo. De hecho, esto puede verse en Angry Birds, cuyo motor de simulación física es estupendo. Lo interesante en este caso es simular, por ejemplo, un doble péndulo sin usar ningún motor de la física newtoniana. No parece fácil, pero se ha hecho en unas 100 líneas de Javascript.

El péndulo doble es interesante porque es un sistema físico simple que tiene un comportamiento sorprendentemente complejo. Muestra sensibilidad a las condiciones iniciales y puede considerarse caótico para ciertas configuraciones estándar. Micael Oliviera inició un proyecto llamado “physics-sandbox”, con la idea de crear una serie de demostraciones físicas y la primera es la del doble péndulo, la cual puede verse más en su sitio web.

Desde el punto de vista de la teoría del caos, lo que es interesante es qué tan frecuente el péndulo de abajo hace un ciclo completo. Es muy difícil de predecir si esto ocurrirá o cuando el bucle se generará. Por lo que hay que estar atentos para ver cuando el bucle ocurra.

Si se quiere saber más sobre la teoría del caos y estas cuestiones, vaya al sitio de Micael en donde da las explicaciones correspondientes. Toma el enfoque lagrangiano y después de trabajar con este objeto matemático, lo pone en términos de ecuaciones de movimiento, lo que termina siendo algo que se ve horrible. Las ecuaciones dan la aceleración angular como una función de la posición angular y de la velocidad.

La potencia de la programación es que cuando incluso, no se puede hallar una forma cerrada para la posición como una función del tiempo, se puede entonces simular el sistema. En este caso no hay nada mejor que el método de Euler: la nueva posición se calcula considerando la posición anterior más la velocidad relevante, multiplicada por los pasos temporales usados, y la nueva velocidad es la vieja velocidad multiplicada por la aceleración relevante multiplicada ésta por los pasos de tiempo en la simulación.

Se puede ver una versión del programa en la página de Micael en donde se puede intentar la simulación con diferentes configuraciones iniciales. El código está en GitHub.

Referencias:

Doble péndulo
Teoría del doble péndulo

Comentarios