Numeriek differentiëren: Differentieformules voor de eerste afgeleide
Berekenen van een eerste afgeleide (programmeeropdracht)
We bekijken in deze opdracht hoe we voor een discretisatie van de sinusfunctie op het interval \([0,2\pi]\) de afgeleide in de punten kunnen benaderen met eenvoudige differentie. We verdelen het interval daartoe in 25 equidistante punten. Deze opdracht is gespecificeerd via de Python programmmeertaal, maar andere programmeertalen zoals Matlab en R bieden vergelijkbare ingebouwde functies. In andere programmeertalen is deze opdracht dus ook te doen.
Gebruik het numpy
en matplotlib
pakket om via voorwaartse en centrale differentie de afgeleiden in de punten op het interval uit te rekenen en de puntgrafiek van de functie en de afgeleiden in één figuur te tekenen
- Doe het de eerste keer via voorwaartse differentie en gebruik de numpy functie diff hiervoor.
- Doe het de tweede keer via centrale differentie en m.b.v. kruiscorrelatie (en gebruik de 'same' optie om een array van dezelfde lengte te krijgen als het aantal punten) en vergelijk het resultaat van centrale differentie met het resultaat van voorwaartse differentie.
- Doe de centrale differentie de derde keer m.b.v de
numpy
functieroll
waarmee je een array kunt roteren. - Herhaal onderdeel (b) met \(101\) equidistante punten, met \(1001\) equidistante punten en met \(1\,000\,001\) equidistante punten. Verbeteren de benaderingen als je meer punten op het interval neemt?
Ontgrendel volledige toegang