Documentaciónlotka_volterra(expr_dx, expr_dy, t0, x0, y0, h, n)

lotka_volterra(exprdx,exprdy,t0,x0,y0,h,n)\texttt{lotka\_volterra}(expr_{dx}, expr_{dy}, t_{0}, x_{0}, y_{0}, h, n)

Nombre

lotka_volterra - Modela la dinamica presa-depredador con integracion numerica.

Sinopsis

tray = numericos.lotka_volterra(expr_dx, expr_dy, t0, x0, y0, h, n)

Descripcion

Resuelve un sistema de dos ecuaciones diferenciales acopladas para estudiar la evolucion temporal de una poblacion de presas y otra de depredadores.

Usa el metodo de Runge-Kutta de orden 4 y retorna una trayectoria lista para inspeccion numerica o para graficarse luego con las funciones de graficos.api.

Validaciones y casos borde

  • Valida que h no sea cero.
  • Valida que n sea entero y no negativo.
  • Si n == 0, retorna una tabla con el unico estado inicial (t0, x0, y0).
  • Admite h negativo para integrar hacia tiempos decrecientes.
  • Si una validacion falla, emite ERROR().

Comportamiento

  • Evalua dx/dt y dy/dt con RESOLVER().
  • Calcula cuatro pendientes intermedias por paso para cada variable.
  • Avanza el sistema en el tiempo desde t0 con paso h durante n iteraciones.
  • Retorna una TABLA con tres vectores: t, x e y.

Funciones API relacionadas

  • graficos.graficar_lotka_volterra()
  • graficos.graficar_fase_lotka_volterra()
  • graficos.graficar_fases_lotka_volterra()

Parámetros

ParámetroTipoDescripción
expr_dxSTRINGExpresion que define dx/dt.
expr_dySTRINGExpresion que define dy/dt.
t0NUMERICOTiempo inicial.
x0NUMERICOPosicion inicial en x; en formulas se representa como x0x_{0}.
y0NUMERICOPosicion inicial en y; en formulas se representa como y0y_{0}.
hNUMERICOPaso numerico usado en derivacion, integracion o EDO.
nNUMERICOCantidad de pasos; debe ser un entero no negativo.

Valor de retorno

TABLA - Tabla con los resultados estructurados.

Ejemplo

ejemplo.blox
Solo lectura
INCLUIR "numericos.api"
INCLUIR "matrices.api"
INCLUIR "tablas.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 = r1x (1 - ((x + a12y)/K1))
    // En este caso dy_g/dt = r2y (1 - ((y + a21x)/K2))
    //

    // Tasas de Crecimiento
    // r1 = 0.9
    // r2 = 0.9
    // 
    // Capacidades de Carga
    // K1 = 150
    // k2 = 150
    //
    // Afectaciones
    // a12 = -0.9    E2 afecta a E1 
    // a21 = -0.2    E1 afecta a E2 

    f = "0.9*x*(1-((x-0.9*y)/150))"      // x(t) es la poblacion 1
    g = "0.9*y*(1-((y-0.2*x)/150))"      // y(t) es la poblacion 2 

    n  = 100
    h = 0.1

    TABLA trayect
    t0 = 0   x0 = 20   y0 = 60
    trayect = numericos.lotka_volterra(f, g, t0, x0, y0, h, n)
    graficos.graficar_lotka_volterra(trayect, "Lotka-Volterra - competencia", "PROG900 - API - NUMERICOS - 5.2 Lotka-Volterra - competencia.png")




FINAL
Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.