Documentacióngraficar_fases_lotka_volterra(trayect, titulo, archivo)
Nombre
graficar_fases_lotka_volterra - Grafica varios planos de fase Lotka-Volterra en una misma imagen.
Sinopsis
ok = graficos.graficar_fases_lotka_volterra(trayect, titulo, archivo)
Descripcion
Recibe una tabla con una o mas trayectorias y dibuja el plano de fase de cada una para compararlas visualmente.
Formato general:
ejemplo.blox
TABLA trayect
trayect[1] = { t = ts1, x = presas1, y = depredadores1, nombre = "Escenario 1" }
trayect[2] = { t = ts2, x = presas2, y = depredadores2, nombre = "Escenario 2" }
ok = graficos.graficar_fases_lotka_volterra(trayect, "Fases comparadas", "salida.png")
Comportamiento
- Calcula rangos globales para todas las trayectorias.
- Crea una serie
xypor trayectoria. - Usa una misma imagen para comparar fases entre simulaciones.
Funciones API relacionadas
graficos.graficar_lotka_volterra()graficos.graficar_fase_lotka_volterra()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| trayect | TABLA | TABLA con una o mas trayectorias; cada registro debe tener vectores x e y. |
| titulo | STRING | Titulo visible del grafico. |
| archivo | STRING | Nombre o ruta del archivo de entrada o salida. |
Valor de retorno
VOID - No retorna valor. Genera el grafico y escribe el archivo PNG indicado.
Ejemplo
ejemplo.blox
//
// La funcion lotka_volterra() modela la dinamica poblacional entre una
// especie presa y una especie depredadora.
//
// Retorna una tabla con tres campos: t, x(t) e y(t), que describen la
// evolucion temporal del sistema.
// - t : tiempo
// - x(t) : poblacion de presas
// - y(t) : poblacion de depredadores
//
// Si graficamos x(t) e y(t) en funcion del tiempo, se observan ciclos de
// crecimiento y descenso en ambas poblaciones, caracteristicos del modelo
// presa-depredador.
//
// Si graficamos y(t) contra x(t), se obtiene el diagrama de fase del
// sistema, que muestra la trayectoria ciclica entre presas y depredadores.
//
INCLUIR "numericos.api"
INCLUIR "matrices.api"
INCLUIR "tablas.api"
INCLUIR "vectores.api"
INCLUIR "graficos.api"
FUNCION PRINCIPAL
INICIO "Lotka-Volterra (RK4)"
STRING f, g
NUMERICO t0, x0, y0, h, n
VECTOR T, X, Y
// Definimos la EDO: dy/dt = f(x(t), y(t), t) dy/dt = g(x(t), y(t), t)
// En este caso dy_f/dt = a1x - a2xy
// En este caso dy_g/dt = -b1y + b2xy
//
f = "0.4*x-0.018*x*y" // x(t) es la presa
g = "-0.8*y+0.023*x*y" // y(t) es el depredador
n = 220
h = 0.1
TABLA trayect, trayect1, trayect2, trayect3
t0 = 0 x0 = 35 y0 = 4
trayect1 = numericos.lotka_volterra(f, g, t0, x0, y0, h, n)
t0 = 0 x0 = 35 y0 = 6
trayect2 = numericos.lotka_volterra(f, g, t0, x0, y0, h, n)
t0 = 0 x0 = 35 y0 = 8
trayect3 = numericos.lotka_volterra(f, g, t0, x0, y0, h, n)
AGREGAR(trayect, trayect1[1])
AGREGAR(trayect, trayect2[1])
AGREGAR(trayect, trayect3[1])
//graficos.graficar_lotka_volterra(trayect, "Lotka-Volterra", "PROG41 - GRAFICO - XY - presa-predador.png")
graficos.graficar_fases_lotka_volterra(trayect, "Lotka-Volterra - Diagrama de fase", "PROG41 - GRAFICO - presa-predador - FASE.png")
FINAL```