Løse likninger med programmering
Når vi løser en likning med programmering, lar vi programmet teste ulike x-verdier. Programmet regner ut venstre og høyre side, sammenligner dem og sier fra når sidene blir like.
Kort forklart
En likning er som en balanse. Venstre side og høyre side skal ha samme verdi. I programmering kan vi teste én og én x-verdi og sjekke når balansen stemmer.
3x + 4 = 19
Prøv x-verdier. Når 3x + 4 blir 19, har vi funnet løsningen.
Viktig: Denne metoden finner først og fremst heltallige løsninger i intervallet du tester. Hvis løsningen er 2,5, finner ikke programmet den når det bare tester hele tall.
Video
Se først hvordan programmering kan brukes til å teste x-verdier og finne løsningen på en likning.
Første eksempel: test mange x-verdier
Vi starter med likningen 3x + 4 = 19. Programmet prøver alle heltall fra −100 til 100. For hver x-verdi regner det ut venstre side og høyre side.
# Vi skal løse likningen:
# 3x + 4 = 19
for x in range(-100, 101):
venstre_side = 3 * x + 4
hoyre_side = 19
if venstre_side == hoyre_side:
print("Løsningen er x =", x)
Løsningen er x = 5
Velg verdier
range(-100, 101) tester heltall fra −100 til 100.
Regn venstre
3 * x + 4 er venstre side av likningen.
Regn høyre
Høyre side er bare tallet 19.
Sammenlign
== sjekker om sidene er like.
Skriv svar
Når sidene er like, skriver programmet ut x-verdien.
Obs: I Python bruker vi * for gange. Derfor skriver vi 3 * x, ikke 3x.
Venstre side og høyre side
Noen likninger har x på begge sider. Da er det ekstra nyttig å lage én variabel for venstre side og én for høyre side.
Her løser vi 2x + 7 = 25 − x. Programmet skriver ut begge sidene for hver x-verdi, slik at vi kan se når de blir like.
for x in range(0, 12):
vs = 2 * x + 7
hs = 25 - x
print("x =", x, "Venstre side:", vs, "Høyre side:", hs)
if hs == vs:
print("Vi har funnet løsningen")
x = 4 Venstre side: 15 Høyre side: 21 x = 5 Venstre side: 17 Høyre side: 20 x = 6 Venstre side: 19 Høyre side: 19 Vi har funnet løsningen x = 7 Venstre side: 21 Høyre side: 18
Legg merke til: Når x = 6, er begge sidene 19. Derfor er løsningen x = 6.
La brukeren velge intervallet
I stedet for å alltid teste fra −100 til 100, kan vi spørre brukeren hvor programmet skal starte og slutte. Da blir programmet mer fleksibelt.
print("4x + 5 = 17")
start = int(input("Hvilken x-verdi vil du starte med? "))
slutt = int(input("Hvilken x-verdi vil du slutte med? "))
for x in range(start, slutt + 1):
vs = 4 * x + 5
hs = 17
if vs == hs:
print("Løsning: x =", x)
4x + 5 = 17 Hvilken x-verdi vil du starte med? 0 Hvilken x-verdi vil du slutte med? 10 Løsning: x = 3
Hvorfor står det slutt + 1? I Python tar range() med startverdien, men stopper før sluttverdien. Derfor må vi skrive slutt + 1 hvis sluttverdien også skal testes.
Når programmet ikke finner en løsning
Noen ganger finnes det ingen heltallig løsning i intervallet du tester. Da bør programmet også kunne gi beskjed om det.
print("4x + 5 = 17")
start = int(input("Hvilken x-verdi vil du starte med? "))
slutt = int(input("Hvilken x-verdi vil du slutte med? "))
losning = "feil"
for x in range(start, slutt + 1):
vs = 4 * x + 5
hs = 17
if vs == hs:
print("Løsning: x =", x)
losning = "riktig"
if losning != "riktig":
print("Det fins ingen heltallig løsning i ditt intervall")
print("(", start, ",", slutt, ")")
4x + 5 = 17 Hvilken x-verdi vil du starte med? 4 Hvilken x-verdi vil du slutte med? 10 Det fins ingen heltallig løsning i ditt intervall ( 4 , 10 )
Hva gjør variabelen losning? Den starter som "feil". Hvis programmet finner en løsning, endres den til "riktig". Etter løkken kan programmet sjekke om det fant noe.
Test ett forslag fra brukeren
Noen ganger vil vi ikke teste mange x-verdier. Vi vil bare sjekke om ett forslag er riktig. Da kan programmet regne ut venstre og høyre side for den x-verdien brukeren skriver inn.
print("4x + 5 = 17")
x = int(input("Hva tror du er løsningen? "))
vs = 4 * x + 5
hs = 17
print("Venstre side =", vs, "og høyre side =", hs)
if vs == hs:
print("Riktig!")
else:
print("Ikke helt. Prøv igjen.")
4x + 5 = 17 Hva tror du er løsningen? 3 Venstre side = 17 og høyre side = 17 Riktig!
Viktige kodeord
Disse ordene og tegnene dukker ofte opp når vi løser likninger med programmering.
Vanlige feil
Her er noen feil som ofte dukker opp når man bruker Python til å løse likninger.
Python forstår ikke 4x. Skriv 4 * x.
= gir verdi. == sjekker om sidene er like.
Hvis løsningen ikke ligger i intervallet, finner ikke programmet den.
range(0, 10) tester ikke 10. Bruk range(0, 11).
Sjekk at venstre side og høyre side i koden faktisk passer med likningen.
En løkke med hele tall finner ikke løsninger som x = 2,5.
Prøv selv
Velg nivået som passer. Start gjerne med å kopiere et av programmene over og endre likningen.
Nivå 1: Endre likningen
Bruk samme program, men bytt ut venstre side og høyre side.
↓
Nivå 1: Endre likningen
Bruk samme program, men bytt ut venstre side og høyre side.
Lag et program som løser 2x + 3 = 13.
Vis løsningsforslag
Bruk venstre_side = 2 * x + 3 og hoyre_side = 13. Svaret er x = 5.
Lag et program som løser 5x − 4 = 21.
Vis løsningsforslag
Bruk venstre_side = 5 * x - 4 og hoyre_side = 21. Svaret er x = 5.
Lag et program som løser 7x + 1 = 50.
Vis løsningsforslag
Bruk venstre_side = 7 * x + 1 og hoyre_side = 50. Svaret er x = 7.
Nivå 2: x på begge sider
Lag både vs og hs.
↓
Nivå 2: x på begge sider
Lag både vs og hs.
Løs 2x + 5 = x + 12 med programmering.
Vis løsningsforslag
Bruk vs = 2 * x + 5 og hs = x + 12. Svaret er x = 7.
Løs 3x − 2 = 18 − x med programmering.
Vis løsningsforslag
Bruk vs = 3 * x - 2 og hs = 18 - x. Svaret er x = 5.
Løs 4x + 1 = 2x + 15 med programmering.
Vis løsningsforslag
Bruk vs = 4 * x + 1 og hs = 2 * x + 15. Svaret er x = 7.
Nivå 3: Gjør programmet smartere
Bruk intervall, beskjed hvis ingen løsning blir funnet, eller sjekk ett forslag.
↓
Nivå 3: Gjør programmet smartere
Bruk intervall, beskjed hvis ingen løsning blir funnet, eller sjekk ett forslag.
Lag et program der brukeren velger start og slutt, og programmet løser 6x − 8 = 28.
Vis løsningsforslag
Svaret er x = 6. Husk range(start, slutt + 1).
Lag et program som sier fra hvis det ikke finnes heltallig løsning i intervallet for 2x + 1 = 8.
Vis løsningsforslag
Likningen har løsningen x = 3,5. Et program som bare tester heltall, skal derfor ikke finne en heltallig løsning.
Lag et program som spør: «Hva tror du er løsningen?» og sjekker svaret for 5x + 2 = 32.
Vis løsningsforslag
Regn ut vs = 5 * x + 2 og hs = 32. Hvis vs == hs, skal programmet skrive «Riktig!». Svaret er x = 6.
Kort oppsummert
En likning er løst når venstre side og høyre side har samme verdi.
Med for x in range(...) kan programmet teste mange x-verdier.
Bruk * når du skal gange i Python.
Bruk == når du skal sjekke om to verdier er like.
Hvis programmet bare tester heltall, finner det bare heltallige løsninger.
Huskeregel: Skriv venstre side og høyre side som kode. Test x-verdier med en løkke. Når venstre_side == hoyre_side, har du funnet løsningen.