Tilnærma verdiar for den deriverte med programmering - Elektroniske krinsar og nettverk (EL-ELE vg1) - NDLA

Hopp til innhald
Oppgave

Tilnærma verdiar for den deriverte med programmering

Med programmering kan vi finne tilnærma verdiar for den deriverte.

3.4.40

Vi ser på funksjonen

f(x)=x2+2

og finn at den deriverte funksjonen f'(x) er

f'(x)=2x

Ut ifrå denne kan vi til dømes rekne ut den deriverte når  x=0,5.

f'(0,5)=2·0,5=1

Relatert innhald

Fagstoff
Definisjonen av den deriverte

Her ser vi korleis vi kan finne den deriverte til ein funksjon ved manuell rekning, og vi definerer den deriverte funksjonen.

a) Spørsmål

Kva betyr det at  f'(0,5)=1?

Svar

At  f'(0,5)=1  betyr at stigingstalet til tangenten til grafen når  x=0,5, er 1. Det betyr òg at den momentane vekstfarten til funksjonen når x=0,5, er 1.

Det er vanskeleg å lage eit program som kan finne den deriverte funksjonen til ein vilkårleg funksjon. Målet vårt er no å lage eit program som kan rekne ut tilnærma verdiar for den deriverte til ein funksjon utan at vi kjenner den deriverte funksjonen. Til det kan vi bruke at den deriverte funksjonen f'(x) er den verdien

ΔyΔx=fx+Δx-fxΔx

nærmar seg når Δx går mot null.

b) Spørsmål

Kvifor kan vi ikkje setje  Δx=0  direkte i uttrykket?

Svar

Dersom vi prøver å setje  Δx=0  rett inn i uttrykket, får vi 0 i nemnaren på brøken.

Vi prøver no å rekne ut verdien av brøkuttrykket med ein liten verdi for Δx. Vi set  Δx=0,1.

f'0,5  f0,5+0,1-f0,50,1=f0,6-f0,50,1=0,62+2-0,52+20,1=1,1

Vi kjem nokså nære det rette svaret, som altså er 1. Vi burde få eit betre svar dersom vi gjer Δx enda mindre. Vi set  Δx=0,01.

c) Utrekning

Bruk den same framgangsmåten som over, og finn ei tilnærming til f'(0,5) ved å setje  Δx=0,01.

Løysing

f'0,5  f0,5+0,01-f0,50,01=f0,51-f0,50,01=1,01

Vi fekk som forventa ei mykje betre tilnærming til det rette svaret, men vi kan få det til endå betre.

d) Utrekning

Bruk den same framgangsmåten som over, og finn tilnærmingar til f'(0,5) ved å setje  Δx=0,001  og deretter  Δx=0,0001.

Fasit

 Δx=0,001 :  f'(0,5)1,001

 Δx=0,0001:  f'(0,5)1,0001

Slik kan vi fortsetje og få betre og betre tilnærmingar, men vi kjem aldri heilt til den rette verdien, som er 1. La oss først setje opp ein tabell over resultata.

Δx0,1 0,01 0,001 0,0001f'(0,5) 1,1   1,01  1,001  1,0001

Vi må setje ei grense for når vi tykker vi er nære nok. Til dette kan vi bruke at endringa frå éin tilnærma verdi for f'(0,5) til den neste blir mindre og mindre etter kvart som Δx blir mindre og mindre. Når endringa blir lita nok, kan vi seie oss nøgde med svaret. Dette er ting vi kan teste i det programmet vi skal lage.

e) Algoritme

No kan vi starte med programmet. Lag eit oppsett der du skriv med ord korleis programmet skal verke – ein algoritme for programmet.

Løysingsforslag

Det er fleire måtar å løyse dette på, og her er eitt forslag.

Vi kan la programmet rekne ut nye tilnærma verdiar for deriverte ved å la verdien for Δx bli éin tidel av den førre verdien, slik vi gjorde manuelt over. Så lèt vi programmet gjere dette heilt til endringa i den tilnærma verdien for den deriverte blir mindre enn eller lik 0,00001, som kan vere eit greitt mål på kor nære vi er det rette svaret.

Algoritmen for programmet blir slik:

  • Brukaren skriv inn ein vilkårleg x-verdi, som blir lagra i variabelen xverdi.
  • Vi lèt variabelen deltax få startverdi lik 0,1.
  • Programmet reknar ut ein tilnærma verdi for den deriverte med formelen  fx+Δx-fxΔx der vi bruker verdiane til variablane xverdi og deltax.
  • Vi deler verdien av deltax på 10 og reknar ut ein ny verdi for den deriverte med den nye deltax-verdien.
  • Så lenge differansen mellom den nye og den førre verdien for den deriverte er større enn 0,00001, skal vi rekne ut ein ny tilnærma verdi for den deriverte med ein ny deltax-verdi som er éin tidel av den førre deltax-verdien. Så skal vi samanlikne den nye verdien for den deriverte med den førre. Dette skal vi fortsetje med til differansen er mindre enn eller lik 0,00001.
  • Til slutt skal den siste verdien for den deriverte skrivast ut til skjermen.

f) Koding

Skriv koden til eit program som passar til algoritmen over. Du kan lage programmet i den editoren du bruker til vanleg, eller du kan bruke den interaktive editoren nedanfor. (NB! Det kan ta litt tid frå du trykker på avspelingsknappen til programmet blir køyrt!)

Tips

Programmet kan bruke ein eigendefinert funksjon f som reknar ut funksjonsverdiar for ein vilkårleg x-verdi og ein eigendefinert funksjon fderivert som reknar ut tilnærma verdiar for den deriverte for ein vilkårleg x-verdi og med ein vilkårleg verdi for Δx. Alternativt kan vi setje opp reknestykka direkte i staden for å bruke funksjonar i programmet, men programmet blir meir oversiktleg om vi bruker eigendefinerte funksjonar.

Du kan bruke ei while-lykkje til å teste om svaret er godt nok.

I while-lykkja kan du skrive ut verdiane av Δx og dei tilnærma verdiane av den deriverte slik at du kan sjå korleis desse verdiane utviklar seg for kvar gong lykkja køyrer.

Tips dersom programmet går i ei evig lykkje

Legg inn ein test på at dersom lykkja har gått meir enn 20 gonger, skal programmet hoppe ut.

g) Testing

Test programmet på funksjonen  f(x)=-x2-2. Får du like gode svar som med den opphavelege funksjonen? Kvifor/kvifor ikkje?

Tips

Legg utskrift av tilnærmingsverdien av den deriverte inn i while-lykkja for å følge med på utviklinga.

h) Testing

Test programmet på funksjonen  f(x)=6x5-2  med  x=-3. Får du rett svar? Eventuelt: Kvifor blir det ikkje rett svar?

Tips

Kor mange desimalar klarer editoren å operere med? Endre på vilkåret for at while-lykkja skal køyre slik at det blir testa på den relative differansen i staden for sjølve differansen.

i) Algoritme og koding

Lag programmet slik at brukaren kan skrive inn ein vilkårleg polynomfunksjon av grad 3 eller mindre.

Skrive av Bjarne Skurdal.
Sist fagleg oppdatert 25.04.2020