2026. szeptember 6., vasárnap

A ragadozó-préda modell pythonnal

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()

-----------------


Ha drasztikusan fogy az apróvad, csökken a ragadozók száma is, ezt nevezik a természet önszabályozásának. 

Nincsenek megjegyzések:

Megjegyzés küldése