Vadgazdálkodásnál használható ez a program, ez a modell azt szimulálja, hogyan változik a nyulak és a rókák száma az idő múlásával, ha hatással vannak egymásra. Ez egy egyszerű univerzális és szemléletes példa egy populációdinamikai modellre. A ragadozó-préda modell (Lotka-Volterra modell), amely tökéletesen bemutatja, hogyan lehet egy valós rendszert akár differenciálegyenletekkel modellezni Pythonban.
-----------------
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
# 1. A modell matematikai egyenleteinek definiálása
def lotka_volterra(y, t, alpha, beta, delta, gamma):
nyulak, rokak = y
# Nyulak változási sebessége: növekedés - megevett nyulak
d_nyulak_dt = alpha * nyulak - beta * nyulak * rokak
# Rókák változási sebessége: születés a megevett nyulak után - természetes halálozás
d_rokak_dt = delta * nyulak * rokak - gamma * rokak
return [d_nyulak_dt, d_rokak_dt]
# 2. Kiindulási paraméterek beállítása
alpha = 1.1 # Nyulak természetes növekedési rátája
beta = 0.4 # Rókák vadászati hatékonysága
delta = 0.1 # Rókák szaporodási rátája a sikeres vadászat után
gamma = 0.4 # Rókák természetes halálozási rátája
# Kezdeti populáció: 10 nyúl és 5 róka
kezdeti_populacio = [10, 5]
# Időtartam: 0-tól 50 egységig, 1000 lépésben
ido = np.linspace(0, 50, 1000)
# 3. A modell futtatása (szimuláció / differenciálegyenlet megoldás)
megoldas = odeint(lotka_volterra, kezdeti_populacio, ido, args=(alpha, beta, delta, gamma))
nyulak_szama = megoldas[:, 0]
rokak_szama = megoldas[:, 1]
# 4. Az eredmények vizualizációja (Grafikon készítés)
plt.figure(figsize=(10, 5))
plt.plot(ido, nyulak_szama, label='Nyulak (Préda)', color='green', linewidth=2)
plt.plot(ido, rokak_szama, label='Rókák (Ragadozó)', color='orange', linewidth=2)
plt.title('Lotka-Volterra Ragadozó-Préda Modell')
plt.xlabel('Idő')
plt.ylabel('Populáció mérete')
plt.grid(True, linestyle='--', alpha=0.6)
plt.legend()
plt.show()
-----------------
Nincsenek megjegyzések:
Megjegyzés küldése