Métodos numéricos de integración de EDOs

Consideremos el pvi $$ \left\{\begin{aligned} &\dot{x}=1+t-2x\\ &x(0)=1, \end{aligned}\right. $$ que tiene por solución $$ x=\frac{1}{4}(1+2t+3e^{-2t}). $$

Método de Euler (progresivo)

Para simplificar tomo todos los $t_i$ a la misma distancia: $t_i-t_{i-1}=h$.

A modo de calculadora

Definamos una función que implemente el método de Euler. Queremos usarla en la forma

Euler_p(fun, t_span=[0,1], x0=1, N=5) ---> tiempos, X

Otros ejemplos

La ecuación logística $\dot{x}=rx(1-x)$.

La ecuación $\dot{x}=x^2$

Sistemas de ecuaciones

El programa anterior vale tanto para ecucaiones escalares como para sistemas. Veamos como resolver el pvi $$ \left\{\begin{aligned} &\dot{x}=-3x+2y\\ &\dot{y}=-2x-3y\\ &x(0)=0\\ &y(0)=1 \end{aligned}\right. $$ para valores de $t$ en el intervalo $[0,2]$

Usando las librerías de Python

Python tiene ya programados multitud de métodos, muy eficientes, para la integración numérica de EDOs. La manera más cómoda de usarlos en mediante la función solve_ivp.

La notación usada por solve_ivp es $$ \left\{\begin{align}&y'=f(t,y)\\&y(t_0)=y_0,\end{align}\right. $$ es decir, nuestra variable $x$ él la llama $y$.

Devuelve un objeto python con mucha información (que nosotros no necesitamos).

Veamos como usarlo.

Métodos gráficos

Dibujo del campo vectorial y diagrama de fases

Se utiliza la función quiver (en castellano carcaj, bolsa para las flechas)

Utilidad para no repetir código

Conjuntos de nivel de una integral primera

Para la ecuación diferencial $$ (t+x)\,dx+x\,dt $$ la función $$ F(t,x)= \frac{1}{2}x^2+tx $$ es la función potencial, una integral primera. Las soluciones satisfacen $F(t,x(t))=c$, es decir, están contenidas en los conjuntos de nivel de $F$.

La gráfica de los conjuntos de nivel se obtiene con contour o contourf.