3.6 Numerisk derivasjon med digitale verktøy
Fremover-, bakover- og sentraldifferanse, og bruk av regneark og CAS.
Numerisk derivasjon
Ikke alle funksjoner kan deriveres analytisk på en enkel måte. I praksis har vi ofte bare måledata (tabellverdier) uten et eksplisitt funksjonsuttrykk. Da må vi tilnærme den deriverte numerisk.
Ideen er enkel: vi bruker differansekvotienten med en liten, men endelig i stedet for å ta grenseverdien . Spørsmålet er: hvilken differanseformel gir best tilnærming?
Framoverdifferanse:
Bakoverdifferanse:
Sentraldifferanse:
Sentraldifferansen er som regel den mest noeyyaktige av de tre.
La . Tilnaerm med ved hjelp av de tre differanseformlene.
, , .
Framoverdifferanse:
Bakoverdifferanse:
Sentraldifferanse:
Sentraldifferansen gir en mye bedre tilnærming!
Feilen i tilnærmingene har følgende størrelseorden:
- Framoverdifferanse: Feil (proporsjonalt med )
- Bakoverdifferanse: Feil (proporsjonalt med )
- Sentraldifferanse: Feil (proporsjonalt med )
Det betyr at når vi halverer :
- Framover/bakover: feilen halveres omtrent
- Sentral: feilen reduseres til omtrent en fjerdedel
Sentraldifferansen konvergerer altså mye raskere mot den eksakte verdien.
La . Tilnaerm med sentraldifferanse.
Bruk .
Bruk .
Sammenlign feilene. Stemmer -estimatet?
Numerisk derivasjon med regneark
I et regneark kan vi sette opp numerisk derivasjon systematisk:
| A | B | C |
|---|---|---|
Kolonne C bruker sentraldifferanse: .
Eksempel i regneark-syntaks:
- Celle A2:
=A3-0.001- Celle B2:
=A2^3 (for )- Celle C3:
=(B4-B2)/(A4-A2)Sett opp et regneark for å tilnærme den deriverte.
Lag en tabell med -verdier fra til med steglengde for . Beregn sentraldifferansen i hvert indre punkt.
Gjenta med steglengde . Hvor mye bedre blir tilnærmingen?
Numerisk og symbolsk derivasjon med CAS
CAS-verktøy (Computer Algebra System) kan både:
1. Derivere symbolsk -- finne det eksakte uttrykket for
2. Beregne numerisk -- gi en tilnærmet verdi av
I GeoGebra CAS:
- Symbolsk: Derivative[x^3 + sin(x)] gir 3x^2 + cos(x)
- Numerisk: NDerivative[x^3 + sin(x), 2] gir en numerisk tilnærming av
I Python med SymPy:
from sympy import *
x = symbols('x')
f = x**3 + sin(x)
diff(f, x) # Symbolsk: 3*x**2 + cos(x)
diff(f, x).subs(x, 2).evalf() # Numerisk verdi i x=2Bruk CAS eller regneark til å løse oppgavene.
Finn symbolsk for .
Bruk numerisk derivasjon (sentraldifferanse med ) til å tilnærme .
Sammenlign det numeriske og analytiske svaret.
Når , taper vi gjeldende siffer i subtraksjonen. For dobbeltpresisjon (float64) er typisk et bra valg for sentraldifferanse.
Tommelregel: Bruk for framover/bakover og for sentral, der er maskinpresisjonen.
Undersoesk effekten av steglengde på noeyyaktigheten.
La . Beregn sentraldifferansen for med . Lag en tabell over og feil.
For hvilken får du den minste feilen?
Gitt tabellverdier, tilnaerm den deriverte.
Tabellen viser : , , , , . Tilnaerm .
Tilnaerm og .
- Analytisk (for hånd eller CAS): Når vi har et funksjonsuttrykk og trenger et eksakt svar. Gir fullstendig informasjon om for alle .
- Numerisk: Når vi bare har tabelldata, når funksjonsuttrykket er for komplisert, eller når vi trenger en rask tilnærming i ett punkt.
I praksis brukes ofte en kombinasjon: CAS finner det analytiske uttrykket, som så evalueres numerisk i ønskede punkter.
Oppsummering
- Den deriverte kan tilnærmes numerisk med differansekvotienter
- Sentraldifferansen er mest noeyyaktig (-feil)
- Regneark og CAS er nyttige verktøy for numerisk derivasjon
- For liten gir avrundingsfeil -- det finnes en optimal steglengde
- Numerisk derivasjon brukes når analytisk derivasjon er upraktisk eller umulig
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.