Pflanzenschutz und Fressfeinde

Ein Weihnachtsmann stellt zu seinem Entsetzen fest, dass alle Nordmanntannen seiner Weihnachtsbaumkolonie von Sitkaläusen befallen sind. Soll er nun zu Pestiziden greifen oder den lieben Marienkäferchen, den natürlichen Feinden der Sitkaläuse, die Arbeit überlassen?

Diese Frage lässt sich an Hand eines Räuber-Beute-Modells beantworten, im vorliegenden Fall angewandt auf das Beutetier Sitkalaus und auf ihren natürlichen Feind, den Marienkäfer.

Das Modell

Gäbe es für die Sitkaläuse keine natürlichen Feinde, so würden sie sich - stark vereinfacht - exponentiell vermehren. Gäbe es für die Marienkäfer keine Beutetiere, so würden sie mangels Futter zugrunde gehen. Treffen nun Sitkaläuse und Marienkäfer aufeinander, geschieht Folgendes: Die Zahl der Sitkaläuse verringert sich und die Marienkäfer bleiben wohlgenährt am Leben.

Wir bezeichnen mit xnx_n die Anzahl der Sitkaläuse und mit yny_n die Anzahl der Marienkäfer zur Zeit nn.

Wenn es für die Sitkaläuse keine natürlichen Feinde gäbe, so würde sich ihre Populationsentwicklung mit der Gleichung

xn+1=xn+αxnx_{n+1}=x_n+\alpha x_n

mit einem Parameter α>0\alpha > 0 berechnen lassen. Das Zusammentreffen der Sitkaläuse mit den Marienkäfer, das sich als Produkt von xnx_n und yny_n darstellt, lässt die Sitkalauspopulation weiter schrumpfen, also

xn+1=xn+αxnβxnynx_{n+1} = x_n+\alpha\cdot x_n-\beta\cdot x_n\cdot y_n

mit einem Parameter β>0\beta > 0.

Betrachtet man die Marienkäfer isoliert, so kann man feststellen, dass sie mangels Futter nach demselben Gesetz sterben, wie die Sitkaläuse sich vermehren. In einer Formel ausgedrückt sieht das so aus:

yn+1=ynγyny_{n+1} = y_n-\gamma y_n

mit einem Parameter γ>0\gamma > 0.

Anders ist es, wenn sie auf die Sitkaläuse treffen und somit Nahrung haben:

yn+1=ynγyn+δxnyny_{n+1}=y_n-\gamma\cdot y_n+\delta\cdot x_n\cdot y_n

mit einem Parameter δ>0\delta> 0.

Beim Einsatz von Pestiziden verringert sich sowohl das Wachstum der Läuse als auch das Wachstum der Marienkäfer. Bei beiden Differenzengleichungen kommt daher der Giftterm εxn-\varepsilon x_n bei den Läusen und εyn-\varepsilon y_n bei den Marienkäfern hinzu mit dem selben Giftfaktor ε>0\varepsilon > 0. Wir nehmen also an, dass die Marienkäfer in der gleichen Weise unter dem Pestizid leiden wie die Sitkaläuse.

Die Analyse

Exercise 1: Plot des Modells

Stelle zum Text ein passendes Differenzengleichungsmodell für das Räuber-Beute Modell (hier Sitkaläuse versus Marienkäfer) mit und ohne Pestizideinsatz auf. Wähle als Parameter

Anfangswert La¨use\text{Anfangswert Läuse} x0=500x_0=500
Anfangswert Marienkäfer y0=100y_0=100
Vermehrung Läuse α=0.04\alpha=0.04
Verminderung Läuse β=0.0002\beta=0.0002
Schrumpfen Marienkäfer γ=0.0035\gamma=0.0035
Vermehrung Marienkäfer δ=0.0001\delta=0.0001
Pestizid-Wirkung ε=0.025\varepsilon=0.025
Solution

Ähnlich wie bei Lotka-Voltera notieren wir

xn+1=xn(1+αε)βxnyn(1ε)2yn+1=yn(1γε)+δxnyn(1ε)2\begin{align*} x_{n+1}&=x_n(1+\alpha-\varepsilon)-\beta\cdot x_n\cdot y_n\cdot(1-\varepsilon)^2\\ y_{n+1}&=y_n(1-\gamma-\varepsilon)+\delta\cdot x_n\cdot y_n\cdot(1-\varepsilon)^2 \end{align*}
Exercise 2: Experimentiere mit Pestiziden

Erstelle eine Tabelle und zeichne einen Graph für die Entwicklung der Zahl der Käfer ohne Pestizide, Läuse ohne Pestizide sowie der Käfer und Läuse mit Pestizideinsatz über 200 Zeiteinheiten. Berechne die durchschnittliche Grösse der vier Populationen. Experimentiere und variiere den Parameter ε\varepsilon.

Solution

Beispielsweise wie folgt:

import matplotlib.pyplot as plt

# Anfangswerte
x0 = 500
y0 = 100
alpha = 0.04
beta = 0.0002
gamma = 0.0035
delta = 0.0001
epsilon = 0.025

# Anzahl der Iterationen
iterations = 200

# Listen zum Speichern der Werte von x und y
x_values = [x0]
y_values = [y0]

# Iterieren und die Werte von x und y berechnen
for n in range(iterations):
    x_n = x_values[-1]
    y_n = y_values[-1]
    
    x_next = x_n * (1 + alpha - epsilon) 
    			- beta * x_n * y_n * (1 - epsilon)**2
    y_next = y_n * (1 - gamma - epsilon) 
    			+ delta * x_n * y_n * (1 - epsilon)**2
    
    x_values.append(x_next)
    y_values.append(y_next)

# Ergebnisse plotten
plt.plot(x_values, label='x')
plt.plot(y_values, label='y')
plt.xlabel('Iteration')
plt.ylabel('Werte')
plt.title('Modell von x und y ueber Iterationen')
plt.legend()
plt.show()