Å lage programmer som løser andregradslikninger, kan bidra til dybdelæring om likningsløsningen.
1.2.55
Den generelle andregradslikningen kan skrives på formen
Den generelle måten å løse andregradslikninger på ved regning for hånd er å bruke abc-formelen (andregradsformelen), der vi putter inn konstantene og c fra likningen:
x=-b±b2-4ac2a
a) Spørsmål
Forklar hvorfor abc-formelen egentlig er to formler.
Løsning
abc-formelen er to formler på grunn av pluss/minus-tegnet. Når vi deler opp abc-formelen i to deler, kan den skrives som
x1=-b+b2-4ac2aellerx2=-b-b2-4ac2a
b) Spørsmål
Hvordan kan brukeren av programmet skrive inn den andregradslikningen som skal løses?
Løsningsforslag
Vi må gå ut ifra at brukeren har en andregradslikning på formen ax2+bx+c=0 som ovenfor. Da trenger vi bare konstantene a,b og c fra brukeren.
c) Algoritme
Skriv algoritmen til et program som løser andregradslikninger for oss. Programmet skal ta imot den informasjonen som trengs om likningen fra brukeren av programmet. Løsningene kan presenteres med utskriften "x1 = ... , x2 = ...". Husk å få med forklarende tekster i starten av programmet slik at brukeren av programmet vet hva som skal gjøres.
Løsningsforslag
Skriv til skjermen "Dette programmet løser andregradslikningen ax^2 + bx + c = 0.".
Skriv til skjermen "Skriv inn konstanten a:".
Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen a.
Skriv til skjermen "Skriv inn konstanten b:".
Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen b.
Skriv til skjermen "Skriv inn konstanten c:".
Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen c.
Regn ut x1 med formelen ovenfor, og sett resultatet lik variabelen x1.
Regn ut x2 med formelen ovenfor, og sett resultatet lik variabelen x2.
Skriv til skjermen "Løsningene er x1 = <x1> og x2 = <x2>.".
I siste linje betyr "<x1>" innholdet av variabelen x1.
d) Koding
Lag et program etter algoritmen i oppgave c). Test programmet med likningen x2+4x-5=0. Gir programmet riktige løsninger?
Løsning
Forslag til kode skrevet i Python:
e) Diskusjon
Fungerer programmet på alle andregradslikninger?
f) Testing
Prøv programmet på likningen x2-6x+9=0. Hvorfor passer ikke utskriften av løsningen så godt til denne likningen?
g) Testing
Prøv deretter programmet på likningen x2-6x+10=0. Hva skjer nå, og hvorfor skjer dette?
h) Algoritme
Endre på algoritmen i oppgave c) slik at programmet gir utskrift tilpasset de ulike tilfellene av andregradslikninger vi kan komme borti.
Tips til oppgaven
Her må du legge inn noen tester. Hva er det som avgjør hvor mange løsninger en andregradslikning har? Hva må du teste på?
i) Koding
Lag programmet etter denne algoritmen, og sjekk at det fungerer.