Finne toppunkt med while-løkke og derivasjon
Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.
En elev har skrevet programkoden nedenfor.
def f(x):
return x/(1+x**2)
h = 0.0001
x = 0
while (f(x+h)-f(x))/h > 0:
x = x + 0.01
print("x=", x)
Hva ønsker eleven å finne ut?
Forklar hva som skjer når programmet kjøres. Hva blir resultatet?
Fasit
Eleven ønsker å finne -verdien til toppunktet på grafen til .
Programmet skriver ut x= 1.0 (tilnærmet). Toppunktet er .
LøsningsforslagKI-generert
Eleven beregner den numeriske tilnærmingen til den deriverte
og sjekker om den er positiv. Så lenge øker funksjonen, og while-løkken fortsetter. Løkken stopper første gang , det vil si når funksjonen slutter å vokse.
Eleven ønsker altså å finne -koordinaten til toppunktet på grafen til .
Vi følger programmet steg for steg:
Definisjon og startverdier:
def f(x):
return x/(1+x**2)
h = 0.0001
x = 0
- Funksjonen defineres.
- Skrittstørrelsen brukes til numerisk derivasjon.
- Startpunktet settes til .
While-løkken:
while (f(x+h)-f(x))/h > 0:
x = x + 0.01
- Betingelsen sjekker om .
- Ved er (funksjonen stiger), så løkken starter.
- For hvert steg økes med .
- Løkken fortsetter så lenge funksjonen stiger, og stopper første gang den slutter å stige.
Utskrift:
print("x=", x)
Programmet skriver ut -verdien der funksjonen slutter å stige, altså -koordinaten til toppunktet.
Resultatet:
Programmet skriver ut:
x= 1.0
Kontroll analytisk: Vi finner toppunktet ved å løse :
Siden starter på og øker, finner programmet . Toppunktets -verdi er
Toppunktet er .