← Back to CoursesStemExpert
StemExpert
Expert · Handboek · 32. Ecologische modellen
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
E32. Ecologische modellen
EExpert · deel E6 · Life sciences en bio-engineering

Handboek · hoofdstuk 32Ecologische modellen

Groei, interactie en materiaalbehoud vragen elk hun eigen stabiliteitsbewijs

Een ecosysteem kan regelmatig schommelen terwijl een voorraad langzaam verdwijnt. Je leidt groei- en interactiemodellen af, controleert Euler tegen onafhankelijke oplossingen en sluit een fictieve voedingsstofboekhouding. Biosphere 2 laat zien waarom ook microben en bouwmaterialen tot een atmosfeerbalans behoren.

7× uitleg8× uitgewerkt voorbeeld1× proef1× naslag1× verhaal1× het geheel3× code12 opdrachten in het werkboek± 15 lestijden
Een ecosysteem heeft levende én niet-levende voorraden; een groene kleur bewijst geen gesloten balans.
Een ecosysteem heeft levende én niet-levende voorraden; een groene kleur bewijst geen gesloten balans.
Na dit hoofdstuk
Uitleg · 32.1

Van groei naar een dynamisch ecosysteem

1/22

In i05 groeide een kleine algenpopulatie ongeveer exponentieel. E04 begrensde die groei met een draagkracht. Hier worden organismen gekoppelde toestanden: een predator reageert op prooi, dode biomassa wordt opnieuw voeding, en een materiaalvoorraad kan verschuiven zonder dat het totaal verandert.

De grootheid is een concentratie bij constant watervolume, geen rechtstreeks gewicht. Gebruik dezelfde afgeronde testreservoirwaarden als e04: , cellen/mL en cellen/mL. Een nieuwe reactor krijgt deze parameters pas na eigen identificatie.

modelverklaringontbreekt nog
exponentieelgroei per individu constantvoedsel- en lichtbeperking
logistischnetto groei daalt met dichtheidandere soorten en expliciete voorraad
prooi–predatortwee gekoppelde populatiesvolledige materiaalbalans
poolmodelmateriaal verplaatst tussen reservoirssoortenrijkdom en ruimtelijke variatie
Uitleg · 32.2

Draagkracht is een modelparameter

2/22

Neem geboorten minus sterfte per individu samen in een netto groei . Veronderstel dat de beperking evenredig is met . Dan volgt de logistische vergelijking. beschrijft het evenwicht onder dezelfde omstandigheden: licht, temperatuur, voeding en concurrentie. Een lichtstoring maakt een vaste soms ongeschikt.

logistische netto groei

Bij en is de afgeleide nul. Tussen beide groeit ; boven daalt zij. Lineariseren geeft : bij nul is de eigenwaarde en bij juist . De toestand nul is instabiel voor een positieve introductie; is lokaal asymptotisch stabiel. In dit deterministische model wordt een positieve populatie nooit vanzelf exact nul.

Met en ontstaat . Dat toont welke grootheden een simulatie moet schalen: tijd met , populatie met .

02468101214160123456789tijd (dag)N (10⁵ cellen/mL)exact, afgeronde e04-waardenEuler, h = 1 dagdraagkracht K
Dit testreservoir heeft rekenwaarden r = 0,70 per dag en K = 7,7 · 10⁵ cellen/mL. Een dagstap blijft hier begrensd, maar verschuift de groei sterk; numerieke stabiliteit garandeert geen nauwkeurigheid.
Uitgewerkt voorbeeld · 32.3

Het alarmmoment uit de exacte oplossing

3/22
De reservoirgrens van i05 bedraagt cellen/mL. Dit is een stationsproefgrens voor ongewenste algen, geen medische grens.
02468101214160123456789tijd (dag)N (10⁵ cellen/mL)exact, afgeronde e04-waardenEuler, h = 1 dagdraagkracht K
Dit testreservoir heeft rekenwaarden r = 0,70 per dag en K = 7,7 · 10⁵ cellen/mL. Een dagstap blijft hier begrensd, maar verschuift de groei sterk; numerieke stabiliteit garandeert geen nauwkeurigheid.
Gegeven
  • per dag; ; cellen/mL
Gevraagd
  • De oplossing en het eerste grensmoment.
Oplossing
  1. 1
    Scheid: . Omdat volgt voor .
  2. 2
    Vul de beginwaarde in en herschik: .
  3. 3
    Voor een grens is . Met volgt dagen.
Antwoord
Met de hier bewust afgeronde parameters wordt de grens rond dag 9,45 bereikt. E04 gebruikte ook ongeronde fitwaarden; een laatste decimaal is geen nieuwe nauwkeurige biologische voorspelling.
Klopt dit? cellen/mL. Het buigpunt ligt op dag 8,574380; maximale netto groei is cellen/(mL·dag).
Uitgewerkt voorbeeld · 32.4

Een Eulerstap is een balans over een tijdvak

4/22
Een korte stap houdt de groeisnelheid constant op haar waarde aan het begin.
Gegeven
  • cellen/mL; dag; dezelfde .
Gevraagd
  • De volgende toestand en de betekenis van tegelijk bijwerken.
Oplossing
  1. 1
    cellen/(mL·dag).
  2. 2
    cellen/mL. Vermenigvuldig de snelheid eerst met tijd; tel geen snelheid bij een concentratie op.
  3. 3
    De exacte groei over een halve dag vanaf 100 000 geeft 134 582,205 cellen/mL. Het verschil is een discretisatiefout: de groei veranderde tijdens de stap.
Antwoord
In een stelsel bereken je alle nieuwe toestanden uit dezelfde oude vector. Eerst prooi vervangen en dan die nieuwe prooi in de predatorformule stoppen voert een andere methode uit.
Klopt dit? Bij een stabiel logistisch evenwicht heeft Euler factor . De lokale stabiliteitsgrens is ; een ruime marge en stapvergelijking blijven nodig.
Code · 32.5

Logistische groei met een echte stapvergelijking

5/22

De exacte oplossing is een onafhankelijke referentie voor Euler. De tabel drukt de getekende fout N_Euler − N_exact af, met dezelfde beginwaarde en eindtijd. Voor kleine stappen halveert de globale fout ongeveer wanneer h halveert. De grote fout bij één dag bewijst dat 'niet ontploffen' veel te weinig is.

Pythonreservoir_logistiek.py28 regelsDownload
import mathimport numpy as np # Afgeronde leswaarden uit e04, alleen voor het testreservoir.r=.70; K=770000.; N0=1900.; alarm=500000.def exact(t,N=N0):    return K/(1+(K/N-1)*math.exp(-r*t))def euler_log(h,eind=10.,N=N0):    n=round(eind/h)    if not math.isclose(n*h,eind): raise ValueError("niet gehele stapreeks")    ys=[N]    for _ in range(n):        N=N+h*r*N*(1-N/K); ys.append(N)    return np.arange(n+1)*h,np.array(ys)t_alarm=math.log((K/N0-1)*alarm/(K-alarm))/rt_half=math.log(K/N0-1)/rprint("exact dag 10",round(exact(10),3),"cellen/mL")print("alarmtijd",round(t_alarm,6),"dag; buigpunt",round(t_half,6))rows=[]for h in [1.,.5,.25,.125,.0625]:    t,n=euler_log(h); err=n[-1]-exact(10)    rows.append((h,n[-1],err))    print("h,N(10),fout",h,round(n[-1],3),round(err,3))print("groei bij K/2",r*K/4,"cellen/(mL dag)")for E in [.25,.35,.50,.80]:    ns=max(0.,K*(1-E/r)); print("oogst E,N*,Y",E,round(ns,3),round(E*ns,3))assert abs(exact(0)-N0)<1e-10assert all(rows[j+1][2]>rows[j][2] for j in range(len(rows)-1))
exact dag 10 562602.175 cellen/mL
alarmtijd 9.454646 dag; buigpunt 8.57438
h,N(10),fout 1.0 291864.674 -270737.501
h,N(10),fout 0.5 426628.189 -135973.986
h,N(10),fout 0.25 498567.152 -64035.023
h,N(10),fout 0.125 531988.613 -30613.562
h,N(10),fout 0.0625 547679.69 -14922.485
groei bij K/2 134750.0 cellen/(mL dag)
oogst E,N*,Y 0.25 495000.0 123750.0
oogst E,N*,Y 0.35 385000.0 134750.0
oogst E,N*,Y 0.5 220000.0 110000.0
oogst E,N*,Y 0.8 0.0 0.0
02468101214160123456789tijd (dag)N (10⁵ cellen/mL)exact, afgeronde e04-waardenEuler, h = 1 dagdraagkracht K
Dit testreservoir heeft rekenwaarden r = 0,70 per dag en K = 7,7 · 10⁵ cellen/mL. Een dagstap blijft hier begrensd, maar verschuift de groei sterk; numerieke stabiliteit garandeert geen nauwkeurigheid.
Uitgewerkt voorbeeld · 32.6

Oogsten verschuift draagkracht en stabiliteit

6/22
Een fractie per dag wordt continu uit de populatie verwijderd. Dit is een wiskundig oogstmodel, geen operationeel protocol.
Gegeven
  • ; .
Gevraagd
  • Evenwicht, stabiliteit en opbrengst.
Oplossing
  1. 1
    Factoriseer . Het positieve evenwicht is cellen/mL.
  2. 2
    Bij is : stabiel. De modelopbrengst is cellen/(mL·dag).
  3. 3
    is maximaal bij per dag, , . Dit optimum is alleen geldig voor exact deze vaste parameters.
  4. 4
    Als groei in een stressscenario per dag wordt, ligt erboven: het positieve evenwicht verdwijnt. Het nominale maximum is daarom geen robuuste regelstrategie.
Antwoord
Een geschikte proef houdt marge tot de kleinste aannemelijke groei en meet herstel na verstoring. Cellen tellen is nog geen zuurstofopbrengst meten.
Klopt dit? Bij vervalt de lineaire groeifactor: . De afname is dan algebraïsch, niet exponentieel.
Uitleg · 32.7

Lotka–Volterra: ontmoetingen koppelen twee soorten

7/22

Noem de prooi , de predator . Zonder predator groeit de prooi met . Neem een goed gemengde omgeving waarin ontmoetingen evenredig zijn met . De predatieterm is . Een fractie zet geconsumeerde prooi om in netto predatortoename; sterfte kost .

basis-Lotka–Volterra

Hier zijn en per dag, per individu per dag, , , . Dit zijn fictieve lespopulaties. Als één prooidier en één predator verschillende massa hebben, is geen automatische massafractie.

De aannamen zijn sterk: continu verdeelde aantallen, geen leeftijd of seizoen, geen ruimtelijke schuilplaatsen, prooi zonder draagkracht en geen verzadiging van eten. Een kleine populatie vraagt ook een stochastisch model: één individu kan verdwijnen terwijl een continue vergelijking 0,2 voorspelt.

termbetekeniseenheid
rxnetto prooigroeiindividuen/dag
axyverlies prooi door predatieindividuen/dag
ηaxynetto predatortoenameindividuen/dag
dypredatorsterfteindividuen/dag
Uitgewerkt voorbeeld · 32.8

De eerste gekoppelde stap

8/22
Simuleer het fictieve paar vanaf met dag.
Gegeven
  • De vier parameters uit het modelblad.
Gevraagd
  • Beide nieuwe aantallen.
Oplossing
  1. 1
    Prooi: per dag.
  2. 2
    Predator: per dag.
  3. 3
    Samen: . Met nieuwe in de oude predatorstap zou je krijgen: een ongewenste mengvorm.
Antwoord
De predator groeit al, maar de prooi nog sneller. Later kan de predator zo talrijk worden dat de prooigroei van teken verandert.
Klopt dit? De prooigroei is nul bij ; de predatortoename bij .
Code · 32.9

Twee methoden en een behoudsgrootheid

9/22

Dezelfde functie levert Euler en RK4. Een kleine RK4-stap controleert de baan; de afgeleide behoudsgrootheid controleert haar onafhankelijk. De grove Eulerproef wordt geweigerd zodra een populatie niet meer positief is. Stilzwijgend negatieve aantallen naar nul afkappen zou het model en zijn balans veranderen.

De uitvoer noemt de maximale fout van de twee eindcomponenten op dag 40, niet de maximale fout over de hele baan.

Pythonprooi_predator.py49 regelsDownload
import mathimport numpy as np # Populaties x,y zijn aantallen in een denkbeeldige proef; niet Habitat-data.r=.60; a=.030; eta=.40; d=.30; cap=100.xs=d/(eta*a); ys=r/a; ys_cap=r/a*(1-xs/cap)def f(z,logistisch=False):    x,y=z    groei=r*x*(1-x/cap) if logistisch else r*x    return np.array([groei-a*x*y,eta*a*x*y-d*y])def integreer(h,eind=40.,methode="Euler",logistisch=False,z0=(40.,10.)):    n=round(eind/h)    if not math.isclose(n*h,eind): raise ValueError("niet gehele stapreeks")    z=np.array(z0,float); zs=[z.copy()]    for _ in range(n):        if methode=="Euler": z=z+h*f(z,logistisch)        elif methode=="RK4":            k1=f(z,logistisch); k2=f(z+h*k1/2,logistisch)            k3=f(z+h*k2/2,logistisch); k4=f(z+h*k3,logistisch)            z=z+h*(k1+2*k2+2*k3+k4)/6        else: raise ValueError("methode")        if not np.all(np.isfinite(z)) or np.min(z)<=0:            raise ValueError("negatieve/niet-eindige populatie; stap verkleinen")        zs.append(z.copy())    return np.arange(n+1)*h,np.array(zs)def invariant(z):    x,y=np.asarray(z).T    return eta*a*(x-xs-xs*np.log(x/xs))+a*(y-ys-ys*np.log(y/ys))J=np.array([[0.,-a*xs],[eta*a*ys,0.]])Jcap=np.array([[-r*xs/cap,-a*xs],[eta*a*ys_cap,0.]])print("LV evenwicht",xs,ys,"eigenwaarden",np.linalg.eigvals(J))print("kleine periode",2*math.pi/math.sqrt(r*d),"dag")print("logistische prooi",xs,ys_cap,"eigenwaarden",np.linalg.eigvals(Jcap))ref=integreer(.0025,methode="RK4")iv0=float(invariant(ref[1][0])); print("referentie invariantdrift",float(np.max(np.abs(invariant(ref[1])-iv0))))rows=[]for h in [.2,.1,.025]:    t,z=integreer(h); drift=float(invariant(z[-1])-iv0)    err=float(np.max(np.abs(z[-1]-ref[1][-1])))    rows.append((h,z[-1,0],z[-1,1],drift,err))    print("Euler h,x40,y40,Ddrift,max eindfout",*[round(v,6) for v in rows[-1]])print("RK4 x40,y40",ref[1][-1])try: integreer(.5)except ValueError as fout: print("Euler h=0.5 geweigerd:",fout)else: raise AssertionError("ongeldige grove proef niet geweigerd")capref=integreer(.01,eind=80,methode="RK4",logistisch=True)print("logistisch dag80",capref[1][-1])assert abs(xs-25)<1e-12 and abs(ys-20)<1e-12assert np.max(np.abs(invariant(ref[1])-iv0))<1e-8
LV evenwicht 25.0 20.0 eigenwaarden [0.+0.42426407j 0.-0.42426407j]
kleine periode 14.80960979386122 dag
logistische prooi 25.0 15.0 eigenwaarden [-0.075+0.35968736j -0.075-0.35968736j]
referentie invariantdrift 1.4765966227514582e-14
Euler h,x40,y40,Ddrift,max eindfout 0.2 2.901052 49.219103 0.562309 27.361555
Euler h,x40,y40,Ddrift,max eindfout 0.1 4.169626 28.447696 0.174493 6.590149
Euler h,x40,y40,Ddrift,max eindfout 0.025 6.53545 22.90673 0.031811 1.049182
RK4 x40,y40 [ 7.45528544 21.8575473 ]
Euler h=0.5 geweigerd: negatieve/niet-eindige populatie; stap verkleinen
logistisch dag80 [24.96481507 15.00314314]
05101520253035400102030405060tijd (dag)populatie (aantal)prooi x, RK4predator y, RK4
De aantallen zijn eigen lesparameters, zonder werkelijk gekozen Habitat-soorten. Beide vergelijkingen worden tegelijk uit dezelfde oude toestand berekend. De periode van deze grote cyclus hoeft niet gelijk te zijn aan de gelineariseerde periode.
Uitleg · 32.10

Nulclijnen maken een fasebaan leesbaar

10/22

De niet-triviale nulclijnen snijden in . Rechts van groeit de predator; links ervan daalt hij. Onder groeit de prooi; erboven daalt zij. Daarom gaat een baan rechtsonder het evenwicht eerst naar rechtsboven en vervolgens naar linksboven: tegen de klok in.

Een tijdgrafiek toont faseverschillen; een fasevlak toont de toestand onafhankelijk van de klok. De vier tekens geven de richting, maar voorspellen nog geen demping. De assen hebben verschillende biologische betekenissen; afstand op papier is geen biologische schade-eenheid.

gebiedprooipredator
x > 25, y < 20groeitgroeit
x > 25, y > 20daaltgroeit
x < 25, y > 20daaltdaalt
x < 25, y < 20groeitdaalt
01530456075900102030405060prooi x (aantal)predator y (aantal)RK4, bijna gesloten baanEuler, h = 0,1 dagevenwicht (25,20)
De horizontale nulclijn y = 20 maakt de prooigroei nul, de verticale nulclijn x = 25 de predatortoename. De exacte behoudsgrootheid D blijft constant; expliciete Euler laat haar langzaam groeien.
Uitgewerkt voorbeeld · 32.11

Waarom het basismodel neutraal stabiel is

11/22
Een evenwicht is een constante oplossing; zijn stabiliteit beschrijft de reactie op een kleine verandering.
01530456075900102030405060prooi x (aantal)predator y (aantal)RK4, bijna gesloten baanEuler, h = 0,1 dagevenwicht (25,20)
De horizontale nulclijn y = 20 maakt de prooigroei nul, de verticale nulclijn x = 25 de predatortoename. De exacte behoudsgrootheid D blijft constant; expliciete Euler laat haar langzaam groeien.
Gegeven
  • en .
Gevraagd
  • De eigenwaarden en een niet-lineaire controle.
Oplossing
  1. 1
    De Jacobiaan op het evenwicht is . De karakteristieke vergelijking is .
  2. 2
    Dus per dag. De lineaire kleine periode is dagen. Zuiver imaginaire eigenwaarden alleen bewijzen in een algemeen niet-lineair stelsel nog geen centrum.
  3. 3
    Hier bestaat bovendien . Omdat vallen alle kruistermen weg.
  4. 4
    Voor positieve is , met gelijkheid alleen op het evenwicht. Haar gesloten contouren geven een centrum: nabijgelegen toestanden blijven nabij, maar keren niet asymptotisch naar hetzelfde evenwicht terug.
Antwoord
Neutrale stabiliteit is geen betrouwbare herstelreserve. Een verstoring verplaatst het systeem naar een andere contour.
Klopt dit? In de echte uitvoer blijft de RK4-invariant binnen 1,5 · 10⁻¹⁴; dat controleert de berekening, niet de biologische aannamen.
Uitgewerkt voorbeeld · 32.12

Zelfbegrenzing maakt het model anders

12/22
Vervang alleen de prooigroei door met .
01020304050607080051015202530354045tijd (dag)populatie (aantal)prooi met draagkracht 100predator
De aangepaste prooivergelijking heeft bij deze parameters een asymptotisch stabiel evenwicht (25,15). De basis-Lotka-Volterra-variant heeft (25,20); deze modellen mogen niet dezelfde evenwichtslijn krijgen.
Gegeven
  • blijft gelijk.
Gevraagd
  • Het positieve evenwicht en zijn lokale demping.
Oplossing
  1. 1
    blijft staan; . Dit is positief alleen als .
  2. 2
    . Spoor −0,15 per dag en determinant 0,135 per dag² geven per dag.
  3. 3
    De reële delen zijn negatief: kleine verstoringen worden gedempt. De envelop heeft tijdschaal dagen; het model kan weken nodig hebben om na een verstoring terug te keren.
Antwoord
Draagkracht toevoegen verandert de aard van stabiliteit én het evenwicht. Bij Kₓ ≤ 25 is een positieve predatorpopulatie niet vol te houden in dit model.
Klopt dit? Op dag 80 geeft RK4 , dicht bij .
Uitleg · 32.13

Een numerieke spiraal is geen ecologische instabiliteit

13/22

Voor een eigenmode met gebruikt Euler . Bij de zuiver imaginaire van het basismodel is voor elke positieve stap. Ook een kleine Eulerstap voegt dus geleidelijk amplitude toe.

Voor een gedempte eigenwaarde is de voorwaarde . Kwadrateren levert , dus . Bij de variant met draagkracht is die grens dagen. Een stap daaronder kan nog onnauwkeurig zijn.

lokale Eulerstabiliteit

Controleer eindfout, baan, positiviteit en invariant. Verklaar een grotere cyclus pas biologisch wanneer zij bij verfijning en een andere integrator blijft bestaan.

01530456075900102030405060prooi x (aantal)predator y (aantal)RK4, bijna gesloten baanEuler, h = 0,1 dagevenwicht (25,20)
De horizontale nulclijn y = 20 maakt de prooigroei nul, de verticale nulclijn x = 25 de predatortoename. De exacte behoudsgrootheid D blijft constant; expliciete Euler laat haar langzaam groeien.
Uitleg · 32.14

Gesloten betekent dat de boekhouding sluit

14/22

Lotka–Volterra conserveert geen compleet koolstof-, stikstof- of zuurstofbudget. Een ecologisch voedselweb moet worden gekoppeld aan niet-levende pools: minerale voedingsstof, biomassa, detritus, gas, opgeloste stof en materiaaloppervlakken. Materie kan intern verplaatsen terwijl luchtkwaliteit achteruitgaat.

Gebruik voor een lesmodel stikstofmassa's in algen, in detritus en in mineralen. Opname , sterfte en mineralisatie geven , , . Optellen geeft exact .

Een oogst die buiten de gekozen grens gaat is een uitstroom. Tel haar in een exportpool met en zet in . Dan blijft alleen het uitgebreide totaal behouden. Een geoogste maaltijd die later retour komt vraagt nieuwe vertragingen en omzettingspools.

Mineraal Rg stikstofAlgen Ag stikstofDetritus Dg stikstofopname Usterfte mAmineralisatie kD → retour naar R
De gewone simulatie houdt A + D + R = 12 g N constant. In het oogstscenario gaat E A naar een apart bijgehouden exportpool H: A + D + R daalt, maar A + D + R + H blijft constant. Licht levert energie en staat buiten deze stikstofboekhouding.
Uitgewerkt voorbeeld · 32.15

Een materiaalbalans heeft een familie van evenwichten

15/22
Het fictieve poolmodel heeft totaal g N en constant licht .
Mineraal Rg stikstofAlgen Ag stikstofDetritus Dg stikstofopname Usterfte mAmineralisatie kD → retour naar R
De gewone simulatie houdt A + D + R = 12 g N constant. In het oogstscenario gaat E A naar een apart bijgehouden exportpool H: A + D + R daalt, maar A + D + R + H blijft constant. Licht levert energie en staat buiten deze stikstofboekhouding.
Gegeven
  • , , per dag; g N.
Gevraagd
  • Een positief evenwicht binnen deze vaste totaalvoorraad.
Oplossing
  1. 1
    Voor is . Daarom g N.
  2. 2
    Uit volgt . De som geeft g N en g N.
  3. 3
    Elimineer . Op het evenwicht is de tweedimensionale Jacobiaan per dag. De eigenwaarden zijn −0,306765 en −4,734902 per dag: lokaal stabiel binnen dit voorraadvlak.
  4. 4
    In het volledige driedimensionale stelsel hoort ook een nulrichting bij het veranderen van M. Dat is een ander voorraadvlak; materiaalbehoud dwingt geen terugkeer naar een oorspronkelijk totaal na export.
Antwoord
Een gesloten massabalans en een stabiel evenwicht zijn verschillende eigenschappen. Dit voorbeeld heeft beide onder zijn eigen constante aannamen.
Klopt dit? en zijn vereist voor dit positieve evenwicht; één formule garandeert het niet bij minder licht.
Code · 32.16

Drie pools, duisternis en geboekte oogst

16/22

De code heeft uitsluitend eigen fictieve g-N-parameters. Licht van dag 10 tot 13 uitzetten en oogsten van dag 10 tot 20 zijn afzonderlijke scenario's. De schakeltijden vallen op stapranden; een RK4-stap gebruikt één geldige instelling over het hele tijdvak. De export wordt als toestand bewaard en telt mee in de onafhankelijke balans.

Pythongesloten_stikstof.py43 regelsDownload
import mathimport numpy as np # g stikstof in drie fictieve pools; geen reactorontwerp of zuurstofgarantie.mu=.80; kr=1.; m=.10; k=.20; begin=np.array([2.,1.,9.,0.])def flux(z,licht=1.,E=0.):    A,D,R,H=z    U=mu*licht*R/(kr+R)*A    sterfte=m*A; retour=k*D; oogst=E*A    return np.array([U-sterfte-oogst,sterfte-retour,retour-U,oogst])def sim(h=.0025,eind=60.,scenario="licht"):    n=round(eind/h)    if not math.isclose(n*h,eind): raise ValueError("niet gehele stapreeks")    # Alle scenario-overgangen vallen op een staprand.    if any(not math.isclose(round(v/h)*h,v) for v in [10.,13.,20.]):        raise ValueError("overgang niet op staprand")    z=begin.copy(); zs=[z.copy()]    for j in range(n):        t=j*h        licht=0. if scenario=="donker" and 10<=t<13 else 1.        E=.20 if scenario=="oogst" and 10<=t<20 else 0.        # Instellingen blijven constant over deze stap; ook bij RK4-eindpunt.        k1=flux(z,licht,E); k2=flux(z+h*k1/2,licht,E)        k3=flux(z+h*k2/2,licht,E); k4=flux(z+h*k3,licht,E)        z=z+h*(k1+2*k2+2*k3+k4)/6        if min(z)<-1e-10 or not np.all(np.isfinite(z)):            raise ValueError("niet-fysische pool; geen stilzwijgend afkappen")        zs.append(z.copy())    return np.arange(n+1)*h,np.array(zs)Rstar=m*kr/(mu-m); Astar=(sum(begin)-Rstar)/(1+m/k); Dstar=m*Astar/kb=Astar*mu*kr/(kr+Rstar)**2J=np.array([[0,b],[-k-m,-k-b]])print("evenwicht A,D,R (g N)",Astar,Dstar,Rstar)print("gereduceerde eigenwaarden per dag",np.linalg.eigvals(J))scenarios={}for s in ["licht","donker","oogst"]:    t,z=sim(scenario=s); scenarios[s]=(t,z)    drift=np.max(np.abs(z.sum(axis=1)-sum(begin)))    print(s,"dag60 A,D,R,H",np.round(z[-1],6),"balansfout",f"{drift:.2e}")z=scenarios["donker"][1]; i10=round(10/.0025); i13=round(13/.0025)print("A13/A10 donker",z[i13,0]/z[i10,0],"exact",math.exp(-m*3))assert all(np.max(np.abs(z.sum(axis=1)-12))<1e-10 for t,z in scenarios.values())assert abs(z[i13,0]/z[i10,0]-math.exp(-.3))<1e-10
evenwicht A,D,R (g N) 7.904761904761905 3.9523809523809526 0.14285714285714285
gereduceerde eigenwaarden per dag [-0.30676452 -4.73490214]
licht dag60 A,D,R,H [7.904762 3.952381 0.142857 0.      ] balansfout 9.59e-14
donker dag60 A,D,R,H [7.904762 3.952381 0.142857 0.      ] balansfout 5.33e-14
oogst dag60 A,D,R,H [2.626795 1.313399 0.142857 7.916949] balansfout 4.97e-14
A13/A10 donker 0.7408182206817171 exact 0.7408182206817179
0510152025300246810tijd (dag)pool (g N)algen Adetritus Dmineraal R
De eigen scenarioverstoring ligt van dag 10 tot dag 13. Lichtverlies vermindert opname; mineralisatie gaat door. Dit model bevat geen luchtzuurstof, bewoners, pathogenen of bewezen reactorcapaciteit.
Uitgewerkt voorbeeld · 32.17

Herstel en voorraadverlies zijn niet hetzelfde

17/22
Vergelijk de drie poolscenario's uit de code.
0510152025300246810tijd (dag)pool (g N)algen Adetritus Dmineraal R
De eigen scenarioverstoring ligt van dag 10 tot dag 13. Lichtverlies vermindert opname; mineralisatie gaat door. Dit model bevat geen luchtzuurstof, bewoners, pathogenen of bewezen reactorcapaciteit.
Gegeven
  • Begin A = 2, D = 1, R = 9 g N; H = 0.
Gevraagd
  • De verstoring en het eindresultaat.
Oplossing
  1. 1
    Tijdens drie dagen duisternis is : , dus . De onafhankelijke exacte verhouding stemt met RK4 overeen.
  2. 2
    Na herstel van licht keert het gesloten scenario tegen dag 60 terug naar 7,904762 / 3,952381 / 0,142857 g N. Voorraad werd tijdens de duisternis verplaatst, niet vernietigd.
  3. 3
    Na de afzonderlijke oogstproef is 7,916949 g N in H geëxporteerd. De resterende A / D / R zijn 2,626795 / 1,313399 / 0,142857 g N. Terug naar de oorspronkelijke algenmassa kan dit systeem zonder terugvoer niet.
Antwoord
Beoordeel weerstand tijdens de storing, hersteltijd daarna en resterende voorraad afzonderlijk. Een lage massabalansfout toont alleen dat alle boekhoudtermen zijn meegenomen.
Klopt dit? De modelbalansfout is kleiner dan 10⁻¹² g N. Dat getal is rekentechnische precisie, geen echte weegnauwkeurigheid.
Uitleg · 32.18

De atmosfeer vraagt haar eigen gekoppelde balans

18/22

Fotosynthese, ademhaling en materiaalreacties kunnen gasvoorraden in tegengestelde richting verplaatsen. Als eenvoudige stoichiometrische illustratie kan je gebruiken voor respiratie. Carbonatatie neemt vervolgens CO₂ uit de lucht. Beton hoeft daarvoor niet rechtstreeks O₂ te verbruiken.

Daarom is een lage of constante CO₂-concentratie geen bewijs dat de O₂-balans klopt. Een volledig model houdt hoeveelheden in mol bij, druk en temperatuur voor de omzetting naar gasfractie, en afzonderlijke termen voor bewoners, planten, bodem, licht, lekkage en materiaal.

Habitat heeft twee bewoners. De i14-rekenwaarde 0,84 kg O₂ per bewoner per dag betekent samen 1,68 kg/dag, terwijl de huidige teelt slechts een kleine bijdrage levert. De woonmodule is geventileerd volgens e14; deze ecologische oefening verklaart haar niet tot een luchtdicht bemand systeem.

voorraadmetingenverborgen koppeling
lucht-O₂gasfractie plus drukmicrobiële en menselijke respiratie
lucht-CO₂gasfractie plus ventilatieopname in planten, water, bouwmateriaal
koolstof in materiaalinventaris en veranderingniet zichtbaar in één luchtsensor
stikstof in water/biomassamassa en concentratieexport via oogst en afval
Verhaal · 32.19

Biosphere 2: een ontbrekende koppeling werd zichtbaar

19/22

Severinghaus en collega's rapporteerden in 1994 dat de zuurstoffractie in Biosphere 2 in de eerste zestien maanden van ongeveer 21 % naar 14 % daalde. Hun onderzoek koppelde dit aan microbiële respiratie van organische bodemstof. De geproduceerde CO₂ werd mede door beton opgenomen. Zo verborg de CO₂-balans een deel van het zuurstofverlies.

Dempster beschreef later een atmosferische uitwisseling van minder dan 10 % per jaar. Een lage lekgraad maakte langzame interne onevenwichten meetbaar; sterk afgesloten betekent dus nog steeds niet perfect lekvrij.

De les voor Habitat is concreet: voeg verborgen voorraden en langzame processen toe, controleer verschillende stoffen en onderscheid biologische kringlopen van ventilatie en externe energie. Deze specifieke proef bewijst geen algemene onmogelijkheid van gesloten ecosystemen en bewijst evenmin dat het station autonoom kan worden.

Primaire bronnen, geraadpleegd 30-09-2026: Oxygen loss in Biosphere 2 en Tightly closed ecological systems reveal atmospheric subtleties.

één sensor sluit geen ecosysteem
Proef · 32.20

Een modelproef vóór een echte kweekproef

20/22
Onderzoeksvraag
Een gescheiden verificatieproef controleert eerst de rekenmethode en vervolgens de biologische aannamen.
Materiaal
  • De drie downloadbare Pythonprogramma's op de codebladen.
  • Een register met toestanden, eenheden, systeemgrens en scenario's.
Mineraal Rg stikstofAlgen Ag stikstofDetritus Dg stikstofopname Usterfte mAmineralisatie kD → retour naar R
De gewone simulatie houdt A + D + R = 12 g N constant. In het oogstscenario gaat E A naar een apart bijgehouden exportpool H: A + D + R daalt, maar A + D + R + H blijft constant. Licht levert energie en staat buiten deze stikstofboekhouding.
Werkwijze
  1. 1Controleer de logistische oplossing met beginwaarde, evenwicht en exact grensmoment.
  2. 2Vergelijk Euler en RK4 met halve stappen en dezelfde eindtijd; vergelijk de invariant voor Lotka–Volterra.
  3. 3Controleer de poolsom bij elke tijdstap, inclusief export. Herhaal met lichtverlies en gewijzigd μ, m of k.
  4. 4Bereid pas daarna een echte meetopzet voor: afzonderlijke monstername voor biomassa/voeding, lichtlog en gesloten massabalans. Gebruik goedgekeurde organismen en het geldende laboratoriumprotocol.
Waarneming
De drie eigen controles toetsen verschillende fouten: oplossing, numerieke integratie en ontbrekende boekhouding.
Verklaring
Een perfecte fit van algenaantal bewijst geen juiste gas- of materiaalbalans. Kalibreer parameters in één proef en valideer op een andere verstoring.
Naslag · 32.21

Naslag: evenwicht, eigenwaarde, voorraad

21/22
logistische groei
expliciete Euler, alle componenten tegelijk
basis-prooi–predator
geboekte stikstofgrens
begriptoets
evenwichtf(z*) = 0
lokale asymptotische stabiliteitalle relevante eigenwaarden met negatief reëel deel
neutraal centrumhier een exact behoud van D; geen demping
numerieke stabiliteitmethodefactor en stapgrootte
veerkrachtverstoring, functieverlies, herstel en voorraad binnen benoemd scenario
primaire bronwat zij ondersteuntgrens
Lotka, PNAS 6, 410–415 (1920)Wiskundige periodieke relaties in biologische systemen.Onze parameters zijn geen schatting uit dit artikel.
Volterra, Nature 118, 558–560 (1926)Wiskundige interactie van twee populaties.Twee ideale soorten vervangen geen volledig voedselweb.
Severinghaus et al., Oxygen loss in Biosphere 2 (1994)Zuurstofverlies, bodemrespiratie en CO₂-opname door beton.Een specifiek systeem, geen bewijs tegen alle gesloten ecosystemen.
Dempster, Advances in Space Research 42 (2008)Lage atmosferische uitwisseling maakt trage interne onevenwichten zichtbaar.Sterk afgesloten betekent niet perfect lekvrij.
Het geheel · 32.22

Het ecosysteem als toetsbaar deel van de digitale tweeling

22/22

Ecologische vergelijkingen voegen levende en niet-levende voorraden toe aan de dynamische modellen van het station. Hetzelfde onderscheid tussen model, sensor en werkelijkheid blijft gelden. Een stabiele simulatie, een gesloten som en een mooi groen vat zijn drie verschillende soorten informatie.

de eerste groei en de reservoirproef

de logistische vergelijking en Euler

reactorbalansen en werkelijk te identificeren groei

Jacobiaan, eigenwaarden en gekoppelde toestanden

ventilatie en atmosferische systeemgrens

modellen koppelen zonder onbewezen sluiting te claimen

HabitatDe bestaande teelt, twee bewoners en ventilatie blijven gelden. Prooi–predator en stikstofpools zijn didactische scenario's; er worden geen nieuwe soorten, reactorcapaciteit of autonome zuurstofproductie gekozen.
Samenvatting

In het kort

Begrippen

Wat je nu kent

draagkracht
Positief evenwicht van een groeimodel onder benoemde omgevingsvoorwaarden.
nulclijn
Verzameling toestanden waarop één component van de afgeleide nul is.
neutrale stabiliteit
Nabijgelegen toestanden blijven nabij zonder asymptotische terugkeer naar het evenwicht.
materiaalpool
Afzonderlijk bijgehouden hoeveelheid van een stof in een reservoir.
veerkracht
Herstel van een benoemde functie na een benoemde verstoring, binnen gegeven grenzen.
Aan de slag in het werkboek12 opdrachten, van oefenen tot uitdagen