Polynomdivisjon I
Mål for opplæringa er at eleven skal kunne
- formulere og løyse problem ved hjelp av algoritmisk tenking, ulike problemløysingsstrategiar, digitale verktøy og programmering
- forklare polynomdivisjon og bruke det til å omskrive algebraiske uttrykk, drøfte funksjonar og løyse likningar og ulikskapar
Numerisk heltallsfaktorisering av polynom
Vi starter med å se hvordan vi kan bruke programmering til å numerisk finne heltallsfaktorer av et polynom. For å gjøre dette må vi først vite hva som kjennetegner en faktor i et polynom.
<div class="alert alert-block alert-info">Oppgave 1
a) Hvordan kan vi vite at polynomet er delelig med uten å gjennomføre en polynomdivisjon?
b) Finn alle faktorene til ved hjelp av polynomdivisjon
</div>Vi skal nå lage et program som kan finne alle heltallsfaktorene til et polynom. For å gjøre dette trenger vi å bruke metoden fra oppgaven over, nemlig at hvis , så er en faktor til .
Oppgave 2
Diskuter med sidemannen hvordan vi kan bruke dette til å finne alle heltallsfaktorene til en gitt polynom
Første del av programmet
Koden vår trenger å vite polynomet vi ønsker å finne faktorene til. Deretter må vi gå gjennom et passe antall verdier og sjekke om det er faktorer. I skjelettprogrammet under har vi valgt å sjekke heltallsfaktorer i intervallet . Merk at koden under ikke vil kjøre, se oppgave 3
def P(x):
y = x**3 + 3*x**2 - x - 3 # Polynomet vi ønsker å finne faktorene til
return y
for i in range(-10, 11):
if ???
print(???)
Oppgave 3
Diskuter med makkeren din hva som skal stå istedenfor ???
både i linje 6 og linje 7.
Løsning:
def P(x):
y = x**3 + 3*x**2 - x - 3 # Polynomet vi ønsker å finne faktorene til
return y
for i in range(-10, 11):
if P(i) == 0:
print("En faktor er x -",i)
Oppgave 4
Test programmet flere ganger for andre polynomer fra for eksempel læreboken. Er det noen ganger programmet ikke fungerer? I så tilfelle, hvorfor ikke?
Pynting av programmet
Det er litt uheldig at vi for negative faktorer får dobbelt subtraksjonstegn.
<div class="alert alert-block alert-info">Oppgave 5 (frivillig)
Hvordan kan vi endre programmet slik at vi alltid får et svar på formen eller ?
</div>Løsning:
def P(x):
y = x**3 + 3*x**2 - x - 3 # Polynomet vi ønsker å finne faktorene til
return y
for i in range(-10, 11):
if P(i) == 0:
if i < 0:
print("En faktor er x +",abs(i))
elif i == 0:
print("En faktor er x")
else:
print("En faktor er x -",i)
Oppgave 6
Diskuter med makkeren din hva vi kan gjøre hvis det ikke er noen heltallige faktorer til polynomet. Kan dere tenke en metode vi kan sjekke for disse faktorene på?
</div> <div class="alert alert-block alert-warning">Hvis man ønsker å gå videre og løse dette, gå til neste opplegg kalt Polynomdivison II.
</div># Fullstendig kode
def P(x):
y = x**3 + 3*x**2 - x - 3 # Polynomet vi ønsker å finne faktorene til
return y
for i in range(-10, 11):
if P(i) == 0:
if i < 0:
print("En faktor er x +",abs(i))
elif i == 0:
print("En faktor er x")
else:
print("En faktor er x -",i)