Numerieke wiskunde XVI:
Differentiëren via een polynoom door alle meetpunten
Als een functie alleen is gegeven in een tabel met x
- en y
-waarden, kun je de afgeleide van die
functie in een punt niet zomaar bepalen. Je kunt dan een numerieke techniek gebruiken om de afgeleide te berekenen.
Er zijn daarvoor diverse mogelijkheden, waaronder:
• Bereken een polynoom, machtsfunctie
of exponentiële functie met behulp van de kleinste kwadraten methode en differntiëer
die.
• Bereken het 'exacte' polynoom door de meetpunten en diffentiëer die.
De graad de afgeleide is twee lager dan het aantal meetpunten.
• Gebruik een variant van Lineaire interpolatie. Dit staat bekend als
tweepunts-differentiatie.
• Gebruik een variant van Driepunts-interpolatie. Dit staat bekend als
driepunts-differentiatie.
Deze technieken hebben een gemeenschappelijk nadeel: ze zijn geen van alle erg nauwkeurig.
- Op deze bladzijde wordt een methode gebruikt die ik –vreemd genoeg– nergens in de literatuur tegenkom, ook niet op internet.
- Door de
n
meetpunten wordt een polynoom berekend van de vorm:
y = a0 + a1·x + a2·x2 + a3·x3 + ... + an·xn
. - Het polynoom door de meetpunten heeft de graad
n-1
. Het laat zich eenvoudig differentiëren tot:
y' = a1 + 2·a2·x + 3·a3·x2 + ... + n·an·xn-1
.
De graad van het gedifferentiëerde polynoom isn-2
.
Een uitgewerkt voorbeeld
Vraag: geven is de set van zes meetpunten:
(x,y) = (-0.5,3.40625); (0.0,2.0); (0.5,-0.03125); (1.0,-4.0);
.
(1.5,-8.96875); (2.0,-8.0)
Wat is de afgeleide voor x = 1.72
?
Uitwerking: Dit is hetzelfde voorbeeld dat is gebruikt in het item Interpolatie via een polynoom door alle meetpunten.
- Er zijn zes meetpunten, die worden genummerd 0 t.m. 5. Daaruit is een vijfde-orde polynoom bepaald, dat exact door deze
punten gaat. De formule voor dat polynoom luidt:
y = 2 - 3x - x2 - 2x3 - x4 + x5
. - De afgeleide is:
y' = -3 - 2x - 6x2 - 4x3 + 5x4
.
Bijx = 1.72
isy' = -0.7835392
. - Natuurlijk is er ook een applicatie om zelf met deze techniek aan de slag te gaan. Klik op de knop hiernaast.
- De applicatie berekent eerst het interpolatie-polynoom en bepaalt daarna het afgeleide polynoom. De applicatie staat niet toe dat er een afgeleide waarde wordt berekend tussen de eerste twee en de laatste twee meetpunten. Dit vanwege de nauwkeurigheid.
- Ook vanwege de nauwkeurigheid is het niet verstandig een afgeleide te berekenen in de buurt van een extreem in de grafiek. Teken dus altijd een grafiek van het interpolatie-polynoom!
- De applicatie toont alle beschikbare decimalen in de uitkomst. Er wordt dus niet afgerond!
- Kijkend naar
de uitkomst valt er wat op: De raaklijn in
x = 1.72
zou bijna horizontaal moeten lopen (waarde van de afgeleide zou ongeveer nul moeten zijn). Dat doet hij niet! De oorzaak is dat het punt waar de afgeleide wordt bepaald heel dichtbij een extreme waarde van het interpolatie-polynoom ligt.
- De code van de applicatie kun je downloaden om zelf aan door te ontwikkelen.
- Als je verder wilt werken aan de applicatie, download je de .zip-file en pak je hem uit. Je hebt dan meteen een werkend voorbeeld.
Downloaden:
Druk op de knop:
File: voorb666.zip, 4626 bytes.