Werkplaats / De werkplaats
In jouw eigen tempo
← Wiskunde-fundament
MODULE 03 · LES 07

Van twee punten naar een helling

Meet verandering met verschilquotiënten en onderzoek de stapgrootte van een numerieke afgeleide.

40 min3 checkpoints
DIT GA JE ONTDEKKEN
  • Je onderscheidt een gemiddelde helling van een lokale afgeleide.
  • Je benadert een afgeleide met voorwaartse en centrale verschillen.

Een model schat een woning te duur. Je wilt weten of een kleine aanpassing van een instelling die voorspelling verbetert of juist verslechtert. Dat onderzoeken we eerst met een eenvoudig landschap, zonder al een model te hoeven trainen.

Een functie (function) koppelt aan iedere toegestane invoer één uitvoer. Onze functie kwadrateert de invoer: bij 1 krijg je 1, bij 2 krijg je 4 en bij 3 krijg je 9. Teken invoer horizontaal en uitvoer verticaal; de punten vormen een kromme.

1. Verandering per stap naar rechts

Loop op die kromme van punt (1, 1) naar (3, 9). Je gaat 3 − 1 = 2 naar rechts en 9 − 1 = 8 omhoog. Gemiddeld is dat vier omhoog per één naar rechts: de gemiddelde helling (average slope) is 4.

m=y2−y1x2−x1

m is de helling. De kleine cijfers 1 en 2 benoemen beginpunt en eindpunt; x is de horizontale en y de verticale coördinaat. Boven de breukstreep staat de verandering in uitvoer, onderaan die in invoer.

p = (1, 1)
q = (3, 9)
omhoog = q[1] - p[1]
naar_rechts = q[0] - p[0]
print(omhoog / naar_rechts)   # 4.0

Een paar tussen ronde haakjes met een komma heet een tuple. Net als bij een lijst kiest [0] het eerste getal en [1] het tweede; een tuple kun je niet op zijn plaats aanpassen. We gebruiken deze puntennotatie in gemiddelde_helling(p, q).

Als de x-coördinaten gelijk zijn, is de noemer nul. Controleer dat met if q[0] == p[0]: en geef dan None terug: dat betekent “geen uitkomst”, niet nul helling. Anders bereken je de verhouding; een negatieve uitkomst betekent dalen in plaats van stijgen.

01
CHECKPOINTHoeveel omhoog per stap naar rechts?

2. De helling vlak bij één punt

De rechte lijn door twee punten heet een secant (secant). Schuif het tweede punt steeds dichter naar het eerste: de lijn nadert bij deze gladde kromme een lokale richting. De lijn met die richting heet de raaklijn (tangent).

VERANDERING VAN DICHTBIJVan secant naar raaklijn

Voor f(x)=x²: oranje verbindt twee punten, groen toont de exacte lokale helling.

0481216-3-2-101234x
Secant 3.00Afgeleide 2.00Verschil 1.00

Zet x op 2 en verklein afstand h van 1 naar 0.1. Oranje verbindt de twee punten; groen toont de lokale richting bij het eerste punt. Bekijk hoe hun hellingen dichter bij elkaar komen.

De lokale helling heet de afgeleide (derivative). We schrijven f voor de functie en f′, uitgesproken “f-accent”, voor haar afgeleide. Een positief h is de afstand naar het buurpunt; met een voorwaarts verschil (forward difference) schat je:

f′(x)≈f(x+h)−f(x)h

Het teken ≈ betekent “ongeveer gelijk”. f(x) betekent de uitvoer van f bij invoer x; f(x+h) gebruikt het buurpunt. Bij x = 2 en h = 0.1 zijn de uitvoerwaarden 4 en 4.41: het verschil 0.41 gedeeld door 0.1 geeft ongeveer 4.1.

def kwadraat(x):
    return x ** 2

x = 2
h = 0.1
print((kwadraat(x + h) - kwadraat(x)) / h)
# ongeveer 4.1

Bij h = 0.01 wordt het ongeveer 4.01. De waarden naderen 4: voor kwadrateren is de exacte afgeleide bij x gelijk aan tweemaal x. Je benadert die richting met een steeds kleinere stap; je vult h niet letterlijk als nul in.

Python kan ook een hele functie als invoer ontvangen. In voorwaarts(kwadraat, 2, 0.1) geef je de naam kwadraat zonder haakjes mee; binnen voorwaarts heet zij f en roep je haar aan als f(x) of f(x+h). Bouw nu die functie voor een gegeven h groter dan nul.

02
CHECKPOINTEen buurpunt steeds dichterbij

3. Aan beide kanten meten

Neem rond x = 2 nu de punten 1.9 en 2.1. Kwadrateren geeft 3.61 en 4.41; het verschil is 0.8 over een horizontale afstand van 0.2. De helling is 4: het centrale verschil (central difference) gebruikt beide kanten.

f(x+h)−f(x−h)2h

De totale afstand is 2h, niet h. Met dezelfde kwadraatfunctie reken je:

rechts = kwadraat(x + h)
links = kwadraat(x - h)
print((rechts - links) / (2 * h))
# ongeveer 4

Voor een kwadraat valt de benaderingsfout wiskundig weg. Dat is geen algemene garantie: bij kuberen, x ** 3, geeft x = 2 met h = 0.1 ongeveer 12.01, terwijl de exacte afgeleide 12 is. Computers kunnen bovendien afronden, zodat een extreem kleine h de uitkomst juist slechter kan maken.

Veelgemaakte fout: “kleiner is altijd beter” of delen door h bij twee meetpunten op afstand 2h. Schrijf centraal(f, x, h=1e-5) voor h groter dan nul; de standaardwaarde 1e-5 betekent 0.00001 en wordt gebruikt wanneer de aanroeper geen h meegeeft. Verander f zelf niet: jouw functie vraagt alleen twee uitvoerwaarden op.

03
CHECKPOINTMeet aan beide kanten

Wat neem je mee?

  • Een gemiddelde helling deelt uitvoerverandering door invoerverandering.
  • De afgeleide beschrijft de lokale richting bij één punt; een verschilmeting benadert die.
  • Centraal meten gebruikt afstand 2h; een kleinere h kan ook meer afrondingsfout geven.

In de volgende les bereken je afgeleiden direct met rekenregels en gebruik je deze numerieke meting als controle.

Verder lezen & bronnen

Inhoud gecontroleerd op 2026-10-27.
DE VOLGENDE STAPAfleiden zonder een buurpunt
JOUW EXPERIMENT

Probeer het zelf

Python
main.py

Python start zodra jij code uitvoert.

UITVOER

Je uitvoer verschijnt hier.
Alles rekent in je eigen browser.

Jouw checkpoints0 / 3
01
Hoeveel omhoog per stap naar rechts?

Maak gemiddelde_helling(p, q) voor twee punten als tuples; geef None bij gelijke x-coördinaten.

Een hint

Controleer q[0] == p[0] vóór de deling. Deel anders de verticale verandering door de horizontale.

02
Een buurpunt steeds dichterbij

Maak voorwaarts(f, x, h) voor een meegegeven Pythonfunctie f en h groter dan nul.

Een hint

Vraag f(x+h) en f(x) op, trek af en deel door h. f is de functie zelf, geen tekst.

03
Meet aan beide kanten

Maak centraal(f, x, h=1e-5) voor h groter dan nul, met een meetpunt links en rechts van x.

Een hint

Trek f(x-h) af van f(x+h) en deel door de totale afstand 2*h.

Vastgelopen? Bekijk de voorbeeldoplossing
def gemiddelde_helling(p, q):
    if q[0] == p[0]:
        return None
    omhoog = q[1] - p[1]
    naar_rechts = q[0] - p[0]
    return omhoog / naar_rechts


def voorwaarts(f, x, h):
    return (f(x + h) - f(x)) / h


def centraal(f, x, h=1e-5):
    rechts = f(x + h)
    links = f(x - h)
    return (rechts - links) / (2 * h)

Voer de code uit en verklaar voor jezelf waarom elke stap werkt.