4.3. Løsning med programmering#

Læringsmål: lineære likninger med programmering

Etter å ha gått gjennom denne delen, er målet at du skal kunne:

  • Lese og tolke programmer som løser lineære likninger

  • Justere og tilpasse programmer for å løse dine egne likninger

Numerisk løsning av lineære likninger#

Mange likninger man møter på i det virkelige liv, har ingen analytisk løsning - det vil si, vi kan ikke få \(x\) alene. Et eksempel slik likning er

\[ 2^x = 6x + 5 \]

Men vi kan alltid prøve å finne en verdi for \(x\) slik at likningen er oppfylt - dette kaller vi å bestemme løsningen numerisk. Her skal vi se på én strategi for å gjøre dette med lineære likninger.


Repetisjon av nødvendige verktøy#

Først må vi repetere noen verktøy vi trenger for å få løst en likning numerisk.



Repetisjon 1: nullpunkter og likninger

Ta quizen!


Så bør du nok repetere litt om for-løkker.

Repetisjon 2: for-løkker

Ta quizen!

For hvert av programmene under:

  1. Les programmet og forutsi hva det vil skrive ut.

  2. Skriv inn hypotesen din for å sjekke svaret ditt.


Repetisjon 3: funksjoner i Python

Ta quizen!

For hvert av programmene under:

  1. Les programmet og forutsi hva det vil skrive ut.

  2. Skriv inn hypotesen din for å sjekke svaret ditt.

Her generaliserer vi programmene litt slik at vi jobber med en variabel x i stedet.

For hvert av programmene under:

  1. Les programmet og forutsi hva det vil skrive ut.

  2. Skriv inn hypotesen din for å sjekke svaret ditt.


Bestemme nullpunkter ved hjelp av programmering#

Alle likninger kan alltid skrives om til formen \(f(x) = 0\). Vi skal derfor fokusere på hvordan vi løser likninger av denne typen - altså likninger der vi skal finne nullpunktene til en funksjon \(f\).

Hvordan sjekke om \(f(x) = 0\) med et program#

Vi starter med å se på hvordan vi kan sjekke om \(f(x) = 0\) med et program uten å vite verdien til \(x\) direkte. Målet vårt er til slutt å automatisere søk etter nullpunkter ved hjelp av programmering.

Utforsk 1: hvordan sjekker vi om \(f(x) = 0\)?

Når vi skal sjekke om en funksjonsverdi \(f(x) = 0\), kan vi skrive f(x) == 0 i Python.

  • Hvis f(x) er lik 0, vil dette gi True (sant).

  • Hvis f(x) ikke en lik 0, vil dette gi False (usant).

Før vi anvender dette, bestem nullpunktene til funksjonene:

  • \(f(x) = x - 2\)

  • \(g(x) = 2x + 4\)

  • \(h(x) = -3x + 6\)

Under vises tre programkoder som tester ut om en funksjonsverdi er lik 0 og skriver ut svaret (som er enten True eller False).

For hvert av programmene under:

  1. Les programmet og forutsi hva det vil skrive ut.

  2. Skriv inn hypotesen din for å sjekke svaret ditt.

For hvert av programmene under:

  1. Les programmet og forutsi på hvilken linje i utskriften det vil skrives ut True.

  2. Skriv inn hypotesen din for å sjekke svaret.


Underveisoppgave 1

Ta quizen!


Hvordan automatisere søket etter nullpunkter#

Siste steg er å få et program til å fortelle oss når \(f(x) = 0\) automatisk uten at vi må lete gjennom en liste med True og False. For da kunne vi vel egentlig strengt tatt tatt bare gått gjennom en liste med tall i stedet. Denne automatiseringen skal vi se på nå!

Utforsk 2: automatisere søket etter nullpunkter

For å automatisere søket etter nullpunkter, kan vi bruke:

  1. En for-løkke som går gjennom en liste med mulige verdier for \(x\).

  2. For hver verdi av \(x\), sjekker vi om \(f(x) = 0\).

  3. Hvis \(f(x) = 0\) er sant, skriver vi ut verdien til \(x\).

Så langt har vi sett på punkt 1 og 2 - nå må vi utvide verktøykassa vår så vi kan få til punkt 3. Dette kan vi få til med å bruke en if-setning. Dette er en setning som gjør noe hvis noe er sant!

Under vises tre eksempelkoder som bruker en if-setning for å bestemme nullpunktet til en funksjon.

For hvert av programmene under:

  1. Les programmet og forutsi hva det vil skrive ut.

  2. Skriv inn hypotesen din for å sjekke svaret ditt.

Under vises et program som søker etter nullpunktet til en funksjon \(f\), men kodelinjene er plassert i tilfeldig rekkefølge.

Plasser kodelinjene i riktig rekkefølge.

Endre på programmet slik at det finner nullpunktet til

\[ f(x) = 4x + 12 \]

Kjør programmet og sjekk at du finner nullpunktet til \(f\).

Endre på programmet slik at det søker etter nullpunktet til

\[ f(x) = -x + 16 \]


Underveisoppgave 2

Ta quizen!