Python-program med rasjonal funksjon og feilmelding
Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.
def f(x):
return (1 - 2 * x) / (x - 2)
x = 8
while x >= -8:
print(x , f(x))
x = x - 1
8 -2.5
7 -2.6
6 -2.75
5 -3.0
4 -3.5
3 -5.0
Lars har skrevet en programkode. Ovenfor ser du koden, og resultatet Lars får når han kjører programmet.
Når programmet har skrevet ut de seks linjene, kommer en feilmelding.
Hva ønsker Lars å bruke programmet til, og hvorfor får han en feilmelding?
Foreslå endringer Lars kan gjøre i koden for å unngå feilmeldingen.
Skisser grafen til funksjonen som Lars har definert i linje 1 og 2 i koden.
Fasit
Lars ønsker å beregne og skrive ut funksjonsverdier for heltallsverdier av fra ned til . Feilmeldingen skyldes divisjon med null når .
Legg til et if-uttrykk slik at hoppes over.
Loddrett asymptote , vannrett asymptote , nullpunkt , skjæring med -akse i .
LøsningsforslagKI-generert
Programmet starter med og teller ned med for hver runde i løkken, helt til . For hver verdi av regner det ut og skriver ut og .
Formålet er altså å lage en tabell over funksjonsverdiene for heltall fra til .
Etter at de seks linjene er skrevet ut, er neste verdi . Da er nevneren , og Python klarer ikke å dividere med null. Programmet krasjer med feilmeldingen ZeroDivisionError: division by zero.
Svar: Lars ønsker å lage en tabell over for heltallsverdier av fra til . Feilmeldingen kommer fordi er udefinert — nevneren når .
En måte å unngå feilmeldingen på er å hoppe over med en if-setning:
def f(x):
return (1 - 2 * x) / (x - 2)
x = 8
while x >= -8:
if x != 2:
print(x, f(x))
x = x - 1
En annen mulighet er å fange feilen med try/except:
def f(x):
return (1 - 2 * x) / (x - 2)
x = 8
while x >= -8:
try:
print(x, f(x))
except ZeroDivisionError:
print(x, "udefinert")
x = x - 1
Funksjonen er .
Vi finner viktige punkter og linjer:
Loddrett asymptote: Nevneren er null når , altså .
Vannrett asymptote: For store dominerer leddene med høyest grad. Da er
Vannrett asymptote: .
Nullpunkt: gir , altså .
Skjæring med -aksen: .
Skisse:
Grafen har to grener, én for og én for . Begge grenene nærmer seg asymptotene og . Grafen skjærer -aksen i og -aksen i .
For er telleren og nevneren , så . Grenen går fra (ved ) opp mot (når ).
For er grenen over asymptoten for (med skjæring i -aksen og -aksen som markert), og fortsetter opp mot når .