Documentacióngraficar_fases_lotka_volterra(trayect, titulo, archivo)

graficar_fases_lotka_volterra(trayect,titulo,archivo)\texttt{graficar\_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 xy por 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ámetroTipoDescripción
trayectTABLATABLA con una o mas trayectorias; cada registro debe tener vectores x e y.
tituloSTRINGTitulo visible del grafico.
archivoSTRINGNombre 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```