Python
Python-code
Kleine programma’s die stof uit Meten & Weten illustreren. Sommige komen rechtstreeks voort uit voorbeelden uit het boek; andere laten hetzelfde idee op een andere manier zien. De code bevat bewust extra commentaar, zodat je haar ook als aanvulling op het hoofdstuk kunt lezen. Download een script en voer het lokaal uit. Voor enkele programma’s zijn NumPy, matplotlib of mpmath nodig.
Hoofdstuk 29 — Decimalen in Python & C
- float_valkuil.py — laat zien waarom 0,1 + 0,2 met binaire zwevendekommagetallen niet exact 0,3 is.
- decimal_demo.py — rekent dezelfde som exact uit met
Decimal.
Hoofdstuk 30 — Rekenkundig gemiddelde
- h30_rekenkundig_gemiddelde.py — laat zien waarom de afwijkingen rond het rekenkundig gemiddelde optellen tot nul.
Hoofdstuk 31 — Harmonisch & kwadratisch gemiddelde
- h31_gemiddelden_vergelijken.py — vergelijkt harmonisch, rekenkundig en kwadratisch gemiddelde en legt uit waarom de context bepaalt welke maat passend is.
Hoofdstuk 32 — Standaardafwijking
- h32_standaardafwijking.py — bouwt de standaardafwijking stap voor stap op uit afwijkingen en kwadraten.
Hoofdstuk 33 — Een klein aantal metingen
- h33_klein_aantal_metingen.py — simuleert hoe onrustig schattingen van gemiddelde en spreiding zijn bij kleine steekproeven.
Hoofdstuk 34 — Eindig aantal mogelijkheden
- h34_eindig_aantal_mogelijkheden.py — somt exact alle 36 uitkomsten van twee dobbelstenen op en bouwt daaruit de kansverdeling van de som.
Hoofdstuk 35 — Kansvariabele
- h35_kansvariabele.py — maakt het onderscheid zichtbaar tussen een kansvariabele, haar kansverdeling en één waargenomen realisatie.
Hoofdstuk 36 — Normale verdeling
- h36_normale_verdeling.py — controleert met simulatie hoeveel waarden binnen 1σ, 2σ en 3σ vallen.
Hoofdstuk 37 — Normaal & Uniform
- normaal_uniform.py — tekent een normale en uniforme verdeling met dezelfde standaardafwijking.
Hoofdstuk 38 — Overschrijdingskansen
- erf_en_erfc.py — berekent kansen binnen en buiten een gekozen aantal standaardafwijkingen.
- overschrijdingskansen.py — geeft zeer kleine overschrijdingskansen met hoge precisie.
- overschrijdingskansen_woorden.py — zet extreem kleine kansen om naar leesbare “1 op …”-getallen.
Hoofdstuk 39 — Kleine phi (φ) & grote phi (Φ)
- h39_phi_en_Phi.py — berekent zowel de kansdichtheid φ als de cumulatieve kans Φ.
Hoofdstuk 40 — Verwachtingswaarde
- h40_verwachtingswaarde.py — berekent de verwachtingswaarde van een dobbelsteen exact en vergelijkt die met een grote simulatie.
Hoofdstuk 41 — Permutaties & Combinaties
- h41_permutaties_combinaties.py — laat met dobbelstenen zien wanneer volgorde wel of niet telt en waarom 11 vaker voorkomt dan 12.
Hoofdstuk 42 — Simulatie van een kansvariabele
- dobbelsteen_een_worp.py — de kleinst mogelijke dobbelsteensimulatie.
- dobbelsteen_tellen.py — telt frequenties in tienduizend worpen.
- twee_dobbelstenen_verdeling.py — simuleert de niet-uniforme verdeling van de som van twee dobbelstenen.
- meetwaarde_met_toeval.py — voegt een eenvoudige toevalsbijdrage aan een meetwaarde toe.
- dobbelsteen_grafiek.py — maakt een histogram van sommen van veel dobbelstenen.
- dobbelsteen_grafiek_snel.py — snellere NumPy-versie voor zeer grote simulaties.
Hoofdstuk 43 — Betere schatting van spreiding
- std_demo.py — vergelijkt delen door N en N−1 met NumPy.
- h43_bessel_correctie.py — simuleert waarom de Bessel-correctie de variantie gemiddeld goed herstelt.
Hoofdstuk 44 — De spreiding in de spreiding
- h44_spreiding_in_de_spreiding.py — laat zien hoe de geschatte standaardafwijking zelf varieert.
Hoofdstuk 45 — Normaal & Uniform verdeelde fouten
- h45_normaal_uniform_fouten.py — controleert dat een uniforme fout tussen −a en +a standaardafwijking a/√3 heeft.
Hoofdstuk 46 — Voorbeelden van (on)afhankelijkheid
- h46_onafhankelijkheid.py — toetst onafhankelijkheid met P(A∩B)=P(A)P(B) aan eenvoudige muntvoorbeelden.
Hoofdstuk 48 — Onafhankelijke fouten optellen
- h48_onafhankelijke_fouten_optellen.py — controleert de wortel-som-van-kwadratenregel met simulatie.
Hoofdstuk 49 — Met & zonder afhankelijkheid
- h49_met_zonder_afhankelijkheid.py — laat met de correlatieterm zien hoe afhankelijkheid de spreiding van een som verandert.
Hoofdstuk 50 — (On)afhankelijke normale verdelingen
- h50_afhankelijkheid_en_correlatie.py — maakt zichtbaar wat correlatie met de spreiding van een som doet.
Hoofdstuk 51 — Het criterium van Chauvenet
- h51_chauvenet.py — past Chauvenet toe op een kleine reeks met een uitschieter.
Hoofdstuk 53 — Kansverdeling resultaat & meting
- h53_resultaat_en_meting.py — vergelijkt de verdeling van losse metingen met die van gemiddelden van meerdere metingen.
Hoofdstuk 54 — Overschrijdingskans & significantie
- h54_significantie.py — zet het verschil tussen twee resultaten om in een z-waarde en tweezijdige overschrijdingskans.
Hoofdstuk 57 — De spreiding schatten
- dungeons_histogram.py — laat met een histogram zien waarom d4 + d6 geen eerlijke d10 oplevert.
- dungeons_simulatie.py — simuleert wél een eerlijke virtuele d10 met een d4 en d6.
Hoofdstuk 58 — De wortel van het gemiddelde
- h58_wortel_van_het_gemiddelde.py — controleert met simulaties de 1/√N-regel voor de spreiding van gemiddelden.
Hoofdstuk 59 — Waarom RMS?
- h59_waarom_rms.py — vergelijkt gewoon gemiddelde, gemiddelde absolute waarde en RMS.
Hoofdstuk 63 — En als je het niet mag verwaarlozen?
- h63_niet_verwaarlozen.py — maakt zichtbaar wanneer de tweede-ordeterm bij een product te groot wordt om zomaar weg te laten.
Hoofdstuk 64 — Doorwerken in het algemeen
- h64_doorwerking_algemeen.py — vergelijkt lineaire foutdoorwerking met Monte Carlo voor een niet-lineaire functie.
Hoofdstukken 79 en 80 — Kleinste kwadraten & Résidu
- linear_fit_demo.py — fit een rechte lijn met NumPy en berekent de residuen.
Hoofdstuk 81 — Past het model?
- h81_past_het_model.py — vergelijkt een passende en een niet-passende rechte lijn met residuen en gereduceerde χ².