WPROWADZENIE

Model Lotki-Volterry to klasyczne narz臋dzie w ekologii, s艂u偶膮ce do opisania dynamicznych relacji mi臋dzy dwiema populacjami: drapie偶nika i ofiary. Model zak艂ada, 偶e wzrost populacji ofiar jest hamowany przez obecno艣膰 drapie偶nik贸w, a wzrost populacji drapie偶nik贸w zale偶y od dost臋pno艣ci po偶ywienia, czyli liczebno艣ci ofiar.

Podstawowe za艂o偶enia modelu:

  • S膮 dwie populacje: W modelu wyst臋puj膮 tylko dwie populacje: drapie偶niki i ofiary.
  • Brak innych czynnik贸w: Nie uwzgl臋dnia si臋 innych czynnik贸w, takich jak konkurencja mi臋dzygatunkowa, choroby czy zmiany 艣rodowiskowe.
  • Proste zale偶no艣ci: Wzrost populacji ofiar jest hamowany przez obecno艣膰 drapie偶nik贸w, a wzrost populacji drapie偶nik贸w zale偶y od dost臋pno艣ci po偶ywienia, czyli liczebno艣ci ofiar.

R贸wnania modelu:

R贸wnania s膮 r贸偶niczkowe, bo pokazuj膮 zmiany liczebno艣ci w czasie:
$$\frac{dx}{dt} = x(\alpha – \beta y)$$
$$\frac{dy}{dt} = y(\gamma x -\delta)$$
gdzie:
x – liczebno艣膰 populacji ofiar
y – liczebno艣膰 populacji drapie偶nik贸w
t – czas
伪 – wsp贸艂czynnik wzrostu naturalnego populacji ofiar (w przypadku braku drapie偶nik贸w)
尾 – wsp贸艂czynnik 艣miertelno艣ci ofiar spowodowany drapie偶nictwem
纬 – wsp贸艂czynnik wzrostu populacji drapie偶nik贸w zale偶ny od ilo艣ci po偶ywienia
未 – wsp贸艂czynnik 艣miertelno艣ci naturalnej populacji drapie偶nik贸w (w przypadku braku po偶ywienia)


KOD W J臉ZYKU PYTHON

import numpy as np
import matplotlib.pyplot as plt
def lotka_volterra(alpha, beta, gamma, delta, x0, y0, t):
  """
  Funkcja symuluj膮ca model Lotki-Volterry.
    alpha: Wsp贸艂czynnik wzrostu naturalnego populacji ofiar.
    beta: Wsp贸艂czynnik 艣miertelno艣ci ofiar spowodowany drapie偶nikami.
    gamma: Wsp贸艂czynnik wzrostu populacji drapie偶nik贸w zale偶ny od ilo艣ci po偶ywienia.
    delta: Wsp贸艂czynnik 艣miertelno艣ci naturalnej populacji drapie偶nik贸w.
    x0: Pocz膮tkowa liczba ofiar.
    y0: Pocz膮tkowa liczba drapie偶nik贸w.
    t: Czas symulacji.
  """
  dt = 0.1  # Krok czasowy
  n = int(t/dt)
  x = np.zeros(n+1)
  y = np.zeros(n+1)
  x[0] = x0
  y[0] = y0

  for i in range(1, n+1):
    dx = x[i-1] * (alpha - beta * y[i-1])
    dy = y[i-1] * (-gamma + delta * x[i-1])
    x[i] = x[i-1] + dx * dt
    y[i] = y[i-1] + dy * dt

  return x, y

# ZMIE艃 PARAMETRY MODELU
alpha = 0.65
beta = 0.65
gamma = 0.5
delta = 0.2
x0 = 10
y0 = 5
t = 100

# SYMULACJA
x, y = lotka_volterra(alpha, beta, gamma, delta, x0, y0, t)

# WYKRES
plt.plot(x, label='Ofiary')
plt.plot(y, label='Drapie偶niki')
plt.xlabel('Czas')
plt.ylabel('Liczba osobnik贸w')
plt.legend()
plt.show()

猬嗭笍猬嗭笍猬嗭笍 Zobacz w Google Colaboratory


JAK DZIA艁A PROGRAM?

  1. Definicja funkcji聽lotka_volterra:
    • Funkcja ta s艂u偶y do symulacji modelu Lotki-Volterry, kt贸ry opisuje dynamik臋 populacji dw贸ch gatunk贸w: ofiar i drapie偶nik贸w.
    • Przyjmuje ona nast臋puj膮ce parametry:
      • alpha: Wsp贸艂czynnik wzrostu naturalnego populacji ofiar.
      • beta: Wsp贸艂czynnik 艣miertelno艣ci ofiar spowodowany przez drapie偶niki.
      • gamma: Wsp贸艂czynnik wzrostu populacji drapie偶nik贸w zale偶ny od ilo艣ci po偶ywienia (ofiar).
      • delta: Wsp贸艂czynnik 艣miertelno艣ci naturalnej populacji drapie偶nik贸w.
      • x0: Pocz膮tkowa liczba ofiar.
      • y0: Pocz膮tkowa liczba drapie偶nik贸w.
      • t: Czas symulacji.
    • Wewn膮trz funkcji zdefiniowano聽dt聽(krok czasowy) i obliczono聽n聽(liczb臋 krok贸w).
    • Tworzone s膮 dwie tablice聽x聽i聽y, kt贸re przechowuj膮 odpowiednio populacj臋 ofiar i drapie偶nik贸w w kolejnych krokach.
    • P臋tle for symuluj膮 zmiany w populacjach w czasie, uwzgl臋dniaj膮c r贸wnania modelu.
    • Funkcja zwraca tablice聽x聽i聽y.
  2. Ustawienie parametr贸w modelu:
    • Zdefiniowane s膮 warto艣ci dla parametr贸w聽alpha,聽beta,聽gamma,聽delta,聽x0,聽y0聽i聽t.
    • Parametry te reprezentuj膮 wsp贸艂czynniki wzrostu i 艣miertelno艣ci oraz pocz膮tkowe populacje i czas symulacji.
  3. Symulacja modelu:
    • Wywo艂anie funkcji聽lotka_volterra聽z ustalonymi parametrami.
    • Wynikiem s膮 dwie tablice:聽x聽(populacja ofiar) i聽y聽(populacja drapie偶nik贸w) w kolejnych krokach symulacji.
  4. Tworzenie wykresu:
    • U偶ycie biblioteki聽matplotlib.pyplot聽do utworzenia wykresu.
    • plt.plot(x, label='Ofiary'): Rysuje lini臋 reprezentuj膮c膮 populacj臋 ofiar w czasie.
    • plt.plot(y, label='Drapie偶niki'): Rysuje lini臋 reprezentuj膮c膮 populacj臋 drapie偶nik贸w w czasie.
    • plt.xlabel('Czas'): Opis osi x (czas).
    • plt.ylabel('Liczba osobnik贸w'): Opis osi y (liczba osobnik贸w).
    • plt.legend(): Dodaje legend臋, kt贸ra identyfikuje, kt贸ra linia reprezentuje ofiary, a kt贸ra drapie偶niki.
    • plt.show(): Wy艣wietla wykres.