a) Bruk programmering og finn en tilnærming til den deriverte i punktet .
LøsningPython
1deff(x):#definerer funksjonen2return x**2-434defderf(x,deltax):#definerer tilnærmingen5return(f(x + deltax)- f(x))/deltax
6x =37deltax =0.0001#setter deltax lik 0.000189print(x)10print(round(derf(x,deltax),1))#printer den deriverte med én desimal
Du skal lage et program som finner bunnpunktet til funksjonen ved hjelp av en tilnærming til den deriverte.
b) Skriv med ord hva du vil at programmet skal gjøre.
Løsning
Programmet må definere funksjonen og den deriverte. Så må vi lage ei løkke som regner ut tilnærminger til den deriverte for stadig større x-verdier for å finne ut når den deriverte endrer fortegn fra negativt til positivt. Dette er bunnpunktet som vi vil skrive ut.
c) Lag programmet.
LøsningPython
1deff(x):#definerer funksjonen2return x**2+234defderf(x,deltax):#definerer tilnærmingen5return(f(x + deltax)- f(x))/deltax
6x =-27deltax =0.0001#setter deltax lik 0.000189while derf(x,deltax)<0:10 x = x + deltax
1112print(f'Bunnpunktet er ({x:.1f}, {f(x):.1f}).')13
I denne oppgaven skal du øve på å tolke programmer. For hvert av programmene skal du beskrive hva programmet gjør, og finne ut hva som blir skrevet ut. Løs oppgave a) og b) uten hjelpemidler.
a)
Python
1deff(x):2return x**2-2*x -434x =056while(f(x +0.0001)- f(x))/0.0001<0:7 x = x +0.0189print(x)
Løsning
Programmet definerer funksjonen . Deretter definerer det startpunktet for x til 0. Så øker programmet x-verdien med 0,01 så lenge en tilnærming til den deriverte er negativ. I det øyeblikket tilnærmingen blir positiv, skriver programmet ut x-verdien.
Programmet finner her x-verdien til bunnpunktet til funksjonen. Vi kan finne dette ved regning for eksempel ved hjelp av symmetrilinja til andregradsfunksjonen:
b)
Python
1deff(x):2return x**3-6*x**2+9*x +134x =056while x <4:7ifabs((f(x +0.0001)- f(x))/0.0001)<0.001:8print(x)9 x = x +0.01
Løsning
Programmet definerer først funksjonen . Startverdien for x settes lik 0. Programmet kjører ei løkke så lenge x er mindre en 4. Dersom absoluttverdien til en tilnærming til den deriverte i et punkt er mindre enn 0,001, skriver programmet ut denne x-verdien. Løkka sjekker alle x-verdier mellom 0 og 4 med en avstand på 0,01.
Vi vet at der den deriverte er 0, finner vi ekstremalpunktene. Vi deriverer og setter den deriverte lik 0 for å finne ut hva som blir skrevet ut:
Vi ser at begge nullpunktene til den deriverte er innenfor intervallet , dermed vil programmet skrive ut x-verdiene til begge ekstremalpunktene.
Først defineres funksjonen og en funksjon for en tilnærming til den deriverte. Til slutt printes , som er x-verdien 3 og en tilnærming til den deriverte i denne x-verdien.
Ella har fått i oppgave å skrive et program som finner eventuelle ekstremalpunkter til funksjonen .
Hun har laget følgende program:
Python
1deff(x):2return x**4- x**334defderivert(x,h):5return(f(x + h)- f(x))/h
67x =-189while x <4:10ifabs((f(x +0.0001)- f(x))/0.0001)<0.001:11print(f'{x:.3f}')12 x = x +0.01
Dette ga følgende utskrift:
Ella svarer dermed at har fire ekstremalpunkter.
a) Gjør beregninger og finn ut om Ella har rett.
Løsning
En fjerdegradsfunksjon kan maksimalt ha tre ekstremalpunkter, så det er klart at dette ikke stemmer helt.
Vi finner ut hvor mange ekstremalpunkter funksjonen har, ved å se på når den deriverte skifter fortegn:
Vi ser at den deriverte har to nullpunkter, men den deriverte skifter kun fortegn der . Det er altså bare den siste verdien Ella har funnet, som gir et ekstremalpunkt.
b) Forklar hvorfor programmet finner tre x-verdier i tillegg til den riktige verdien.
Løsning
De tre første verdiene er verdier som ligger veldig nærme 0, som er et ekte nullpunkt for den deriverte. Men siden vi ikke kan være sikre på at et program faktisk finner et nøyaktig nullpunkt, har vi satt vilkåret til løkka til at tilnærmingen til den deriverte skal være mindre enn 0,001. Dermed fant programmet tre ulike slike verdier som ligger nærme null, men det er egentlig det samme punktet vi fant ved regning, nemlig , som er et terrassepunkt og ikke et ekstremalpunkt.
c) Gjør om på programmet til Ella slik at det kun finner det ene punktet som er et ekstremalpunkt, og skriver ut hele punktet.
Løsning
Forslag til program:
Python
1deff(x):2return x**4- x**334defderivert(x,h):5return(f(x + h)- f(x))/h
67x =-189while(f(x +0.0001)- f(x))/0.0001<0:10 x = x +0.011112print(f'({x:.2f}, {f(x):.2f})')
Her ser vi ikke på forskjellen mellom to påfølgende tilnærminger, men leter bare etter det punktet der den deriverte går fra å være negativ til å være positiv. For å gjøre dette må vi vite at det er et bunnpunkt vi leter etter, og ikke bare lete etter et generelt ekstremalpunkt.
Bernard har laget programmet nedenfor for å finne ekstremalpunktene til funksjonen .
Python
1deff(x):2return x**3- x**2+2*x
34defderivert(x,h):5return(f(x + h)- f(x))/h
67x =-189while(f(x +0.0001)- f(x))/0.0001<0:10 x = x +0.011112print(f'({x:.2f}, {f(x):.2f})')
a) Programmet skriver ut (-1.00, -4.00). Forklar (uten å regne) at dette ikke er et ekstremalpunkt, og forklar hvorfor programmet skriver ut dette punktet.
Løsning
Vi observerer at tredjegradsleddet er positivt, altså vil et eventuelt første ekstremalpunkt være et toppunkt. Programmet til Bernard leter etter et bunnpunkt, siden vi kjører løkka så lenge den deriverte er negativ. Punktet som skrives ut, er dermed det aller første punktet, siden løkka ikke kommer i gang.
Bernard endrer programmet slik:
Python
1deff(x):2return x**3- x**2+2*x
34defderivert(x,h):5return(f(x + h)- f(x))/h
67x =-189while(f(x +0.0001)- f(x))/0.0001>0:10 x = x +0.011112print(f'({x:.2f}, {f(x):.2f})')
b) Denne gangen skriver ikke programmet ut noe og må stoppes manuelt. Forklar hvorfor dette skjer.
Løsning
Vi deriverer funksjonen og ser på monotoniegenskapene:
Vi observerer at diskriminanten (uttrykket under rottegnet) blir negativ. Dermed har den deriverte ingen nullpunkter. Vilkåret for at løkka skal stoppe, er at den deriverte skal bli negativ. Det andre programmet til Bernard vil dermed aldri stoppe fordi den deriverte alltid vil være større enn 0.