Enkel funksjonsanalyse av andregradsfunksjoner
Introduksjon¶
I denne aktiviteten skal du prøve å lage en kalkulator for å regne ut nullpunkter og symmetrilinje for andregradfunksjoner i Python. Poenget med aktiviteten er å se på overgangen fra formler og prosedyrer fra matematikktimen til beregninger og algoritmer i programmering. Når kalkulatoren er ferdig kan den brukes for å sjekke svar på egne oppgaver.
Forkunnskaper¶
I forkant av denne aktiviteten bør man ha gjennomgått matematikken på forhånd, dvs:
Ha jobbet med funksjoner og andregradsfunksjoner
Ha ett på nullpunkter og ekstremalpunkter
Ha jobbet med den generelle løsningsformelen for andregradslikninger
Ha sett på betydningen av uttrykket under rottegnet i den generelle løsningen:
Ha snakket om symmetri i uttrykket og hvorfor man kan finne symmetrilinjen og ekstremalpunktet med formelen
Ha kjennskap til variabler og operatorer i programmering (Python)
Ha kjennskap til betingelser i programmering (Python)
Læringsmål¶
Å kunne omsette formler og prosedyrer fra matematikkundervisning til kode via pseudokode
Å kunne bruke beregninger og betingelser for å lage algoritmer
Å bruke programmering som en forsterking av matematikktimen
Å kunne bruke programmering som et tidsbesparende verktøy
TODO¶
lage forslag til oppgaver/aktiviteter underveis hvor elevene kan gjøre endringer og teste mer
Koble til bruk av Geogebra for å kontrollere om programmet kjører riktig
Utvikling av programmet¶
Vi skal utvikle koden steg for steg. Et viktig poeng med koding er at man jobber steg for steg, og kjører koden underveis for å sjekke at koden gjør det som den skal, og at man får fikset kjørefeil og andre bugs underveis. Du må bruke variabler og beregninger og betingelser (IF-ELIF-ELSE) for å få dette til!
Symmetri og ekstremalpunkt¶
Her er et forslag til pseudokode for å finne symmetrilinjen og ekstremalpunktet i en andregradsfunksjon:
Lag 3 variabler for a, b og c som i det generelle andregradsuttrykket
Bruk formelen for symmetrilinjen til andregradsfunksjonen og finn ekstremalpunktet:
Bruk fortegnet til a til å bestemme om dette er et topp- eller bunnpunkt
Skriv ut koordinatene på ekstremalpunktet
Tips: Koeffisienten a i det generelle funksjonsuttrykket bestemmer om grafen har bunnpunkt eller toppunkt og lag en if-test som kan sjekke om a er større eller mindre enn null
Løsningsforslag
1 2 3 4 5 6a = 1 b = -2 c = -3 x = (-b)/(2*a) print("Funksjonen har symmetrilinje for x = " + str(x))
Løsningsforslag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18a = -1 b = 0 c = 4 # Symmetrilinje: x = (-b)/(2*a) print("Vi har symmetrilinje for x = " + str(x)) # Topp eller bunn? if a > 0: print("Funksjonen har et bunnpunkt") elif a < 0: print("Funksjonen har et toppunkt") else: # hvis a = 0 print("Funksjonen er ikke en andregradsfunksjon")
Løsningsforslag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25a = -1 b = 0 c = 4 # Symmetrilinje: x = (-b)/(2*a) print("Vi har symmetrilinje for x = " + str(x)) # Topp eller bunn? if a > 0: print("Funksjonen har et bunnpunkt") elif a < 0: print("Funksjonen har et toppunkt") else: print("Funksjonen er ikke en andregradsfunksjon") # finner y-verdien til ekstremalpunktet y = a*x**2 + b*x + c print("x = " + str(x)) print("y = " + str(y)) # finner eventuelle nullpunkter:
Nullpunkter¶
Forslag til pseudokode
Sjekk om funksjonen faktisk har nullpunkter (er ?). Andregradfunksjoner har enten 0, 1 eller 2 nullpunkter!
Hvis den har nullpunkter, bruk løsningsformelen: til å finne nullpunktene
Forslag til ferdig kode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41# nødvendig bibliotek for å kunne ta kvadrat import math a = -1 b = 0 c = 4 # Symmetrilinje: x = (-b)/(2*a) print("Vi har symmetrilinje for x = " + str(x)) # Topp eller bunn? if a > 0: print("Funksjonen har et bunnpunkt") elif a < 0: print("Funksjonen har et toppunkt") else: print("Funksjonen er ikke en andregradsfunksjon") # finner y-verdien til ekstremalpunktet y = a*x**2 + b*x + c print("x = " + str(x)) print("y = " + str(y)) # finner eventuelle nullpunkter: if b**2 > 4*a*c: print("Funksjonen har to nullpunkter") x = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a) print("x1 = ", str(x)) x = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a) print("x2 = ", str(x)) elif b**2 == 4*a*c: print("Funksjonen har ett nullpunkt") x = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a) print("x = " + str(x)) else: print("Funksjonen har ingen nullpunkter")