No creo que esto sea una duda simples pero estoy haciendo simulaciones fisicas en tiempo real y estoy ahora mismo con un modelo no lineal con el que el metodo numero de rk4 (Runge-Kutta 4) me da resultados raros dependiendo de las propiedades del sistema.
Despues de indagar mas en el tema de metodos númericos para resolver EDOs hice una implementacion en matlab en la que con 2 vectores puedo hacer cualquier metodo de runge-kutta (partiendo de la tabla de butcher).
Asi mismo, decidi probar las 2 soluciones de step fijo del dormand-prince (siendo una de O((h{4})) y la otra de O((h{5}))). Y siguen sin darme un resultado satisfactorio (con steps de 1/30 y 1/60), asi que me he propuesto hacer una implementacion completa del dormand-prince en matlab para despues pasarlo a C# en caso de asi obtener un resultado satisfactorio.
Intenté mirar la implementacion del DOPRI15 (en fortan) pero no entiendo nada ._.
Asi que bueno, me gustaria saber un buen metodo para decidir el step variable. El objetivo es calcular el estado cada 1/30 segundos (pues la simulacion es mostrada en pantalla a 30 frames por segundos), asi que el step maximo es 1/30.
Asi que tengo el estado en t-1, las 2 soluciones de dormand-prince en t y quiero elegir el step que voy a usar hasta t+1 dependiendo de la diferencia entre las 2 soluciones de dormand-prince. (aunque en caso de que el error estimado sea demasiado grande deberia de repetir la simulacion desde t-1 hasta t con un nuevo step mas pequeño, no?).