Halveringsmetoden med programmering og feilgrense

Del 2, alle hjelpemidler

Halveringsmetoden med programmering og feilgrense

Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.

Monica har skrevet programkoden nedenfor.

def f(x):              # Definerer funksjonen f(x) = x^2 - 2
    return x ** 2 - 2

a = -2
e = 0.01

while a < 2:

    if f(a) * f(a + e) <= 0:
        print("Jeg har funnet et nullpunkt.")

    a = a + e
Hjelpemiddelkrav: Krever PC

Forklar hva resultatet vil bli når Monica kjører programmet. Begrunn hvorfor resultatet vil bli slik.

Hjelpemiddelkrav: Krever PC

Utvid programmet, og gjør eventuelle endringer slik at det skriver ut tilnærmede verdier for eventuelle nullpunkter med fire desimalers nøyaktighet.

Fasit

Programmet skriver ut «Jeg har funnet et nullpunkt.» to ganger.

Se kode i løsningsforslaget. Nullpunktene er x≈−1,4142 og x≈1,4142.

LøsningsforslagKI-generert

Funksjonen f(x)=x2−2 har to nullpunkter, siden x2−2=0 gir x=±2≈±1,4142.

Programmet lar a løpe fra −2 til 2 i steg på e=0,01. For hver verdi av a sjekker programmet fortegnet til produktet f(a)⋅f(a+e). Hvis f(a) og f(a+e) har motsatt fortegn, er produktet negativt, og det betyr at grafen til f krysser x-aksen et sted mellom a og a+e — altså at intervallet inneholder et nullpunkt.

Siden −2≈−1,4142 og 2≈1,4142, vil nøyaktig ett av intervallene [a,a+e] inneholde −2, og ett annet intervall inneholde 2, når a løper gjennom verdiene −2,−1,99,−1,98,…,1,99. I alle andre intervaller har f(a) og f(a+e) samme fortegn, og produktet blir positivt.

Dette betyr at testen f(a)⋅f(a+e)≤0 blir sann nøyaktig to ganger under kjøringen — én gang nær x=−1,41 og én gang nær x=1,41. Programmet skriver derfor ut

Jeg har funnet et nullpunkt.

to ganger totalt.

For å finne nullpunktene med fire desimalers nøyaktighet, kan vi bruke halveringsmetoden: når vi har funnet et lite intervall [a,a+e] som inneholder et nullpunkt, halverer vi intervallet gjentatte ganger og beholder hver gang den halvdelen der f fortsatt skifter fortegn, helt til intervallet er smalt nok.

def f(x):              # Definerer funksjonen f(x) = x^2 - 2
    return x ** 2 - 2

a = -2
e = 0.01

while a < 2:

    if f(a) * f(a + e) <= 0:
        # Halveringsmetoden: finner nullpunktet mer nøyaktig
        # innenfor intervallet [a, a + e]
        venstre = a
        hoyre = a + e

        while hoyre - venstre > 0.0001:
            midtpunkt = (venstre + hoyre) / 2
            if f(venstre) * f(midtpunkt) <= 0:
                hoyre = midtpunkt
            else:
                venstre = midtpunkt

        nullpunkt = (venstre + hoyre) / 2
        print(f"Jeg har funnet et nullpunkt: x = {nullpunkt:.4f}")

    a = a + e

Den indre while-løkken halverer intervallet [venstre,hoyre] helt til bredden er mindre enn 0,0001, som garanterer fire desimalers nøyaktighet. Midtpunktet av det gjenværende intervallet brukes som tilnærming til nullpunktet.

Kjøres programmet, gir det utskriften

Jeg har funnet et nullpunkt: x = -1.4142
Jeg har funnet et nullpunkt: x = 1.4142

som stemmer godt overens med de eksakte nullpunktene x=±2.

x≈−1,4142 og x≈1,4142

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Anbefalt. Chatboten får beskjed om å bruke det til å veilede deg riktig vei — ikke til å røpe svaret. Du kan slå det av hvis du vil være helt sikker på at ingenting lekker.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i matematikk. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt