martes, 27 de agosto de 2013

Resolver ecuaciones diferenciales de primer orden en MATLAB (ode45)


Veremos cómo resolver una ecuación diferencial de primer orden utilizando el "solver" ode45.

La sintaxis de ode45 es la siguiente:

[t,y]=ode45(fun_edo, [t_min t_max], [Cond_Ini])

donde:

[t, y] ---- es el vector de salida que contiene la variable independiente "t" y a la función solución de la ecuación diferencial.

fun_edo: ---- es la función que contiene la definición de la ecuación diferencial a resolver

[t_min t_max] ---- Es el intervalo para la variable independiente en el cual se resolverá la ecuación diferencial.

[Cond_Ini]  --- Es un vector que contiene las condiciones iniciales $y(0)$

Para crear la función que contiene la ecuación diferencial, primero necesitamos expresar esta en la forma $\frac{dy}{dt}=\,f(t, y)$. Por ejemplo supongamos que queremos resolver la siguiente ED:

$$\frac{dy}{dt}=-0.3*y$$

Entonces, la asignación se haría como sigue:

dydt=@(t,y) -0.3*y;

En la siguiente línea escribiremos la declaración del solver:

[t,y]=ode45(dydt, [0 10], [3]);

Con ello estamos indicando que resolveremos la ED contenida en "dydt" en el intervalo de 0 a 10 sujeta a la condición inicial $y(0)=3$

Para graficar la curva solución simplemente habremos de utilizar el comando plot:

plot(t,y);

Si queremos añadir más condiciones iniciales simplemente habría que agregarlas al vector correspodiente, por ejemplo:

[t,y]=ode45(dydt, [0 10], [3 10 20]);

La línea anterior resuelve la ED para las tres condiciones iniciales $y(0)=3,\,\,y(0)=10,\,\, y(0)=20$.





No hay comentarios.:

Publicar un comentario