← Back to CoursesStemExpert
StemExpert
Expert · Handboek · 4. Differentiaalvergelijkingen en simulatie
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
E4. Differentiaalvergelijkingen en simulatie
EExpert · deel E1 · Wiskundige gereedschapskist

Handboek · hoofdstuk 4Differentiaalvergelijkingen en simulatie

Wie weet hoe snel iets verandert, kan uitrekenen hoe het verder gaat: exact of stap voor stap

Bijna elk natuurkundig of biologisch model zegt niet wat een grootheid is, maar hoe snel ze verandert: de kas warmt op met de zon en verliest warmte naar buiten, algen groeien tot hun licht op is, een condensator laadt tot de bron. Zo'n model is een differentiaalvergelijking. Je leert ze opstellen als balans, lezen in een richtingsveld, oplossen door veranderlijken te scheiden, en, als dat niet lukt, simuleren met de methode van Euler, met oog voor stapgrootte, fout en stabiliteit. Het hoofdstuk eindigt met de eerste simulatie van de meetkas, naast haar echte uurwaarden.

8× uitleg6× uitgewerkt voorbeeld1× ontleed1× naslag1× verhaal1× het geheel3× code16 opdrachten in het werkboek± 12 lestijden
Wat de sensor in de meetkas meet, kan het brein van het station nu ook voorspellen: met een model van hoe snel de kas opwarmt en afkoelt.
Wat de sensor in de meetkas meet, kan het brein van het station nu ook voorspellen: met een model van hoe snel de kas opwarmt en afkoelt.
Na dit hoofdstuk
Verhaal · 4.1

Rekenen in stapjes: van Euler tot het weerbericht

1/21

In 1768 verscheen in Sint-Petersburg het eerste deel van de Institutiones calculi integralis, het leerboek integraalrekening van Leonhard Euler. Euler wist dat de meeste vergelijkingen die zeggen hoe iets verandert, geen oplossing in een formule hebben. Hij beschreef een eenvoudige uitweg: zet een klein stapje langs de raaklijn, reken op de nieuwe plaats de nieuwe helling uit, zet het volgende stapje, en zo verder. Hoe kleiner de stapjes, hoe dichter de gebroken lijn bij de echte oplossing ligt. In de jaren 1820 bewees Augustin-Louis Cauchy in zijn lessen aan de École polytechnique in Parijs dat dat klopt als de stap naar nul gaat. Die gebroken lijn heet vandaag de methode van Euler.

Rekenen in stapjes was toen al ernst. In 1757 en 1758 rekenden de wiskundige Alexis Clairaut, de astronoom Joseph Jérôme Lalande en de rekenaarster Nicole-Reine Lepaute maandenlang met de hand uit hoe Jupiter en Saturnus de komeet van Halley zouden vertragen. In november 1758 kondigden ze aan dat de komeet rond half april 1759 het dichtst bij de zon zou komen, met een marge van een maand. Het werd 13 maart: net binnen de marge, en een triomf voor de mechanica van Newton.

Tijdens de Eerste Wereldoorlog probeerde de Britse natuurkundige Lewis Fry Richardson, als vrijwilliger bij een ambulancedienst in Frankrijk, het weer van zes uur verder uit te rekenen met de vergelijkingen van de atmosfeer, opgedeeld in cellen en tijdstappen. Na weken rekenwerk kwam er voor één punt een drukstijging van 145 hPa in zes uur uit: onmogelijk. Toch publiceerde hij zijn methode in 1922, met de droom van een zaal met 64 000 rekenaars die het weer sneller zouden uitrekenen dan het zelf veranderde. Veel later bleek uit een reconstructie dat niet zijn methode de schuldige was, maar de begintoestand: kleine onevenwichten in de gemeten wind en druk. In 1928 toonden Richard Courant, Kurt Friedrichs en Hans Lewy aan dat een tijdstap ook te groot kan zijn: dan explodeert de berekening, hoe goed de vergelijkingen ook zijn. In 1950 lukte de eerste weersvoorspelling met een computer, op de ENIAC, door Jule Charney, Ragnar Fjørtoft en John von Neumann.

Beginwaarde, stapgrootte, stabiliteit: de drie struikelblokken uit dit verhaal zijn precies de onderwerpen van dit hoofdstuk.

Waarom dit hoofdstuk ertoe doet

Het brein van het station moet vooruitkijken: hoe warm wordt de kas vanmiddag, hoe lang houdt de batterij het, wanneer wordt het reservoir groen? Dat kan alleen met een model dat zegt hoe snel iets verandert, en een computer die dat stap voor stap uitrekent. De digitale tweeling van hoofdstuk 49 is een groot stelsel zulke vergelijkingen, opgelost met de methoden van dit hoofdstuk en hoofdstuk 36.

Clairaut, Lalande en Lepaute rekenden de baan van de komeet van Halley stap voor stap met de hand uit.
Clairaut, Lalande en Lepaute rekenden de baan van de komeet van Halley stap voor stap met de hand uit.
Uitleg · 4.2

Wat je al weet: veranderingen die van de toestand afhangen

2/21
wat je al kanwat nu komt
groei en verval met een groeifactor per tijdstap, verdubbelings- en halveringstijd (hoofdstuk 5 van I)dezelfde processen met een verandering per ogenblik:
RC-kring: per stapje een vaste fractie van wat ontbreekt; (hoofdstuk 24 van I)de RC-vergelijking uit de wetten van Kirchhoff, exact en stap voor stap
de afgeleide als helling, de raaklijn als benadering (hoofdstuk 1)een vergelijking die de helling geeft; stappen langs de raaklijn (Euler)
integreren als ophopen, de linker Riemann-som (hoofdstuk 3)een simulatie telt de veranderingen op, stap na stap
warmtecapaciteit en warmteverlies (hoofdstuk 18 en 19 van I)de warmtebalans als differentiaalvergelijking: het eerste model van de meetkas

In al die voorbeelden hangt de verandering af van de toestand zelf: hoe meer algen, hoe meer er bijkomen; hoe warmer de kas, hoe meer warmte ze verliest. Zo'n verband tussen een grootheid en haar afgeleide is een differentiaalvergelijking. Hier gaat het over de eenvoudigste soort, van de eerste orde: alleen de eerste afgeleide komt voor.

beginwaardeprobleem
geeft in elk punt de helling van de onbekende functie . Een differentiaalvergelijking heeft een hele familie oplossingen; de beginwaarde kiest er één uit.

Een model opstellen is bijna altijd een balans: verandering = wat erin komt − wat eruit gaat. Voor de warmte in de meetkas: de zon brengt warmte binnen, een eventuele verwarming ook, en door de wanden lekt er weg (hoofdstuk 19 van I). Wat overblijft, warmt de kas op met (hoofdstuk 18 van I):

Controleer altijd de eenheden: links J/K maal K/s = W, rechts drie vermogens. Twee woorden die terugkomen: een vergelijking is lineair als er alleen in de eerste macht in staat (zoals hierboven), en autonoom als niet expliciet van afhangt. De kas is niet autonoom: de zon en de buitentemperatuur veranderen met de klok. Een evenwicht is een waarde waar : daar staat alles stil.

modelvergelijkingevenwichtin Habitat
exponentiële groei (onstabiel)algen in de eerste dagen
exponentieel verval (stabiel)condensator die ontlaadt
afkoelen (Newton)station na een stroomuitval
RC ladenontdenderfilter, filter op de batterijmeting
logistische groei en algen in het reservoir
warmtebalansverschuift met meetkas, station
meetkaswarmtecapaciteit Ctemperatuur T(t)zona · G(t)verwarming PUA · (T − Tb )buitenTb (t)verandering = in − uit: C · dT/dt = a · G(t) + P − UA · (T − Tb )
De warmtebalans van de meetkas: wat de zon en een verwarming binnenbrengen, min wat door de wanden weglekt, warmt de kas op.
Uitleg · 4.3

Het richtingsveld: de vergelijking tekent haar eigen oplossingen

3/21

Een differentiaalvergelijking geeft in elk punt een helling. Teken in een rooster van punten een kort lijnstukje met die helling: dat is het richtingsveld. Een oplossing is een kromme die overal aan de lijnstukjes raakt, zoals een blad dat met de stroming meedrijft.

Het voorbeeld is het station na een stroomuitval (hoofdstuk 39): buiten is het −8 °C, de tijdconstante is :

  • De helling hangt alleen van af (autonoom): op elke horizontale lijn staan de lijnstukjes evenwijdig.
  • Op °C zijn ze horizontaal: het evenwicht. Erboven dalen ze, eronder stijgen ze, en hoe verder van −8 °C, hoe steiler. Alle oplossingen lopen naar −8 °C: een stabiel evenwicht.
  • De oplossing door is het station dat op 20 °C stond; door een station dat al kouder was; door een doos die kouder was dan buiten (wiskundig mag dat) en opwarmt naar −8 °C.
  • Twee oplossingen kruisen elkaar nooit. Als netjes is (afleidbaar), gaat door elk punt precies één oplossing: de beginwaarde bepaalt alles wat volgt. Dat is de stelling van Picard en Lindelöf, en de reden dat een simulatie een betrouwbare voorspelling kan zijn.
Een differentiaalvergelijking heeft één oplossing

Ze heeft er oneindig veel: één door elk beginpunt. Wie een model opstelt maar de beginwaarde vergeet (hoe warm was het station toen de stroom uitviel?), kan niets voorspellen.

0123456789−12−8−404812162024t (h)T (°C)T(0) = 20 °CT(0) = 6 °Cevenwicht −8 °CT(0) = −12 °C
Het richtingsveld van dT/dt = −(T + 8)/3: de lijnstukjes wijzen de weg, de oplossingen volgen ze en lopen allemaal naar −8 °C.
Uitgewerkt voorbeeld · 4.4

Klopt deze oplossing?

4/21

Toon aan dat de oplossing is van met . Geef ook de algemene oplossing en bereken wanneer het station 10 °C bereikt.

Gegeven
  • ,
  • voorstel: ( in h)
Gevraagd
  • controle van vergelijking en beginwaarde
  • de algemene oplossing
  • het tijdstip waarop T = 10 °C
Oplossing
  1. 1
    Linkerlid: afleiden met de kettingregel (hoofdstuk 1): .
  2. 2
    Rechterlid: . Beide zijn gelijk voor elke : de functie voldoet aan de vergelijking. En : ook de beginwaarde klopt.
  3. 3
    Algemeen: voldoet voor elke constante (dezelfde rekening). De beginwaarde geeft . Dat is de familie krommen in het richtingsveld.
  4. 4
    10 °C: geeft , dus , ongeveer 80 minuten.
Antwoord
voldoet aan vergelijking en beginwaarde; algemeen . Na ongeveer 80 minuten is het nog 10 °C in het station.
Klopt dit? In het richtingsveld zakt de kromme door door 10 °C net na . Het verschil met buiten halveert elke : van 28 naar 14 °C (station op 6 °C) na 2,1 h. Invullen is de snelste controle van elke oplossing, ook van een simulatie: reken numeriek uit en vergelijk met .
Uitleg · 4.5

Scheiden van veranderlijken: groei en verval

5/21

Waar komt zo'n oplossing vandaan? Neem de eenvoudigste vergelijking, : de verandering is evenredig met wat er is. Breng alle naar links en alle naar rechts, alsof en kleine getallen zijn (Leibniz, hoofdstuk 1), en integreer beide kanten (hoofdstuk 3):

Streng genomen deel je door (dus ; is apart een oplossing, het evenwicht) en gebruik je de kettingregel: . De constante volgt uit de beginwaarde: .

exponentiële groei (k > 0) en verval (k < 0)
De tijdconstante is de tijd waarin een verval tot zakt; de halveringstijd is . Verband met de groeifactor per tijdstap van hoofdstuk 5 van I: , dus . Algen die elke dag verdubbelen, hebben per dag.

Met één substitutie los je meteen alle modellen met een evenwicht op. Staat er , noem dan : omdat constant is, is , en dus :

naar een evenwicht, met tijdconstante τ
Het afkoelende station ( °C, ), de thee, de condensator die laadt (, ): dezelfde formule. Na is 63 % van de weg afgelegd, na 95 %, na meer dan 99 %.

Scheiden lukt voor elke vergelijking van de vorm , als je de twee integralen kan uitrekenen. Dat is minder vaak dan je zou willen; daarom de tweede helft van dit hoofdstuk.

0,00,51,01,52,02,53,03,54,04,55,00,00,10,20,30,40,50,60,70,80,91,0t / τy / y₀t½τ3τy = y₀ · e^(−t/τ)raaklijn in t = 0
Na t½ = 0,69 τ is nog de helft over, na τ 37 %, na 3τ 5 %; de raaklijn in t = 0 bereikt nul na precies τ (hoofdstuk 1).
Uitgewerkt voorbeeld · 4.6

De afkoelingswet van Newton, getoetst aan een beker thee

6/21

In hoofdstuk 5 van Intermediate koelde een beker thee af in een kamer van 21,0 °C:

(min)0481216202428323640
(°C)85,075,066,159,253,047,943,940,137,034,632,5

Stel een differentiaalvergelijking op vanuit een warmtebalans, los ze op, bepaal uit alle metingen en schat hoeveel watt de beker per graad verschil verliest (thee en beker samen , een schatting). Hoe goed doet Euler het met een stap van 4 minuten, de stap van de meting?

0481216202428323640442030405060708090t (min)T (°C)kamer 21,0 °Cmeting (hoofdstuk 5 van I)model τ = 23,2 minEuler, h = 4 min0481216202428323640442,02,53,03,54,04,5t (min)ln(T − 21,0 °C)metingrechte: helling −1/τ
Boven: meting, model en Euler met de meetstap. Onder: ln(T − 21 °C) ligt op een rechte met helling −1/τ.
Gegeven
  • metingen om de 4 min,
Gevraagd
  • de vergelijking en haar oplossing
  • en
  • Euler met h = 4 min
Oplossing
  1. 1
    Balans: de enige warmtestroom gaat naar de kamer, evenredig met het verschil: . Dat is de afkoelingswet van Newton (1701). Dus met .
  2. 2
    Oplossing (vorige blad): .
  3. 3
    Lineariseren: is een rechte in . De kleinste-kwadratenrechte door de elf punten (hoofdstuk 3 van I, onder in de figuur) heeft helling per minuut, dus , en snijpunt °C (gemeten 64,0).
  4. 4
    : bij 50 °C verschil verliest de beker ongeveer 47 W.
  5. 5
    Euler met : . Per stap blijft van het verschil over, in plaats van . Na 40 minuten geeft dat 30,7 °C tegenover 32,4 °C exact (gemeten 32,5 °C).
Antwoord
(het verschil met de kamer halveert elke 16 minuten), . Euler met de meetstap zit na 40 minuten 1,7 °C te laag: de stap is te groot tegenover .
Klopt dit? De residuen van het model zijn hoogstens 0,22 °C en wisselen van teken zonder patroon: het model van Newton past. Bij een open beker is het begin meestal iets sneller dan het model (verdamping); hier zie je dat niet.
Uitgewerkt voorbeeld · 4.7

De RC-kring: een vergelijking uit Kirchhoff, getoetst aan een meting

7/21

In hoofdstuk 24 van Intermediate laadde een Arduino een condensator (opdruk 100 µF, echt 94 µF) via 10 kΩ op tot 5,0 V en mat om de 0,1 s met de 10-bits ADC. Stel de differentiaalvergelijking op met de wetten van Kirchhoff, los ze op, en simuleer met Euler met de meetstap van 0,1 s. Is die simulatie goed genoeg om met de meting te vergelijken?

0,00,51,01,52,02,53,03,54,04,55,00,00,51,01,52,02,53,03,54,04,55,05,5t (s)u over C (V)meting (om de 0,2 s getoond)exact, τ = 0,94 sEuler, h = 0,1 sEuler, h = 0,3 s
De meetpunten liggen op de exacte laadcurve; Euler met h = 0,1 s ligt er zichtbaar boven, met h = 0,3 s nog meer.
Gegeven
  • , , ,
  • ADC-stap
Gevraagd
  • de vergelijking en
  • Euler met h = 0,1 s en de fout
Oplossing
  1. 1
    Maaswet (hoofdstuk 21 van I): . Stroom in een condensator (hoofdstuk 1): . Samen: .
  2. 2
    Dezelfde vorm als bij Newton, met en : . De meetpunten liggen op die kromme, op de afronding van de ADC na (minder dan één stap).
  3. 3
    Euler: . Met blijft per stap van wat ontbreekt over, exact is dat . Euler laadt dus te snel.
  4. 4
    Na 1,0 s: Euler , exact : 102 mV te hoog, 21 ADC-stappen. De grootste afwijking is 102 mV (bij ). Met wordt het 10 mV: tien keer kleiner (orde 1, verderop).
Antwoord
, dus met . Euler met de meetstap zit tot 102 mV naast de exacte kromme, 21 keer de meetresolutie: te grof om met deze meting te vergelijken.
Klopt dit? Vuistregel: de fout van een simulatie moet veel kleiner zijn dan de meetfout, anders vergelijk je je rekenfout met de werkelijkheid. De stap van de meting (0,1 s) heeft niets te maken met de stap die de simulatie nodig heeft; die volgt uit en de gewenste nauwkeurigheid.
Uitleg · 4.8

Logistische groei: groeien tot een plafond

8/21

Geen groei is eeuwig exponentieel: algen nemen elkaar het licht af, een voedingsstof raakt op (hoofdstuk 5 van I). In 1838 stelde de Brusselse wiskundige Pierre-François Verhulst een eenvoudige correctie voor, om de groei van een bevolking te beschrijven: laat de relatieve groeisnelheid lineair dalen tot nul bij een grens , de draagkracht. In 1845 noemde hij de kromme logistique.

logistische vergelijking en haar oplossing
: groeisnelheid bij kleine (per dag); : draagkracht (zelfde eenheid als ). Voor is : exponentieel. Evenwichten: (onstabiel) en (stabiel).

Afleiding. Scheiden: . Splits de breuk in partiële breuken: (tel maar op). Integreren geeft , dus . Los op naar : de formule in het kader.

Het snelste punt. De groeisnelheid is een bergparabool in met top waar : bij , met . Daar heeft een buigpunt: de S-kromme gaat van hol naar bol. De relatieve groeisnelheid is een dalende rechte in : dat is de sleutel om en uit metingen te halen (volgend blad).

In het richtingsveld: onder stijgen de lijnstukjes, boven dalen ze (te veel algen voor het licht: ze sterven af tot ). Van heel dicht bij 0 duurt het lang voor er iets te zien is; dan gaat het snel, en bij vlakt het af.

0246810121416024681012t (dag)N (10⁵ cellen per mL)N(0) = 0,019N(0) = 1,0N(0) = 11evenwichten 0 en K
Alle oplossingen met N(0) > 0 lopen naar K; de onderste start met de algen van het testreservoir en is S-vormig.
Uitgewerkt voorbeeld · 4.9

Habitat: de draagkracht van het testreservoir

9/21

In het doorzichtige testreservoir (hoofdstuk 5 van I, opdracht 5.13) groeiden de algen tot dag 6 exponentieel en daarna trager. Bepaal en uit de relatieve groeisnelheid, vergelijk het logistische model met de metingen, en bereken wanneer het alarm ( cellen per mL) afgaat volgens het exponentiële en volgens het logistische model. Hoe goed doet Euler het met een stap van één dag?

0123456780,00,10,20,30,40,50,60,70,80,9N (10⁵ cellen per mL)relatieve groei (per dag)r = 0,70 per dagK = 7,7uit de metingen (centrale differentie van ln N)rechte r · (1 − N/K)
De relatieve groeisnelheid tegen N: waar de rechte de horizontale as snijdt, ligt de draagkracht K.
Gegeven
  • per dag: 0,019; 0,038; 0,082; 0,143; 0,307; 0,540; 1,160; 1,960; 3,300; 4,410; 5,850 ( per mL, dag 0 tot 10)
  • alarm bij per mL
Gevraagd
  • en
  • model tegenover meting
  • tijdstip van het alarm
  • Euler met h = 1 dag
Oplossing
  1. 1
    Relatieve groeisnelheid: , met een centrale differentie over twee dagen (hoofdstuk 1): .
    dag123456789
    (10⁵ /mL)0,0380,0820,1430,3070,5401,161,963,304,41
    groei (/dag)0,730,660,660,660,660,640,520,410,29
  2. 2
    Tot blijft ze rond 0,66 per dag, daarna daalt ze. Een rechte door de negen punten (kleinste kwadraten) geeft per dag en snijdt de -as in per mL.
  3. 3
    Model: . Het ligt hoogstens 10 % naast elke meting, over een factor 300 in .
  4. 4
    Alarm: geeft dagen. Het exponentiële model met dezelfde zegt dagen. Gemeten: tussen dag 9 en 10.
  5. 5
    Euler met dag: in het begin groeit per stap met de factor in plaats van . Op dag 10 geeft Euler in plaats van ; met dag .
Antwoord
per dag (verdubbeling per dag), per mL. Het logistische model voorspelt het alarm na 9,4 dagen, zoals gemeten; het exponentiële 1,5 dagen te vroeg.
Klopt dit? De draagkracht ligt maar 1,5 keer boven de alarmgrens: in dit reservoir begrenst het licht de algen al vroeg. Een lichtdicht reservoir (het besluit van hoofdstuk 5 van I) zet bijna op nul, en dan komt geen enkele grens in zicht. Het buigpunt () valt volgens het model op dag 8,5.
0246810121416103104105106107t (dag)N (cellen per mL)alarm 5 · 10⁵metingenexponentieellogistischEuler, h = 1 dag
Exponentieel past tot dag 6; het logistische model volgt ook de afvlakking. Euler met h = 1 dag blijft achter.
Uitleg · 4.10

De methode van Euler

10/21

De meeste vergelijkingen uit de praktijk, zoals die van de meetkas met haar zon en buitentemperatuur die met de klok veranderen, kan je niet scheiden. Dan rekent een computer de oplossing stap voor stap uit. Het idee komt uit hoofdstuk 1: dicht bij een punt valt een kromme bijna samen met haar raaklijn, . En de helling ken je in elk punt: dat is precies wat de differentiaalvergelijking zegt.

methode van Euler
Vertrek in , zet een stap langs de raaklijn, reken in het nieuwe punt de nieuwe helling uit, en herhaal. Het resultaat is een gebroken lijn die de oplossing benadert.

In de figuur koelt het station af met stappen van 1,5 h en van 0,5 h. Elk lijnstuk heeft de helling van het richtingsveld in zijn beginpunt. Omdat de kromme bol (naar boven gekromd) daalt, schiet elke stap onder de echte oplossing door: Euler koelt het station te snel af. Met een kleinere stap ligt de gebroken lijn dichter bij de kromme.

Twee manieren om Euler te begrijpen die je al kent:

  • Als integraal. , en Euler benadert die integraal met de linker Riemann-som (hoofdstuk 3): in elke strook de hoogte van het beginpunt.
  • Als vaste fractie per stap. Voor geeft Euler : per stapje gaat er een vaste fractie af, zoals bij de condensator van hoofdstuk 24 van I. Na stappen is , en voor is dat precies .
0123456789−8−4048121620t (h)T (°C)buiten −8 °CexactEuler, h = 1,5 hEuler, h = 0,5 h
Elk lijnstuk van Euler volgt de helling in zijn beginpunt; met h = 1,5 h schiet de simulatie ver onder de echte afkoeling.
Uitgewerkt voorbeeld · 4.11

Euler met de hand

11/21

Simuleer het afkoelende station, met °C, met de methode van Euler en een stap van een half uur tot . Vergelijk met de exacte oplossing en verklaar het teken van de fout.

Gegeven
  • (°C/h)
  • ,
Gevraagd
  • tot en de fout
Oplossing
  1. 1
    Stap 1: °C/h, dus °C.
  2. 2
    Stap 2: , dus °C. Zo verder:
    (h) (°C) (°C/h)exact (°C)fout (°C)
    00,020,000−9,33320,0000,000
    10,515,333−7,77815,701−0,368
    21,011,444−6,48112,063−0,618
    31,58,204−5,4018,983−0,779
    42,05,503−4,5016,376−0,873
  3. 3
    Handig: elke stap vermenigvuldigt het verschil met buiten met . Na vier stappen: , dus °C. Exact: .
  4. 4
    De fout is negatief en groeit: elke stap gebruikt de helling aan het begin van de stap, en die is steiler dan gemiddeld over de stap (de afkoeling vertraagt).
Antwoord
°C tegenover °C exact: 0,87 °C te koud na vier stappen.
Klopt dit? De verhouding tegenover per stap verklaart alles. Met een half zo grote stap wordt de fout ongeveer half zo groot: dat bekijkt het volgende blad.
Code · 4.12

Euler in Python

12/21

Een functie euler(f, y0, t0, t1, h) werkt voor elke vergelijking: je geeft mee als Python-functie. Ernaast de verbeterde Euler of methode van Heun: zet eerst een proefstap met Euler, reken ook daar de helling uit, en gebruik het gemiddelde van beide hellingen (de trapeziumregel van hoofdstuk 3 in plaats van de linker Riemann-som). Het programma rekent het station uit tot en deelt de fout door en door .

Pythoneuler.py38 regelsDownload
# euler.py - de methode van Euler, en de verbeterde Euler (Heun) als voorsmaakje van hoofdstuk 36import numpy as np  def euler(f, y0, t0, t1, h):    """Lost dy/dt = f(y, t) op van t0 tot t1 met stap h; geeft de tijden en de waarden terug."""    n = round((t1 - t0) / h)    t = t0 + h * np.arange(n + 1)    y = np.empty(n + 1)    y[0] = y0    for k in range(n):        y[k + 1] = y[k] + h * f(y[k], t[k])                 # een stap langs de raaklijn    return t, y  def heun(f, y0, t0, t1, h):    """Gemiddelde van de helling aan het begin en (geschat) aan het eind van elke stap."""    n = round((t1 - t0) / h)    t = t0 + h * np.arange(n + 1)    y = np.empty(n + 1)    y[0] = y0    for k in range(n):        k1 = f(y[k], t[k])        k2 = f(y[k] + h * k1, t[k] + h)        y[k + 1] = y[k] + h / 2 * (k1 + k2)    return t, y  def station(T, t):                     # het station na een stroomuitval: dT/dt in graden per uur    return -(T + 8) / 3  exact = -8 + 28 * np.exp(-1)          # T(3 h) exactprint("    h     Euler T(3)    fout    fout/h   Heun: fout   fout/h²")for h in (1.0, 0.5, 0.25, 0.1, 0.01):    fe = euler(station, 20, 0, 3, h)[1][-1] - exact    fh = heun(station, 20, 0, 3, h)[1][-1] - exact    print(f"{h:6.2f} {exact + fe:12.4f} {fe:8.4f} {fe / h:8.3f} {fh:12.2e} {fh / h**2:8.3f}")

Uitvoer:

    h     Euler T(3)    fout    fout/h   Heun: fout   fout/h²
  1.00       0.2963  -2.0043   -2.004     2.47e-01    0.247
  0.50       1.3771  -0.9235   -1.847     5.42e-02    0.217
  0.25       1.8559  -0.4447   -1.779     1.27e-02    0.203
  0.10       2.1265  -0.1741   -1.741     1.96e-03    0.196
  0.01       2.2834  -0.0172   -1.719     1.91e-05    0.191

Bij Euler is fout/h vrijwel constant: de fout is evenredig met . Die constante kan je zelfs voorspellen: per stap is de fout ongeveer , en opgeteld over stappen geeft dat voor dit model (opdracht 4.13). Bij Heun is fout/h² constant: tien keer kleinere stap, honderd keer kleinere fout. Heun rekent twee hellingen per stap, maar dat loont: met (60 hellingen) is de fout 0,0020 °C, kleiner dan die van Euler met (300 hellingen, 0,017 °C).

numpy en scipy

In de praktijk schrijf je Euler zelden zelf. scipy.integrate.solve_ivp kiest de methode (standaard een Runge-Kutta van orde 4-5) én de stap zelf, zodat de fout onder een tolerantie blijft. Wie begrijpt wat Euler doet, weet wat zo'n functie moet bewaken: de fout per stap en de stabiliteit (hoofdstuk 36).

Uitleg · 4.13

Stapgrootte en fout: Euler is van orde 1

13/21

Waarom halveert de fout als je de stap halveert? De reeks van Taylor (hoofdstuk 1) geeft de echte oplossing over één stap:

Euler houdt alleen de eerste twee termen. De lokale fout per stap is dus ongeveer . Over een vast interval zet je stappen, en die fouten tellen op (en planten zich voort):

Euler: orde 1
Halveer : de fout halveert, het rekenwerk verdubbelt. Tien keer nauwkeuriger kost tien keer zoveel stappen. Heun heeft een lokale fout en een globale fout (orde 2); de klassieke Runge-Kutta van hoofdstuk 36 is van orde 4.

Op een log-loggrafiek is een fout een rechte met helling (hoofdstuk 1 deed hetzelfde voor differenties). Euler en Heun op het afkoelende station tonen hellingen 1 en 2. Anders dan bij numeriek differentiëren speelt de afronding hier bijna geen rol: pas bij miljarden stappen tellen de afrondingsfouten van merkbaar op.

Een kleine stap maakt een simulatie juist

Een kleine stap maakt de numerieke fout klein: het verschil tussen de simulatie en de exacte oplossing van het model. Is het model zelf fout (een ontbrekende warmtestroom, een verkeerde ), dan reken je heel precies het verkeerde uit. Beide fouten schat je apart: de numerieke door de stap te halveren, de modelfout door te vergelijken met metingen.

10-310-210-110010-710-610-510-410-310-210-1100101stap h (h)|fout| op T(3 h) (°C)helling 1helling 2Euler: orde 1Heun: orde 2
Euler: tien keer kleinere stap, tien keer kleinere fout (helling 1). Heun: honderd keer kleinere fout (helling 2).
Uitleg · 4.14

Instabiliteit: als de stap te groot is

14/21

Neem opnieuw . Euler geeft , dus . Wat er gebeurt, hangt volledig af van de factor :

  • : , een dalende rij zonder tekenwissel (te snel, maar redelijk);
  • : , na één stap is alles weg;
  • : , de rij springt om beurten boven en onder nul, maar dempt uit: een afkoelend station dat afwisselend kouder en warmer wordt dan buiten;
  • : , de rij explodeert, terwijl de echte oplossing naar nul gaat.
stabiliteit van Euler bij verval
Voor een systeem met meer tijdconstanten beslist de kleinste. Nauwkeurig wordt het pas bij ; is alleen de grens waaronder het niet ontploft.

Een Habitat-voorbeeld: het station heeft , maar zijn temperatuursensor heeft een tijdconstante van 60 s (hoofdstuk 39). Wie station en sensor samen simuleert met Euler, moet een stap onder 120 s nemen, hoewel het station zelf uren nodig heeft om te veranderen. Zo'n stelsel met sterk verschillende tijdconstanten heet stijf. De simulatie van hoofdstuk 39 rekent daarom met stappen van 10 s. Hoofdstuk 36 toont impliciete methoden die voor stijve stelsels veel grotere stappen toelaten (opdracht 4.14).

Een simulatie die ontploft, heeft een fout model

Niet noodzakelijk: het model kan perfect zijn en de methode met die stap onstabiel. Halveer de stap: verdwijnt het probleem, dan was het numeriek. Hetzelfde geldt op een microcontroller: het exponentiële filter van hoofdstuk 21 is een Euler-stap met , en is alleen stabiel voor .

012345678910−4−3−2−10123456t / τy / y₀exacth = 0,5 τh = 1,5 τh = 2,5 τ
Met h = 0,5 τ daalt Euler netjes, met 1,5 τ springt hij van teken maar dempt uit, met 2,5 τ explodeert hij.
Code · 4.15

Tweede orde en stelsels: dezelfde Euler met vectoren

15/21

De tweede wet van Newton is een vergelijking van de tweede orde: . Voer de snelheid in als tweede onbekende, dan heb je twee vergelijkingen van de eerste orde:

Schrijf de toestand als vector ; dan is het stelsel weer en is Euler letterlijk dezelfde regel: . Met numpy werkt dezelfde code voor vectoren.

Voorbeeld. Een pakket van 2,0 kg (een doos van 30 cm) valt uit een bevoorradingsdrone van 40 m hoogte (hoofdstuk 9). De luchtweerstand is met , en : . Naar beneden positief:

De snelheid stopt met stijgen als de weerstand het gewicht opheft: de eindsnelheid . (De vergelijking voor alleen is scheidbaar: , zie de naslag.)

Pythonpakket.py15 regelsDownload
import numpy as np m, g, k = 2.0, 9.81, 0.0567           # massa (kg), zwaarteveld (N/kg), k = ½ · ρ · cd · A (kg/m)  def f(y, t):                          # y = [gevallen afstand x (m), snelheid v (m/s)], naar beneden positief    x, v = y    return np.array([v, g - k / m * v * abs(v)])  y, t, h = np.array([0.0, 0.0]), 0.0, 0.1while y[0] < 40.0:                    # tot het pakket 40 m gevallen is    y = y + h * f(y, t)               # dezelfde Euler-stap, nu met een vector    t = t + hprint(f"na {t:.1f} s: {y[0]:.1f} m gevallen, v = {y[1]:.1f} m/s")

Uitvoer:

na 3.5 s: 41.1 m gevallen, v = 17.8 m/s

Exact valt het pakket 3,41 s en raakt het de grond met 17,6 m/s; zonder lucht zou het na 2,86 s met 28,0 m/s neerkomen. Euler met zit er een tiende van een seconde naast (de simulatie stopt aan de eerste stap voorbij 40 m). Zo simuleer je in hoofdstuk 8 banen, in hoofdstuk 17 twee warmteknopen en in hoofdstuk 32 prooien en predatoren: telkens een vector en dezelfde stap.

0,00,51,01,52,02,53,03,54,0051015202530t (s)v (m/s)eindsnelheid 18,6 m/szonder luchtmet luchtweerstand (exact)Euler, h = 0,5 s
Zonder lucht stijgt v rechtlijnig; met luchtweerstand buigt ze af naar de eindsnelheid. Euler met h = 0,5 s volgt grof.
Naslag · 4.16

Differentiaalvergelijkingen: formules en werkwijze

16/21

Werkwijze: (1) balans opstellen, eenheden controleren; (2) evenwichten zoeken () en het richtingsveld schetsen; (3) exact oplossen als het kan (scheiden), anders simuleren; (4) numerieke fout controleren door de stap te halveren; (5) vergelijken met metingen.

beginwaardeprobleem
scheiden van veranderlijken
lineair met evenwicht
symboolbetekeniseenheid
tijdconstante: C/(UA), RC, V/Qs
evenwichtswaardeeenheid van y
halverings- en verdubbelingstijd
logistisch
symboolbetekeniseenheid
groeisnelheid1/s, 1/dag
draagkrachteenheid van N
val met kwadratische weerstand
Euler (orde 1)
symboolbetekeniseenheid
tijdstaps
Heun (orde 2)
stabiliteit van Euler
systeemtijdconstantewaarde in Habitat
station (één knoop)540 kJ/K / 50 W/K = 3 h
meetkas (snelle knoop)30 kJ/K / 16,7 W/K ≈ 30 min
klimaatmodule 's nachts1,1 MJ/K / 20,2 W/K ≈ 15 h
RC-meting (hoofdstuk 24 van I)10 kΩ · 94 µF = 0,94 s
filter op de batterijmeting24,8 kΩ · 100 nF = 2,5 ms
temperatuursensor (hoofdstuk 39)60 s
CO₂ in de woonmodule62 m³ / 50 m³/h ≈ 1,2 h
Code · 4.17

Habitat: de kastemperatuur simuleren

17/21

Nu het echte werk: het brein van het station moet kunnen voorspellen hoe warm de meetkas wordt. Het model is de warmtebalans van het tweede blad, met één temperatuur voor de hele kas (één knoop):

  • : het warmteverlies van de meetkas, nagerekend in hoofdstuk 19 van I.
  • : de gemeten buitentemperatuur van de zonnige aprildag (hoofdstuk 4 van F), lineair geïnterpoleerd tussen de uurwaarden.
  • : de instraling op een horizontaal vlak bij heldere hemel, met het eenvoudige zonnemodel van hoofdstuk 3 (20 april, Brussel). De klok van het station staat het hele jaar op wintertijd (hoofdstuk 30 van I): de zon staat om 12:42 in het zuiden.
  • (m²): de effectieve zonnewinst, alsof m² zonlicht volledig in kaswarmte omgezet wordt. Bovengrens: het dak (0,72 m²) maal de doorlaat van de platen (80 %) is 0,58 m².
  • : de warmtecapaciteit. Alles samen (tabel) is ongeveer 248 kJ/K, maar het water onder de tafel en de diepere grond volgen de dag niet. De snelle massa (lucht, platen, frame, bakjes, planten en de bovenste centimeter grond) is ongeveer 29 kJ/K.
deel van de meetkas (kJ/K)
water in het reservoir (24 kg)100,5
vochtige potgrond (21 kg water, 22 kg droog)109,9
tafel, hout (15,1 kg)24,2
12 bakjes, PP (3,6 kg)6,8
platen, PC (2,9 kg)3,5
frame, aluminium (3,1 kg)2,8
lucht (0,69 kg)0,7
samen248

Het programma simuleert eerst drie keuzes voor en en zoekt daarna in een raster welke combinatie de uurwaarden het best volgt, met de rms-fout (de wortel uit het gemiddelde kwadraat van de verschillen) als maat.

Pythonkas.py53 regelsDownload
# kas.py - eerste simulatie van de meetkas op de zonnige aprildag (klok in wintertijd, UTC+1)import mathimport numpy as np # uurwaarden van 0:00 tot 24:00 (hoofdstuk 4 van Fundamental)KAS = [9.5, 9.0, 8.6, 8.2, 7.9, 7.7, 7.7, 8.2, 11.0, 15.5, 20.5, 25.0, 28.5, 31.0, 32.0, 30.5, 27.5, 23.5,       19.5, 16.0, 13.5, 12.0, 11.0, 10.3, 9.8]BUITEN = [8.5, 8.0, 7.6, 7.2, 6.9, 6.7, 6.6, 7.2, 8.6, 10.4, 12.3, 14.0, 15.4, 16.5, 17.3, 17.8, 17.9, 17.3,          16.0, 14.3, 12.6, 11.3, 10.3, 9.5, 8.8]UA = 16.7                                # warmteverlies van de meetkas (W/K)  def zon(t, dag=110, lat=50.8, lon=4.35):    """Instraling op een horizontaal vlak bij heldere hemel (W/m²); t = kloktijd in wintertijd (h)."""    d = math.radians(23.44 * math.sin(math.radians(360 / 365 * (284 + dag))))            # declinatie    B = math.radians(360 / 365 * (dag - 81))    tv = 9.87 * math.sin(2 * B) - 7.53 * math.cos(B) - 1.5 * math.sin(B)                 # tijdvereffening (min)    w = math.radians(15 * (t - 1 + lon / 15 + tv / 60 - 12))                            # uurhoek    s = (math.sin(math.radians(lat)) * math.sin(d)         + math.cos(math.radians(lat)) * math.cos(d) * math.cos(w))                     # sinus van de zonnehoogte    if s <= 0:        return 0.0    direct = 1361 * 0.7 ** ((1 / max(s, 0.02)) ** 0.678)                                # loodrecht op de stralen    return direct * s + 0.12 * direct * s + 20 * math.sqrt(s)                           # direct + diffuus  def simuleer(C, a, dt=60.0, T0=KAS[0], P_verw=0.0):    """Euler voor C dT/dt = a G(t) + P - UA (T - T_buiten(t)), een dag lang."""    n = round(24 * 3600 / dt)    t = np.arange(n + 1) * dt / 3600                          # tijd in uren    T = np.empty(n + 1)    T[0] = T0    for k in range(n):        T_buiten = np.interp(t[k], range(25), BUITEN)        P = a * zon(t[k]) + P_verw - UA * (T[k] - T_buiten)    # netto warmtestroom (W)        T[k + 1] = T[k] + dt * P / C                           # Euler-stap    return t, T  def rms(T, dt=60.0):    """Wortel uit het gemiddelde kwadraat van (model - meting) op de hele uren."""    return math.sqrt(np.mean((T[::round(3600 / dt)] - np.array(KAS)) ** 2))  for naam, C, a in (("alle massa, heel het dak ", 248e3, 0.58), ("snelle massa, heel het dak", 30e3, 0.58),                   ("snelle massa, a = 0,30   ", 30e3, 0.30)):    t, T = simuleer(C, a)    print(f"{naam}: max {T.max():5.1f} °C om {t[T.argmax()]:5.2f} h, min {T.min():4.1f} °C, rms {rms(T):4.2f} °C") print("\nrms (°C)   a = " + "  ".join(f"{a:.2f}" for a in (0.20, 0.25, 0.30, 0.35, 0.40)))for C in (20e3, 30e3, 40e3, 60e3, 100e3, 150e3, 250e3):    fouten = [rms(simuleer(C, a, dt=120.0)[1], dt=120.0) for a in (0.20, 0.25, 0.30, 0.35, 0.40)]    print(f"C = {C / 1000:3.0f} kJ/K  " + "  ".join(f"{f:4.2f}" for f in fouten))

Uitvoer:

alle massa, heel het dak : max  34.8 °C om 16.13 h, min  7.6 °C, rms 6.56 °C
snelle massa, heel het dak: max  43.4 °C om 13.67 h, min  6.7 °C, rms 6.42 °C
snelle massa, a = 0,30   : max  30.5 °C om 14.03 h, min  6.7 °C, rms 0.82 °C

rms (°C)   a = 0.20  0.25  0.30  0.35  0.40
C =  20 kJ/K  2.39  1.36  0.81  1.45  2.50
C =  30 kJ/K  2.50  1.47  0.82  1.36  2.38
C =  40 kJ/K  2.67  1.66  1.01  1.38  2.33
C =  60 kJ/K  3.08  2.19  1.61  1.72  2.43
C = 100 kJ/K  4.03  3.31  2.85  2.77  3.09
C = 150 kJ/K  5.06  4.49  4.10  3.95  4.07
C = 250 kJ/K  6.46  6.02  5.70  5.51  5.48

Met alle massa is de kas veel te traag: de top valt om 16:08 in plaats van 14:00 en de fout is 6,5 °C. Met de snelle massa en het hele dak wordt ze 43 °C: veel te warm. Met en zakt de fout onder 1 °C. Het raster toont een lang dal: voor elke tussen 20 en 40 kJ/K is het best, en de fout verandert er nauwelijks. Maar zodra groter wordt, helpt geen enkele nog. We kiezen (de schatting van de snelle massa) en : de tijdconstante van de kas is dan .

Waarom een stap van een minuut?

Met is Euler stabiel voor stappen onder een uur. Met 45 minuten () schommelt de simulatie al; met 75 minuten () explodeert ze, tot 1010 °C en −1495 °C (figuur). Een minuut is ruim veilig en kost de Pi niets: 1440 stappen per dag.

024681012141618202224−1001020304050kloktijd (h)T (°C)dt = 1 mindt = 45 min (1,5 τ)dt = 75 min (2,5 τ)
Hetzelfde model, drie stappen: met 1 min glad, met 45 min schokkerig, met 75 min onstabiel.
Ontleed · 4.18

Habitat: model en meting naast elkaar

18/21

Boven: de uurwaarden van de aprildag, de simulatie met en , de simulatie met alle massa en het hele dak, en de buitentemperatuur. Onder: de instraling waarmee het model rekent.

024681012141618202224051015202530354045kloktijd (h, wintertijd)T (°C)uurwaarden (aprildag)model C = 30 kJ/K, a = 0,30 m²model met alle massabuiten0246810121416182022240200400600800kloktijd (h, wintertijd)G (W/m²)zon op een horizontaal vlak (heldere hemel, 20 april)
Het eenvoudige model volgt de dag op ongeveer een graad; waar het afwijkt, vertelt het wat er nog ontbreekt.
Wijs een nummer aan: de figuur zoomt in. Klik om vast te zetten.
  1. 1
    De nacht

    Zonder zon zakt het model tot op de buitentemperatuur (gemiddeld 0,8 °C te koud tussen 1 en 6 uur). De echte kas blijft ongeveer 1 °C warmer: de grond en het water geven 's nachts warmte af, en die trage massa zit niet in het model.

  2. 2
    Opwarmen

    Het model warmt het snelst op om 9:11: 4,7 °C/h. Hoofdstuk 1 haalde uit de uurwaarden 5,0 °C/h om 9:27. De ochtend klopt goed.

  3. 3
    De top

    Model 30,5 °C om 14:02, meting 32,0 °C om 14:00: het model blijft 1,5 °C onder de top. Mogelijk meet de sensor in de zon iets te hoog (stralingsfout), of krijgt de kas rond de middag meer zon dan een horizontaal vlak.

  4. 4
    De avond

    Om 18 uur is het model 1,8 °C te warm: de echte kas koelt sneller af. Kandidaten: de verdamping van ongeveer 1,8 L water per dag (gemiddeld 89 W overdag) en de trage massa die 's middags warmte opneemt.

  5. 5
    Alle massa: te traag

    Met C = 248 kJ/K (τ = 4,1 h) en het hele dak piekt het model pas om 16:08 op 34,7 °C: een kas die de hele massa in één keer moet opwarmen, loopt uren achter.

  6. 6
    De zon

    Om 12:42 staat de zon in het zuiden: 785 W/m². Zonsopgang 5:46, zonsondergang 19:37 (wintertijd); samen 6,2 kWh per m² op een horizontaal vlak.

Uitleg · 4.19

Simulatie tegenover meting: wat vertellen de verschillen?

19/21

Een model vergelijk je niet op het oog. Drie gereedschappen:

1. Eén getal: de rms-fout. vat de afwijking samen. De niveaulijnen tonen haar over alle combinaties van en (uit dezelfde simulatie). De kleinste fout, 0,80 °C, ligt in een lang, smal dal: een grotere met een iets grotere doet het bijna even goed. Deze meting kan en dus niet goed scheiden. Wie echt wil kennen, meet een avond zonder zon: dan geldt en geeft de afkoeling rechtstreeks (opdracht 4.8).

2. De residuen: model min meting, uur per uur. Ze vertellen meer dan hun rms. Hier hebben ze een patroon: 's nachts te koud, rond de middag te koud, 's avonds te warm. Toevallige meetfouten wisselen willekeurig van teken; een patroon betekent dat er iets in het model ontbreekt, en geen enkele keuze van en haalt het weg (de rms zakt nergens onder 0,8 °C).

3. Fysische verklaringen. Wat ontbreekt er?

  • Trage massa. Grond en water nemen overdag warmte op en geven ze 's nachts af: warmere nachten, een koelere namiddag. Dat vraagt een tweede knoop met zijn eigen temperatuur (hoofdstuk 17).
  • Verdamping. 1,8 L water per dag kost , overdag gemiddeld 89 W: een flinke extra warmtestroom naar buiten, vooral als het warm is.
  • De zon op de wanden. Laag in de ochtend en de avond valt de zon door de zijwanden, rond de middag door het dak; een horizontaal vlak is maar een benadering.
  • De sensor. Een temperatuursensor in de zon meet te hoog; de houder van hoofdstuk 32 van F heeft daarom een dakje.
Fitten en testen op verschillende dagen

We hebben en gekozen op dezelfde dag waarop we het model beoordelen. Eerlijker is: parameters schatten op één dag en het model testen op een andere (een bewolkte dag, een warme dag). Dat is de kern van hoofdstuk 36 (curve fitting) en hoofdstuk 41 (train en test). De statisticus George Box vatte het samen: alle modellen zijn fout, maar sommige zijn nuttig.

0204060801001201401601802002202402600,100,150,200,250,300,350,400,450,500,550,60C (kJ/K)a (m²)rms 1 en 1,5 °C2 en 3 °C4 en 5 °Ckleinste fout (0,8 °C)alle massa, heel het dakgekozen
De rms-fout over C en a: een lang dal met de kleinste fout bij kleine C en a ≈ 0,30 m²; alle massa met het hele dak ligt ver buiten het dal.
024681012141618202224−3−2−10123kloktijd (h)model − meting (°C)
Residuen met een patroon: 's nachts en rond de middag te koud, 's avonds te warm. Dat is geen ruis.
Uitgewerkt voorbeeld · 4.20

Habitat: halen we eis K7 met watt of met water?

20/21

Eis K7 van de meetkas (wens, hoofdstuk 30 van F) vraagt dat de kas 's nachts minstens 1 °C warmer blijft dan buiten. Het model met en haalt dat niet. Vergelijk twee oplossingen: (a) een verwarming die van 21:00 tot 6:00 werkt, (b) extra water in donkere jerrycans in de zon, 20 L of 40 L. Simuleer drie keer dezelfde dag na elkaar en beoordeel de nacht van 22:00 tot 6:00 op de derde dag (dan is de begintoestand vergeten).

02468101214161820222405101520253035kloktijd (h)T (°C)zonder buffer+ 20 L water+ 40 L waterbuiten
Hoe meer water in de zon, hoe vlakker de dag: minder warm overdag, warmer 's nachts (model met één knoop).
Gegeven
  • , ,
  • water: 4,19 kJ/K per liter
  • energie meetkas: 44 tot 63 Wh per dag, batterij ±250 Wh (hoofdstuk 21 en 33 van F)
Gevraagd
  • verwarming: vermogen en energie
  • water: effect volgens het model
  • een onderbouwde keuze
Oplossing
  1. 1
    Verwarming: 1 °C extra vraagt in evenwicht , negen uur lang: per nacht. Dat is twee à drie keer het hele dagbudget van de meetkas en meer dan de helft van de batterij. Elektrisch verwarmen valt af.
  2. 2
    Water: 20 L voegt toe, 40 L . Het model met die grotere :
    variant (model)hoogste T overdag22-6 uur: kleinste T − Tb22-6 uur: gemiddeld T − Tb
    zonder buffer30,5 °C0,1 °C0,3 °C
    17 W verwarming 's nachts30,5 °C1,1 °C1,3 °C
    + 20 L water28,8 °C0,5 °C1,5 °C
    + 40 L water26,6 °C1,4 °C3,4 °C
  3. 3
    Het water neemt overdag warmte op (de top zakt tot 27 °C met 40 L) en geeft ze 's nachts af: met 40 L blijft de kas de hele nacht minstens 1,4 °C warmer dan buiten. Bonus: minder oververhitting, dus minder raambewegingen.
  4. 4
    Maar dit is een bovengrens. Het model met één knoop veronderstelt dat water en lucht altijd dezelfde temperatuur hebben; in werkelijkheid geeft een jerrycan zijn warmte maar traag af (twee knopen, hoofdstuk 17). Het water moet overdag in de zon staan en 's nachts aan de lucht: tussen de plantenbakjes is geen plaats, dus bv. zwarte flessen langs de achterwand.
Antwoord
Watt: 17 W en ongeveer 150 Wh per nacht, onhaalbaar met een zonnepaneel van 50 Wp. Water: volgens het model haalt ongeveer 40 L in de zon K7 ruim, en de kas wordt overdag minder heet. Advies: een proef met 20 tot 40 L in donkere flessen, gemeten met de logger, en een model met twee knopen.
Klopt dit? Hoofdstuk 16 van F schatte met een ruwe rekening dat 24 L die 's nachts 5 °C afkoelt, de kas ongeveer 0,8 °C warmer houdt; het model geeft met 20 L gemiddeld 1,5 °C over de hele nacht: dezelfde orde. Opdracht 4.11 werkt de keuze uit.
Donkere flessen water langs de achterwand: overdag vangen ze zon, 's nachts geven ze warmte af.
Donkere flessen water langs de achterwand: overdag vangen ze zon, 's nachts geven ze warmte af.
Het geheel · 4.21

Waar differentiaalvergelijkingen vandaan komen en waar ze heen gaan

21/21

Een differentiaalvergelijking verbindt de afgeleide (hoofdstuk 1) met het integreren (hoofdstuk 3): ze zegt hoe snel iets verandert, en de oplossing telt die veranderingen op. Ze is de taal van elk dynamisch model, van warmte (E) en elektronica (L) tot groei in de biologie (B) en regelen (R). Simuleren is programmeren (P) in dienst van die modellen.

Groeifactor, verdubbelings- en halveringstijd, de thee en de algen: hier als dy/dt = ky.

Warmtecapaciteit C = m · c en de nachtbuffer van de module.

UA van de meetkas (16,7 W/K) en de module (20,2 W/K).

De RC-meting en de vaste fractie per stapje: de voorloper van Euler.

De raaklijn als benadering is de Euler-stap; centrale differenties schatten r uit de algen.

Scheiden van veranderlijken is integreren; Euler is een linker Riemann-som, Heun een trapeziumregel.

Het warmtemodel met twee knopen: de trage massa die hier ontbrak.

Logistische groei en Lotka-Volterra: stelsels van groeivergelijkingen.

Runge-Kutta, stapgrootteregeling, impliciete methoden voor stijve stelsels, parameters fitten.

Eerste- en tweedeordesystemen, tijdconstante en stapresponsie.

De PID-simulatie van het station is een Euler-simulatie met τ = 3 h.

De digitale tweeling: een stelsel differentiaalvergelijkingen dat meeloopt met de metingen.

HabitatHet brein van het station heeft nu een eerste model van de meetkas: met , (snelle massa) en , gesimuleerd met Euler in stappen van een minuut; het volgt de aprildag op ongeveer een graad. Het toont dat eis K7 met water haalbaar is en niet met elektriciteit. Hoofdstuk 17 voegt de trage knoop toe, hoofdstuk 36 fit de parameters op echte logs. Opdracht 4.11 werkt de buffer uit.
Samenvatting

In het kort

Begrippen

Wat je nu kent

differentiaalvergelijking
Een vergelijking tussen een onbekende functie en haar afgeleide(n), bv. : ze zegt hoe snel verandert in elke toestand.
beginwaardeprobleem
Een differentiaalvergelijking samen met een beginwaarde ; als netjes is, ligt de oplossing daarmee vast.
evenwicht
Een constante oplossing met . Stabiel als oplossingen in de buurt ernaartoe gaan, onstabiel als ze ervan weglopen.
richtingsveld
Een tekening met in elk punt een kort lijnstuk met helling ; oplossingen raken overal aan die lijnstukjes.
scheiden van veranderlijken
Oplossingsmethode voor : alle naar één kant, alle naar de andere, en beide kanten integreren.
tijdconstante
De tijd waarin een exponentieel proces nog 37 % () van zijn afstand tot het evenwicht over heeft.
logistische groei
Groei volgens : eerst exponentieel, daarna afremmend naar de draagkracht (Verhulst, 1838).
methode van Euler
Numerieke oplossing met stappen langs de raaklijn: .
orde van een methode
De macht van waarmee de globale fout daalt: Euler orde 1 (fout ), Heun orde 2 (fout ).
numerieke stabiliteit
Een methode is stabiel als fouten niet aangroeien. Euler op is stabiel voor .
stijf stelsel
Een stelsel met sterk verschillende tijdconstanten: de snelste bepaalt de toegelaten stap, ook als ze niet interessant is.
residu
Het verschil tussen model en meting in één punt. Een patroon in de residuen wijst op een ontbrekend mechanisme.
Aan de slag in het werkboek16 opdrachten, van oefenen tot uitdagen