Skip to content
Task

Program som løser andregradslikninger

Å lage programmer som løser andregradslikninger, kan bidra til dybdelæring om likningsløsningen.

1.2.55

Den generelle andregradslikningen kan skrives på formen

ax2+bx+c=0

Den generelle måten å løse andregradslikninger på ved regning for hånd er å bruke abc-formelen (andregradsformelen), der vi putter inn konstantene a, b 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-4ac2a   eller    x2=-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:

Løsning av andregradslikning
1import numpy as np
2
3print("Dette programmet løser andregradslikningen ax^2 + bx + c = 0.")
4a = float(input("Skriv inn konstanten a: "))
5b = float(input("Skriv inn konstanten b: "))
6c = float(input("Skriv inn konstanten c: "))
7
8x1 = (-b + np.sqrt(b**2 - 4*a*c))/(2*a)
9x2 = (-b - np.sqrt(b**2 - 4*a*c))/(2*a)
10
11print(f"Løsningene er x1 = {x1} og x2 = {x2}.")

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.

Related content

Subject material
Andregradslikninger

Vi ser på andregradslikninger og hvordan vi kan løse en andregradslikning med og uten bruk av abc-formelen.