Seguimos con los algoritmos.

La semana pasada vimos el algoritmo de Euler.

Hoy veremos los algoritmos que Matlab tiene para el mismo fin.
ode23, ode45.

Estos algoritmos permiten resolver ecuaciones diferenciales.

ode23('funcion', [x0 xf], y0)
- El parm. 1 es la ecuacin diferencial.
- El parm. 2 es el intervalo de aproximacin.
- El parm. 3 es y0 = y(x0).
- Devuelve el conjunto de puntos que verifica
  la ecuacin diferencial dada.

La semana pasada trabajamos con:
y' = 0.1*(x^2 - y^2)
y(0) = 1

Ver script: fun1.m

Con el script anterior, ejecutamos:
[x,y] = ode23('fun1', [0,5], 1)

Para representar el resultado obtenido:
plot(x,y)

El mtodo alternativo es "ode45".
La funcin se usa igual, slo cambia el nombre.

A partir del resultado de "ode45", ejecutamos
diff(x) para obtener la distancia entre cada 'x'.
En este caso es siempre 0.125, pero podra ser distinto.

Veamos ahora otros modelos.

Crecimiento malthusiano.
dx/dt = ax
x(0) = x0
-> x(t) = x0 * e^(at)

Sin embargo, nos centraremos en el...
Crecimiento logstico.
dx/dt = ax - bx^2
x(0) = x0

Veamos este ejemplo:
dx/dt = 2x - x^2
x(0) = 0.5
Tambin estudiaremos la alternativa:
x(0) = 3

En este ejemplo, la solucin estable es x=2.

Ver script: fun2.m

Con el script anterior, ejecutamos:
[x,y] = ode23('fun2', [0,4], 0.5);

Representamos el resultado obtenido:
plot(x,y)

Ahora lo estudiamos para x(0) = 3. Ejecutamos:
[x,y] = ode23('fun2', [0,4], 3);

Ahora cambiemos el ejemplo:
dx/dt = 2x - x^2 + sen(t)
x(0) = 0.5

Ver script: fun3.m

Con el script anterior, ejecutamos:
[x,y] = ode23('fun3', [0,20], 0.5);
