Comparativa de Lenguajes de Programación para el Análisis Dinámico de Sistemas Multicuerpo: Julia vs. Matlab - Gismeros Moreno, Raúl; Zapata Castillo, David; Corral Abad, Eduardo; Gómez García, María Jesús; Meneses Alonso, Jesús (Anales de Ingeniería Mecánica, 2025)
Julia es un lenguaje de programación de alto rendimiento y código abierto que ha ganado una gran popularidad en los últimos años, tanto en el ámbito académico como en la industria, por su idoneidad para aplicaciones de análisis numérico, data science y machine learning. Julia combina la velocidad propia de lenguajes de bajo nivel como C con la facilidad de aprendizaje y uso de los códigos de alto nivel como Python, convirtiéndolo en una opción atractiva para ciertas aplicaciones computacionalmente pesadas. Se considera un lenguaje “compilado just-in-time”, lo que lo ubica a medio camino entre los códigos interpretados y aquellos estrictamente compilados. Actualmente, Julia está ampliando su comunidad mayoritariamente en ámbitos científicos e investigadores debido a que su sintaxis resulta familiar para los usuarios, lo que hace que su aprendizaje sea relativamente sencillo. En este contexto, se ha planteado su aplicación al análisis dinámico de sistemas multicuerpo complejos, en los que se consideran fenómenos de contacto/impacto entre sus diferentes elementos constitutivos. Para ello, se ha adaptado un código in-house existente, definido en lenguaje Matlab®, utilizado por diferentes grupos de investigación, tanto nacionales como internacionales, en una amplia variedad de temas de estudio. Uno de los principales cuellos de botella identificados en la resolución de este tipo de problemas radica en la capacidad de los integradores destinados a resolver las Ecuaciones Diferenciales Ordinarias (ODE, en inglés). La librería de Julia a este respecto destaca por su alto nivel de optimización y capacidad de modificación frente a los ODE solver de Matlab®, que resultan más amigables para los usuarios principiantes. En este trabajo, se han definido varios modelos en ambos lenguajes para su comparación. Estos modelos incluyen diferentes características presentes de forma general en los sistemas multicuerpo, como pueden ser los elementos muelle-amortiguador-actuador, las juntas cinemáticas o las fuerzas de contacto/impacto. Los resultados obtenidos muestran reducciones considerables del coste computacional en Julia con respecto a Matlab®, manteniendo altos niveles de precisión. En este punto, se plantea la simulación de un sistema mecánico complejo con múltiples interacciones simultáneas de contacto/impacto con disipación de energía.