Quiero resolver la ecuación isotérmica de Lane-Emden [PDF, eq. 15.2.9]
con las condiciones iniciales
usando SciPyodeint()
pero, como se puede ver, la ecuación es singular en el origen. La documentación indica que usa ODEPACK.
Ya conozco la serie de potencia de la solución en un entorno de ( ref ):
Intenté fijar tcrit
a np.array([0.0])
, pero no funcionó: recibo una advertencia acerca de los valores válidos y luego mi solución es todo NaN
. ¿Debo integrar a partir de 0.01 quizás? ¿O hay alguna otra solución?
Respuestas:
Muy bien, esta respuesta es un tiro en la oscuridad, pero aquí va.
Primero, transforme el ODE de segundo orden en un sistema de dos ODE. Dejar
donde los puntos sobre las funciones corresponden a la diferenciación con respecto a la variable independiente (en este caso, ).ξ
Entonces el ODE implícito de segundo orden
puede expresarse como el ODE explícito de primer orden
Al principio, parecería que no podemos evaluar el lado derecho de este sistema ODE explícito en , como requiere un integrador numérico. Si existe una solución para este sistema, entonces debe ser diferenciable. Suponiendo que existe una solución, tome el límite del lado derecho como .ξ → 0ξ=0 ξ→0
Primero, sabemos que
porque asumimos que existe una solución, entonces es diferenciable, lo que significa que debe ser continua. El límite de una función continua en un punto es su valor en ese punto, y sabemos el valor de porque es una condición inicial.φ2 φ2(0)
También sabemos que
por razones similares; hemos asumido que es diferenciable, por lo que es continuo, y porque es una condición inicial.φ1 φ1(0)=0
Finalmente,
usando la regla de L'Hôpital en la forma indeterminada .0/0
Para continuar, tenemos que hacer otra suposición: es continua en . Entonces se sigue queφ˙2 ξ=0
Revisando el ODE de primer orden y evaluando el lado derecho en , podemos ver que tenemos:ξ=0
de donde se deduce que .φ˙2(0)=1/3
Usando este análisis, podría conectar unaξ=0
if
declaración que devuelva estos valores de la función del lado derecho en , lo que debería superar la singularidad. Dicho esto, este análisis requiere un par de suposiciones sobre la continuidad que pueden o no mantenerse, así que tome la solución resultante con un grano de sal.fuente
if
if
cláusula. ¡Gracias!Si desea más opciones para su solucionador de ODE, eche un vistazo al paquete Assimulo que implementa enlaces al paquete CVODE (y RADAU y algunos integradores simples para el caso).
fuente
if
declaración para completar el límite apropiado del lado derecho como ?