Hvis du har lest Krasjkurs i Eulermetoden , og eksempel frå matematikken, så er du no klar for å sjå på eksempel frå populasjonsdynamikk.
N′=rN
med analytisk løysing N(t)=P0⋅ert, der N0=N(0)
I dette eksempelet set vi r = 0.23. Sidan uttrykket for N' er så enkelt, så lagar vi ingen funksjon for dette, og heller ikkje for fasit. Derfor blir Eulers metode ganske enkel:
n[i+1] = n[i] + r*n[i]*dt
Tilsvarande blir fasit lik:
p[i+1] = N0*math.exp(r*t[i+1])
Då bir programkoden slik:
import numpy as np
import math
import matplotlib.pyplot as plt
r = 0.25 # Reproduksjonsrate per tid
T = 10 # antal år / mnd etc som vi modellerer
N0 = 2 # Startpopulasjonen
N = 20 # Antal punkt
dt = T/(N) # deler på antal intervall
n = np.zeros(N+1) # numerisk løysing
p = np.zeros(N+1) # eksakt løysing
t = np.zeros(N+1)
n[0] = N0
p[0] = N0
for i in range(N):
t[i+1] = t[i] + dt
n[i+1] = n[i] + r*n[i]*dt
p[i+1] = N0*math.exp(r*t[i+1])
plt.plot(t,n,label = "Numerisk")
plt.plot(t,p,label = "Analytisk")
plt.legend(loc='best')
plt.xlabel('Tid')
plt.ylabel('Populasjon')
plt.title('Eksponentiell vekst')
plt.grid(1)
plt.show()