Tilbake
3.6

3.6 Numerisk derivasjon med digitale verktøy

Fremover-, bakover- og sentraldifferanse, og bruk av regneark og CAS.

45 min
10 oppgaver
Numerisk derivasjonFremoverdifferanseSentraldifferanseRegnearkCAS
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 10 oppgaver

Derivasjon uten formel

En treningsklokke logger posisjonen din hvert sekund. En værstasjon registrerer temperaturen hvert minutt. En ingeniør får måleserier fra en sensor i en bro. Alle tre vil vite det samme: hvor fort endrer dette seg? -- altså den deriverte. Men her er problemet: ingen av dem har noe funksjonsuttrykk. Det finnes ingen f(x)=x3+sinxf(x) = x^3 + \sin x å derivere med reglene fra kapittel 2 og 3 -- bare en tabell med tall.

Og selv når formelen finnes, kan den være så uhåndterlig at symbolsk derivasjon er upraktisk. Hva gjør vi da?

Vi går tilbake til kilden. Derivasjonens definisjon var grenseverdien av differansekvotienten:

f(a)=limh0f(a+h)f(a)hf'(a) = \lim_{h \to 0} \frac{f(a+h) - f(a)}{h}

Grenseverdien krever formelen -- men kvotienten gjør ikke. Ideen i numerisk derivasjon er frekk i all sin enkelhet: dropp grenseovergangen, og bruk differansekvotienten med en liten, men endelig hh. Med h=0,001h = 0{,}001 får du ikke den deriverte eksakt, men du får en tilnærming -- og spørsmålene blir straks praktiske: Hvilken differanseformel gir best tilnærming? Hvor liten bør hh være? Og kan den bli for liten?

Svaret på det siste er et overraskende ja, og historien om hvorfor -- kappløpet mellom metodefeil og avrundingsfeil -- er kapittelets mest lærerike poeng. Underveis setter vi opp beregningene i regneark, og lar CAS-verktøy gjøre både symbolsk og numerisk derivasjon for oss.

Tre måter å spørre naboene på

Du står i punktet aa og vil anslå stigningen der. Med steglengde h>0h > 0 har du tre naturlige muligheter, alt etter hvilke naboverdier du bruker.

Framoverdifferansen ser fremover: f(a)f(a+h)f(a)h\displaystyle f'(a) \approx \frac{f(a+h) - f(a)}{h}. Bakoverdifferansen ser bakover: f(a)f(a)f(ah)h\displaystyle f'(a) \approx \frac{f(a) - f(a-h)}{h}. Og sentraldifferansen ser begge veier og hopper over punktet selv:

f(a)f(a+h)f(ah)2hf'(a) \approx \frac{f(a+h) - f(a-h)}{2h}

Geometrisk er alle tre sekantstigninger -- forskjellen er hvor sekanten festes. Framover- og bakoverdifferansen lener seg til hver sin side av aa, mens sentraldifferansen spenner symmetrisk over punktet, og symmetrien viser seg å være gull verdt.

La oss måle dem mot en fasit. Ta f(x)=x3f(x) = x^3 i a=2a = 2, der vi vet at f(2)=12f'(2) = 12 eksakt. Med h=0,1h = 0{,}1 er f(2)=8f(2) = 8, f(2,1)=9,261f(2{,}1) = 9{,}261 og f(1,9)=6,859f(1{,}9) = 6{,}859. Framoverdifferansen gir 9,26180,1=12,61\displaystyle \frac{9{,}261 - 8}{0{,}1} = 12{,}61 -- feil på 0,610{,}61. Bakoverdifferansen gir 86,8590,1=11,41\displaystyle \frac{8 - 6{,}859}{0{,}1} = 11{,}41 -- feil på 0,590{,}59. Men sentraldifferansen:

9,2616,8590,2=12,01\frac{9{,}261 - 6{,}859}{0{,}2} = 12{,}01

Feil på bare 0,010{,}01 -- seksti ganger bedre enn de ensidige, med nøyaktig samme datamengde! Intuisjonen: framoverdifferansen overdriver stigningen der grafen krummer oppover, bakoverdifferansen underdriver den, og i den symmetriske sentraldifferansen kansellerer de to skjevhetene hverandre nesten perfekt. Når du har verdier på begge sider av punktet, er sentraldifferansen derfor standardvalget.

📝Oppgave Quiz 1

Feilens anatomi -- og fellen ved liten hh

Talleksempelet antydet et mønster, og mønsteret er en presis lov. Feilen i framover- og bakoverdifferansen er av størrelsesorden O(h)O(h) -- proporsjonal med hh -- mens sentraldifferansens feil er O(h2)O(h^2), proporsjonal med h2h^2. Konsekvensen merkes hver gang du forfiner: halverer du hh, halveres feilen i de ensidige formlene, men sentraldifferansens feil deles på fire. Sentraldifferansen konvergerer altså mye raskere mot den eksakte verdien, og det er denne kvadratiske gevinsten symmetrien kjøper oss.

Da skulle man tro strategien var opplagt: velg hh mikroskopisk, så blir feilen mikroskopisk. Men her venter kapittelets felle. Datamaskinen regner med endelig presisjon -- omtrent 16 gjeldende siffer i vanlig dobbeltpresisjon. Når hh blir bitteliten, er f(a+h)f(a + h) og f(a)f(a) nesten like tall, og i subtraksjonen utsletter de felles sifrene hverandre. Du sitter igjen med

f(a+h)f(a)hnesten like talllite tall\frac{f(a+h) - f(a)}{h} \approx \frac{\text{nesten like tall}}{\text{lite tall}}

-- en differanse der bare de usikre sifrene overlever, blåst opp av divisjonen med den lille hh-en. Dette kalles avrundingsfeil, og den vokser når hh krymper.

To krefter drar altså i hver sin retning: metodefeilen vil ha liten hh, avrundingsfeilen vil ha stor. Et sted imellom ligger en optimal steglengde. Tommelregelen, med maskinpresisjonen ε1016\varepsilon \approx 10^{-16}: bruk hε108h \approx \sqrt{\varepsilon} \approx 10^{-8} for framover- og bakoverdifferanse, og hε1/3h \approx \varepsilon^{1/3} for sentraldifferansen. «Mindre er bedre» gjelder altså bare til et visst punkt -- numerikkens første leveregel.

📝Oppgave Quiz 2

Verktøyene: regneark og CAS

Teorien er på plass -- nå til verkstedet. I et regneark settes numerisk derivasjon opp på minutter. Legg xx-verdiene aha - h, aa og a+ha + h i kolonne A, funksjonsverdiene i kolonne B (for f(x)=x3f(x) = x^3 skriver du =A2^3 og kopierer nedover), og sentraldifferansen i kolonne C: =(B4-B2)/(A4-A2) -- differansen mellom verdiene over og under, delt på xx-avstanden 2h2h. Vil du eksperimentere, lar du hh stå i en egen celle (f.eks. =A3-0.001) og ser tilnærmingen endre seg når du justerer den. Regnearkets styrke er nettopp måledata: har du en tabell fra en sensor, deriverer du hele serien med én formel kopiert nedover.

CAS-verktøy (Computer Algebra System) hever ambisjonen: de kan derivere symbolsk -- finne selve uttrykket for f(x)f'(x) -- i tillegg til numerisk. I GeoGebra CAS gir Derivative[x^3 + sin(x)] svaret 3x^2 + cos(x), eksakt og gyldig for alle xx, mens NDerivative[x^3 + sin(x), 2] gir en numerisk verdi av f(2)f'(2). I Python gjør SymPy det samme: diff(f, x) for det symbolske uttrykket, etterfulgt av .subs(x, 2).evalf() for tallverdien i punktet.

Når velger du hva? Analytisk derivasjon (for hånd eller med CAS) når du har funksjonsuttrykket og trenger eksakte svar -- den gir full informasjon om f(x)f'(x) overalt. Numerisk når du bare har tabelldata, når uttrykket er for innfløkt til at symbolsk derivasjon er praktisk, eller når du raskt trenger ett tall i ett punkt. Og i praksis kombineres de gjerne: CAS finner det analytiske uttrykket, som så evalueres numerisk akkurat der du trenger det. Verktøyene konkurrerer ikke -- de deler arbeidet.

📝Oppgave Quiz 3

Fortellingen i et nøtteskall

Treningsklokka, værstasjonen og brosensoren fikk svaret sitt: den deriverte kan tilnærmes uten formel, med differansekvotienter der grenseovergangen h0h \to 0 er byttet ut med en liten, endelig hh.

Tre formler sto til rådighet. Framoverdifferansen f(a+h)f(a)h\displaystyle \frac{f(a+h) - f(a)}{h} og bakoverdifferansen f(a)f(ah)h\displaystyle \frac{f(a) - f(a-h)}{h} ser hver sin vei og har feil av orden O(h)O(h). Sentraldifferansen f(a+h)f(ah)2h\displaystyle \frac{f(a+h) - f(a-h)}{2h} spenner symmetrisk over punktet, lar skjevhetene kansellere og oppnår O(h2)O(h^2) -- testen på f(x)=x3f(x) = x^3 i a=2a = 2 ga feil 0,010{,}01 mot de ensidiges 0,60{,}6. Halverer du hh, kvarteres sentraldifferansens feil.

Men «mindre hh er bedre» har en grense: når f(a+h)f(a+h) og f(a)f(a) blir nesten like, utsletter subtraksjonen de gjeldende sifrene, og avrundingsfeilen vokser. Mellom metodefeil og avrundingsfeil ligger den optimale steglengden -- tommelregelen sier hεh \approx \sqrt{\varepsilon} for ensidige og hε1/3h \approx \varepsilon^{1/3} for sentral, med maskinpresisjon ε1016\varepsilon \approx 10^{-16}.

Verktøyene deler arbeidet: regnearket deriverer måleserier med én kopiert formel, og CAS behersker begge verdener -- Derivative gir det eksakte uttrykket, NDerivative (eller SymPys diff + evalf) tallverdien. Analytisk når du har uttrykk og trenger eksakthet; numerisk når du har tabeller eller hastverk.

Dermed er kapittel 3 fullført: grenseverdien ga den deriverte mening, og tallene ga den hender å arbeide med.

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.