Tengo un sistema de ecuaciones diferenciales ordinarias: 7 ecuaciones y ~ 30 parámetros que gobiernan su comportamiento como parte de un modelo matemático de transmisión de enfermedades. Me gusta encontrar los estados estacionarios de esas ecuaciones Cambiar dx/dt = rest of the equation
a 0 = equation
para cada una de las ecuaciones hace que sea un problema de álgebra sencilla. Esto podría hacerse a mano, pero soy ridículamente malo en ese tipo de cálculo.
He intentado usar Mathematica, que puede manejar versiones más pequeñas de este problema ( ver aquí ), pero Mathematica está deteniéndose en este problema. ¿Existe una forma más eficiente / efectiva de abordar esto? ¿Un sistema matemático simbólico más eficiente? ¿Otras sugerencias?
Algunas actualizaciones (21 de marzo):
- El objetivo es resolverlos simbólicamente: las respuestas numéricas son buenas, pero por el momento el objetivo final es la versión simbólica.
- Hay al menos un equilibrio. En realidad no me he sentado y probé esto, pero por diseño debería tener al menos uno trivial en el que ninguno esté infectado al comienzo. Puede que no haya nada más que eso, pero eso me haría tan contento como cualquier otra cosa.
- A continuación se muestra el conjunto real de ecuaciones de las que se habla.
En resumen, estoy buscando expresiones simbólicas para las soluciones de un sistema de 7 ecuaciones cuadráticas en 7 variables.
Respuestas:
Parece que las ecuaciones con las que está tratando son todas polinómicas después de borrar los denominadores. Eso es algo bueno (las funciones trascendentales son a menudo un poco más difíciles de manejar algebraicamente). Sin embargo, no es una garantía de que sus ecuaciones tengan una solución de forma cerrada. Este es un punto esencial que muchas personas realmente no "entienden", incluso si lo saben en teoría, por lo que vale la pena reiterar: existen sistemas bastante simples de ecuaciones polinómicas para las cuales no hay forma de dar las soluciones en términos de ( th) raíces, etc. Un ejemplo famoso (en una variable) es x 5 - x + 1 = 0 . Vea también esta página de wikipedia .norte X5 5- x + 1 = 0
Dicho esto, por supuesto, también hay sistemas de ecuaciones que se pueden resolver, y vale la pena verificar si su sistema es uno de esos. E incluso si su sistema no puede resolverse, aún podría ser posible encontrar una forma para su sistema de ecuaciones que sea más simple, en cierto sentido. Por ejemplo, encuentre una ecuación que involucre solo la primera variable (incluso si no se puede resolver algebraicamente), luego una segunda ecuación que involucre solo la primera y segunda variable, etc. Hay algunas teorías competitivas sobre cómo encontrar tales "formas normales" de sistemas polinomiales; la más conocida es la teoría de la base de Groebner, y una competencia es la teoría de las cadenas regulares.
En el sistema de álgebra computacional Maple (divulgación completa: trabajo para ellos) ambos están implementados. El
solve
comando normalmente llama al método base Groebner, creo, y eso se detiene rápidamente en mi computadora portátil. Intenté ejecutar el cálculo de cadenas regulares y lleva más tiempo del que tengo paciencia, pero no parece explotar tan mal en cuanto a memoria. En caso de que esté interesado, la página de ayuda para el comando que utilicé está aquí , y aquí está el código que utilicé:fuente
La forma profesional es escribir sus ecuaciones en un lenguaje de modelado como AMPL o GAMS, y resolverlo con un solucionador como IPOPT.
AMPL es un sistema comercial, pero una versión gratuita para estudiantes de AMPL puede plantear problemas con hasta 300 ecuaciones y variables.
Si solo desea resolver uno o algunos problemas, puede resolverlo en línea libremente utilizando el servidor NEOS para la optimización: simplemente envíe la descripción de AMPL y espere a que se le devuelva la respuesta.
Si necesita resolver dichos sistemas repetidamente como parte de un estudio más amplio (por ejemplo, variando los parámetros), debe descargar IPOPT (que es un software con una licencia muy liberal).
Editar: Tenga en cuenta que las soluciones simbólicas que son comprensibles generalmente se limitan a problemas bastante pequeños: por lo general, el tamaño de una base de Groebner crece explosivamente con el número de variables o el grado de los polinomios, y el tiempo para procesar aún más. Por lo tanto, un tiempo de espera de una hora o más con Mathematica es una señal (aunque no una prueba) de que su solución simbólica sería completamente incomprensible. Además, evaluar una expresión tan larga es probable que sea numéricamente inestable, por lo que necesitaría una alta precisión en la evaluación para obtener resultados significativos.
fuente
Escribir la solución completa es imposible dentro de lo razonable. Pero aquí hay algunas ecuaciones para reducir un poco el sistema:
¡Buena suerte!
fuente
Depende de la estructura de tus ecuaciones.
Si está buscando todos los estados estables de su conjunto de ecuaciones, y puede reorganizarlos como dice ErikP en polinomios, puede usar métodos de geometría algebraica real para calcular todas las soluciones numéricas con alta precisión. Bertini es uno de esos paquetes que conozco, pero hay otros. Fui a una conferencia en Notre Dame hace unos años, donde Bertini fue utilizado para encontrar estados estables de EDO a partir de la cinética química; Bertini fue desarrollado en Notre Dame.
Otra posibilidad es utilizar los métodos propuestos en "Prueba de exclusión no suave para encontrar todas las soluciones de ecuaciones no lineales" por MD Stuber, V. Kumar y PI Barton, BIT Numerical Mathematics 50 (4), 885-917, DOI: DOI: 10.1007 / s10543-010-0280-6 ; Estos métodos no requieren que el sistema de ecuaciones sean polinomios. Paul Barton es mi asesor, y Matt Stuber es un colega mío; si lo desea, puedo pedirle el software y enviárselo. El documento utiliza métodos de optimización global y aritmética de intervalos (cita el libro de ArnoldNeumaier), así como el método de Newton. La ventaja de este método es que debe ubicar todas las soluciones; La desventaja es que es complicado.
fuente
Sugeriría mirar un método de homotopía. Si bien no es simbólico, producirá todas las soluciones a su problema. Para una biblioteca fácil de revisar:
http://homepages.math.uic.edu/~jan/PHCpack/phcpack.html
fuente