I denne oppgåva skal du bruke Python til å utforske likningsløysing med abc-formelen. Vi skal gjere dette stegvis. Vi skal lage eit program der ein brukar kan skrive inn likninga og få ut løysingane.
a) Python kjem ikkje til å forstå teiknet ±. Korleis kan vi dele abc-formelen i to delar som Python kan tolke?
Løysing
Når vi deler opp formelen i to delar, kan han skrivast som
x1=-b+b2-4ac2a∨x2=-b-b2-4ac2a
b) Korleis kan brukaren av programmet skrive inn andregradslikninga som skal løysast?
Løysing
Vi må gå ut ifrå at brukaren har ei andregradslikning på forma ax2+bx+c=0, som ovanfor. Då treng vi berre konstantane a, b og c frå brukaren.
c) Skriv algoritmen til eit program som løyser andregradslikningar for oss. Programmet skal ta imot den informasjonen som trengst om likninga, frå brukaren av programmet. Løysingane kan presenterast med utskrifta "x1 = ... , x2 = ...". Hugs å få med forklarande tekstar i starten av programmet slik at brukaren av programmet veit kva som skal gjerast.
Løysingsforslag
Importer kvadratrotfunksjonen.
Skriv til skjermen "Dette programmet løyser andregradslikninga ax^2 + bx + c = 0.".
Ta imot talet "a" frå brukaren, konverter det til eit ekte tal, og set det lik variabelen a.
Ta imot talet frå "b" frå brukaren, konverter det til eit ekte tal, og set det lik variabelen b.
Ta imot talet "c" frå brukaren, konverter det til eit ekte tal, og set det lik variabelen c.
Rekn ut x1 med formelen ovanfor, og set resultatet lik variabelen x1.
Rekn ut x2 med formelen ovanfor, og set resultatet lik variabelen x2.
Skriv til skjermen "Løysingane er x1 = og x2 = .".
I siste linje betyr "" innhaldet av variabelen x1.
d) Skriv programmet og test det med likningax2+4x-5=0. Gir programmet riktige løysingar?
Løysing
Programmet gir utskrifta "Løysingane er x1 = 1.0 og x2 = -5.0).". Dette er riktige løysingar.
e) Prøv programmet på likninga x2-6x+9=0. Kvifor passar ikkje utskrifta av løysinga så godt til denne likninga?
Løysing
Her gir programmet utskrifta "Løysingane er x1 = 3.0 og x2 = 3.0.". Dette er eit fullstendig kvadrat, så dermed blir begge løysingane like. Programmet vil alltid rekne ut to løysingar, uavhengig av om løysingane er like eller ikkje.
f) Prøv programmet på likninga x2-6x+10=0. Kva skjer no, og kvifor skjer dette?
Løysing
Her får vi ei feilmelding, "math domain error". Det betyr at det ikkje går an å rekne ut. Sjekk diskriminanten (uttrykket under rotteiknet)!
g) Endre på algoritmen i c) slik at programmet gir ei utskrift tilpassa alle dei ulike tilfella av andregradslikningar vi kan komme borti.
Løysing
Her må vi legge inn ei if-else-setning, som finn to løysingar dersom diskriminanten er større enn 0, og éi løysing dersom diskriminanten er lik 0. If-else-setninga vil òg skrive ut at likninga ikkje har reelle løysingar dersom diskriminanten er negativ. Vi legg det inn mellom innhenting av konstantane og utrekninga.
h) Skriv programmet frå g) og test det på ulike likningar.
Løysing
Oppgåve 3
Løys likningane ved å bruke abc-formelen.
a) 3x2-3x-6=0
Løysing
Her er det lurt å dividere alle ledda med 3 før vi set inn i abc-formelen.
Ronald har prøvd seg på likningsløysing med abc-formelen, men han strever med å få dette til. Han føler at han er nesten i mål, men har ei kjensle av at han alltid gjer minst éin feil. Kan du hjelpe han med å finne feila i løysingane hans?
Her har Ronald bomma når han har ordna likninga. Det er ikkje rekkefølga på ledda som avgjer kva tal som er a, b og c. Han burde heller ha tenkt på kva tal som er koeffisient til andregradsleddet og koeffisient til førstegradsleddet, og kva tal som er konstantleddet. Han burde ha ordna likninga slik i staden:
x2+3=4xx2-4x+3=0
Då kunne han ha funne løysingane:
x=--4±-42-4·1·32=4±16-122=4±22x=4+22=3∨x=4-22=1
c)
x2+2x-3=0x=-2±22-4·1·32x=-2±4-122
Likninga har ingen reelle løysingar.
Løysing
Her har Ronald oversett at konstantleddet er negativt. Han har sett c=3, mens det eigentleg skal vere c=-3. Då ville løysinga ha blitt slik:
a) Grunnflata til eit hus er eit rektangel med breidde x meter og lengde (x+4) meter. Arealet er 96 m2. Set opp ei andregradslikning og rekn ut kor langt og kor breitt huset er.
b) Grunnflata til eit hus er eit rektangel med breidde (x-5) meter og lengde x meter. Arealet er 126 m2. Set opp ei andregradslikning og rekn ut kor langt og kor breitt huset er.
c) Grunnflata til ein garasje er eit rektangel med breidde x meter og lengde (x+2) meter. Diagonalen i grunnflata er 10 meter. Set opp ei andregradslikning og rekn ut kor lang og kor brei garasjen er.
Løysing
Her må vi bruke pytagorassetninga for å setje opp likninga.
x2+x+22=102x2+x2+4x+4-100=02x2+4x-96=0
Her er det lurt å dividere alle ledda med 2 for å få lettare tal å setje inn iabc-formelen.