- Je berekent analytische afgeleiden van veeltermen.
- Je past de productregel toe en verklaart waarom beide factoren bijdragen.
Een woningprijsmodel kan aparte gewichten hebben voor oppervlakte, kamers en buurtkenmerken. Voor elk gewicht opnieuw twee nabije uitvoerwaarden berekenen wordt bij veel kenmerken duur. Als je weet welke bewerkingen het model uitvoert, kun je de helling vaak rechtstreeks uitrekenen.
In de vorige les naderde de helling van kwadrateren bij x = 2 de waarde 4. Bij x = 3 wordt zij 6. We zoeken nu regels die meteen de juiste helling voor iedere toegestane invoer geven: analytisch differentiëren (analytic differentiation).
1. Begrijpen waarom een kwadraat helling heeft
Een vierkant met zijde x heeft oppervlakte x maal x. Vergroot de zijde met een kleine h: langs twee kanten komen stroken bij, elk met oppervlakte x maal h, plus een hoekje van h maal h. Deel die totale groei door h en je krijgt tweemaal x plus h.
Als h naar nul gaat, verdwijnt de bijdrage van het hoekje. Er blijft tweemaal x over. Dit verklaart de afgeleide van kwadrateren; voor grotere gehele machten gebruiken we de machtsregel (power rule):
n is de exponent: x tot de derde macht betekent x maal x maal x. f′ is de afgeleidefunctie; f′(2) is één getal, haar waarde bij invoer 2. Voor de derde macht is de helling daar 3 × 2² = 3 × 4 = 12.
x = 2
n = 3
print(n * x ** (n - 1)) # 12
In deze oefening is n een niet-negatief geheel getal. Bij n = 0 behandelen we de functie als constant 1, met helling 0, ook bij x = 0. Begin d_macht(x, n) daarom met if n == 0: return 0, geschreven op twee ingesprongen regels; anders zou de formule bij x = 0 eerst een onmogelijke negatieve macht proberen.
Let op: de afgeleide is een helling, geen oppervlakte. Hoewel x² nooit negatief is, is haar helling 2x links van nul negatief.
012. Veranderingen van losse termen optellen
Stel een score is opgebouwd uit een vaste 5, een bijdrage −2 maal x en een bijdrage 3 maal x². De vaste 5 verandert niet als x verandert. De rechte bijdrage heeft helling −2; het kwadraatdeel heeft driemaal de helling 2x, dus 6x.
Een som van machten met gewichten heet een veelterm (polynomial). De gewichten zijn de coëfficiënten (coefficients); bij onze score zijn dat 5, −2 en 3. De afgeleide wordt:
Bij x = 2 zijn de bijdragen 0, −2 en 12, samen 10. We bewaren de coëfficiënten in oplopende macht: coeff[0] hoort bij de constante, coeff[1] bij x en coeff[2] bij x².
coeff = [5, -2, 3]
x = 2
eerste = coeff[1]
tweede = 2 * coeff[2] * x
print(eerste + tweede) # 10
Voor meer termen gebruik je de optellus die je uit Inproduct kent. Begin op index 1: range(1, len(coeff)) geeft alle posities behalve de constante; de bovengrens telt niet mee. Iedere positie i draagt i * coeff[i] * x ** (i - 1) bij.
Maak d_poly(coeff, x) met een totaal dat op nul begint. Een lijst met alleen een constante heeft geen verdere bijdragen en geeft daarom 0. De lijstvolgorde is belangrijk: [3, -2, 5] beschrijft een andere veelterm.
3. Een product heeft twee veranderende factoren
Nu verandert een rechthoek in twee richtingen: breedte f(x) is x² en hoogte g(x) is 3x. Bij x = 2 zijn breedte en hoogte 4 en 6. De breedte groeit lokaal met 4 per invoerstap, de hoogte met 3.
De breedtegroei beïnvloedt de hele bestaande hoogte: 4 × 6 = 24. De hoogtegroei beïnvloedt de hele bestaande breedte: 4 × 3 = 12. Samen is de lokale oppervlaktegroei 36; het kleine hoekproduct verdwijnt weer bij een steeds kleinere stap.
Dit is de productregel (product rule). f en g zijn de twee factoren, f′ en g′ hun afgeleiden. De twee regels in het kader vormen samen één som.
def f(x):
return x ** 2
def df(x):
return 2 * x
def g(x):
return 3 * x
def dg(x):
return 3
x = 2
print(df(x) * g(x) + f(x) * dg(x)) # 36
In code schrijven we df voor f′ en dg voor g′. Maak d_product(f, df, g, dg, x) met deze vier meegegeven functies; de aanroeper geeft hun namen mee, net als bij de numerieke afgeleide. Alleen df(x) * dg(x) zou 12 geven en mist de werkelijke oppervlaktegroei.
Wat neem je mee?
- De machtsregel geeft een afgeleidefunctie; vul daarna een invoer in voor de lokale helling.
- Veeltermen differentieer je term voor term; de constante draagt nul bij.
- Bij een product veranderen beide factoren, dus tel je twee bijdragen op.
Hierna gaat de uitvoer van de ene functie als invoer naar een andere. Voor die opeenvolging leer je de kettingregel.