Hopp til innhald
Oppgåve

Program som løyser lineære likningssett

Med programmering kan vi forstå meir om det å løyse eit likningssett eller to likningar med to ukjende.

1.2.35

På sida "Likningssett" (sjå relatert side lengst nede på denne sida) løyser vi likningssettet

3x+2y = 3804x+3y=540

manuelt ved å bruke den såkalla innsetjingsmetoden. Vi kan òg løyse likningssett med to ukjende enkelt med CAS og GeoGebra dersom vi vil. No skal vi prøve å lage eit dataprogram som (kanskje) gjer jobben like godt.

a) Diskusjonsoppgåve

Kva treng vi av informasjon frå likningssettet for å kunne løyse det?

Kommentar

Det er dei seks tala – koeffisientane – i likningssettet som gir løysinga: 3, 2, 380, 4, 3 og 540. Når vi løyser likningssettet med innsetjingsmetoden, er det berre desse seks tala vi bruker for å rekne oss fram til løysinga.

Programmet vårt må kunne ta imot dei seks tala frå brukaren av programmet og deretter rekne ut løysinga ut ifrå tala, men korleis gjer vi det? Med innsetjingsmetoden følger vi eit fastsett mønster når vi løyser likningssettet. Det mønsteret kan vi finne ved å prøve å løyse manuelt eit generelt likningssett der koeffisientane er bokstavane a til og med f.

b) Oppstilling av generelt likningssett.

Prøv å skrive opp det generelle likningssettet ved hjelp av bokstavane a til og med f.

Mogleg likningssett

ax+by = cdx+ey=f

c) Trinn 1 i løysinga av det generelle likningssettet

Så gjer vi som vi ville gjort med innsetjingsmetoden: Vi startar med å løyse den eine likninga med omsyn på anten x eller y. Til vanleg ville vi sett etter den måten som gir oss enklast rekning, men her speler det ikkje noka rolle.

Klarer du å løyse likningssettet når alle tala er bokstavar? Prøv gjerne på det. Vi tek det stegvis nedanfor.
Løys den første likninga med omsyn på x.

Løysing

ax+by = cax=c-byaxa=c-byax=ca-bay

d) Trinn 2 i løysinga av det generelle likningssettet

Neste skritt i innsetjingsmetoden er å setje uttrykket for x inn i den andre likninga. Prøv om du greier å gjere dette sjølv før du ser på løysinga nedanfor.

Resten av løysinga

dx+ey = fdca-bay+ey=fdca-bday+ey=fe-bday=f-cdaae-bdy=af-cd      (Kva har vi gjort her?)y=af-cdae-bd

Då har vi kome fram til formelen for løysinga for y.

e) Spørsmål

Til vanleg ville vi no setje inn løysinga for y inn i det uttrykket vi fann for x lenger opp på sida, men treng vi eigentleg ein tilsvarande løysingsformel for x i programmet vårt?

Svar

Vi treng ikkje det, for vi kan la programmet rekne ut løysinga for y først og deretter bruke svaret til å rekne ut løysinga for x.

f) Algoritme

Då har vi følgande formlar som vi kan bruke i programmet vårt:

y=af-cdae-bd  ,     x=ca-bay

Skriv algoritmen til eit program som kan løyse likningssettet. Programmet må gjere dette:

  • informere brukaren av programmet om kva programmet gjer
  • vise korleis likningssettet programmet løyser, ser ut
  • la brukaren skrive inn dei seks tala (koeffisientane)
  • rekne ut og presentere løysinga
Løysingsforslag
  • Skriv til skjermen "Dette programmet løyser likningssettet ax + by = c , dx + ey = f.".
  • Skriv til skjermen "Skriv inn verdien til konstanten a:".
  • Ta imot talet frå brukaren, konverter det til eit ekte tal, og lagre det i variabelen a.
  • Skriv til skjermen "Skriv inn verdien til konstanten b:".
  • Ta imot talet frå brukaren, konverter det til eit ekte tal, og lagre det i variabelen b.
  • Følg mønsteret i dei to punkta over for å ta imot verdien av c, d, e og f.
  • Rekn ut (af - cd)/(ae - bd) og set resultatet lik variabelen y.
  • Rekn ut c/a - by/a og set resultatet lik variabelen x.
  • Skriv til skjermen "Løysinga er x = <x>, y = <y>.".

Med "<x>" og "<y>" meiner vi verdien av variablane x og y.

g) Koding

Skriv programmet og test det på likningssettet øvst på sida. Bruk din eigen programmeringseditor eller den innebygde programmeringseditoren nedanfor. (NB: Det kan ta litt tid frå du trykker på avspelingsknappen til programmet blir køyrt.)

h) Testing av program

Nokre likningssett har ikkje løysing. Korleis oppfører programmet seg om brukaren skriv inn eit slikt likningssett?

i) Algoritme

Endre på algoritmen slik at det tek omsyn til likningssett som ikkje har løysing. Endre deretter programmet i tråd med den nye algoritmen.

j) Algoritme og koding

Er det andre spesielle likningssett vi må ta omsyn til? I så fall, tilpass først algoritmen, deretter programmet, slik at det passar for alle lineære likningssett.

Relatert innhald

Fagstoff
Likningssett

Vi ser på korleis vi kan løyse likningssett med to ukjende storleikar.