3.6 Numerisk derivasjon med digitale verktøy
Fremover-, bakover- og sentraldifferanse, og bruk av regneark og CAS.
Numerisk derivasjon
Ikkje alle funksjonar kan deriverast analytisk på ein enkel måte. I praksis har vi ofte berre måledata (tabellverdiar) utan eit eksplisitt funksjonsuttrykk. Då må vi tilnærme den deriverte numerisk.
Ideen er enkel: vi bruker differansekvotienten med ein liten, men endeleg i staden for å ta grenseverdien . Spørsmålet er: kva differanseformel gir best tilnærming?
Framoverdifferanse:
Bakoverdifferanse:
Sentraldifferanse:
Sentraldifferansen er som regel den mest noeyyaktige av dei tre.
La . Tilnærm med ved hjelp av dei tre differanseformlane.
, , .
Framoverdifferanse:
Bakoverdifferanse:
Sentraldifferanse:
Sentraldifferansen gir ei mykje betre tilnærming!
Feilen i tilnærmingane har følgjande storleiksorden:
- Framoverdifferanse: Feil (proporsjonalt med )
- Bakoverdifferanse: Feil (proporsjonalt med )
- Sentraldifferanse: Feil (proporsjonalt med )
Det tyder at når vi halverer :
- Framover/bakover: feilen blir om lag halvert
- Sentral: feilen blir redusert til om lag ein fjerdedel
Sentraldifferansen konvergerer altså mykje raskare mot den eksakte verdien.
La . Tilnærm med sentraldifferanse.
Bruk .
Bruk .
Samanlikn feila. Stemmer -estimatet?
Numerisk derivasjon med rekneark
I eit rekneark kan vi setje opp numerisk derivasjon systematisk:
| A | B | C |
|---|---|---|
Kolonne C bruker sentraldifferanse: .
Døme i rekneark-syntaks:
- Celle A2:
=A3-0.001- Celle B2:
=A2^3 (for )- Celle C3:
=(B4-B2)/(A4-A2)Set opp eit rekneark for å tilnærme den deriverte.
Lag ein tabell med -verdiar frå til med steglengd for . Rekn ut sentraldifferansen i kvart indre punkt.
Gjenta med steglengd . Kor mykje betre blir tilnærminga?
Numerisk og symbolsk derivasjon med CAS
CAS-verktøy (Computer Algebra System) kan både:
1. Derivere symbolsk -- finne det eksakte uttrykket for
2. Rekne ut numerisk -- gi ein tilnærma verdi av
I GeoGebra CAS:
- Symbolsk: Derivative[x^3 + sin(x)] gir 3x^2 + cos(x)
- Numerisk: NDerivative[x^3 + sin(x), 2] gir ei 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 rekneark til å løyse oppgåvene.
Finn symbolsk for .
Bruk numerisk derivasjon (sentraldifferanse med ) til å tilnærme .
Samanlikn det numeriske og analytiske svaret.
Når , taper vi gjeldande siffer i subtraksjonen. For dobbeltpresisjon (float64) er typisk eit bra val for sentraldifferanse.
Tommelregel: Bruk for framover/bakover og for sentral, der er maskinpresisjonen.
Undersøk effekten av steglengd på noeyyaktigheita.
La . Rekn ut sentraldifferansen for med . Lag ein tabell over og feil.
For kva får du den minste feilen?
Gitt tabellverdiar, tilnærm den deriverte.
Tabellen viser : , , , , . Tilnærm .
Tilnærm og .
- Analytisk (for hand eller CAS): Når vi har eit funksjonsuttrykk og treng eit eksakt svar. Gir fullstendig informasjon om for alle .
- Numerisk: Når vi berre har tabelldata, når funksjonsuttrykket er for komplisert, eller når vi treng ei rask tilnærming i eitt punkt.
I praksis blir ofte ein kombinasjon brukt: CAS finn det analytiske uttrykket, som så blir evaluert numerisk i ønskte punkt.
Oppsummering
- Den deriverte kan tilnærmast numerisk med differansekvotientar
- Sentraldifferansen er mest noeyyaktig (-feil)
- Rekneark og CAS er nyttige verktøy for numerisk derivasjon
- For liten gir avrundingsfeil -- det finst ei optimal steglengd
- Numerisk derivasjon blir brukt når analytisk derivasjon er upraktisk eller umogleg
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.