Program med linspace som leter etter nullpunkter

Hele eksamen, alle hjelpemidler

Program med linspace som leter etter nullpunkter

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

Monica har laget programmet nedenfor. Hun har lagt inn kommentarer som viser hva programmet vil gjøre i linje 1, i linje 3 og 4, i linje 6 og 7 og i linje 9.

from numpy import linspace      # Henter kommandoen linspace fra biblioteket numpy.

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

X = linspace (-2, 2, 400)       # Lager en liste med 400 x-verdier jevnt fordelt
                                # i intervallet [-2, 2].

Y = f(X)                        # Lager en liste med de 400 tilhørende y-verdiene.

for i in range(0,399):
    if Y[i] * Y[i + 1] <= 0:
        print("Jeg har funnet et nullpunkt.")
Hjelpemiddelkrav: For hånd

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

Hjelpemiddelkrav: Oppsett for hånd

Utvid programmet slik at det skriver ut tilnærmede verdier for eventuelle nullpunkter.

Fasit

Meldingen skrives ut to ganger.

x≈−1,41 og x≈1,41

LøsningsforslagKI-generert

Funksjonen f(x)=x2−2 har nullpunkter der x2=2, altså for x=−2≈−1,41 og x=2≈1,41. Begge disse x-verdiene ligger inni intervallet ⟨−2,2⟩ som linspace deler opp.

Listen X består av 400 x-verdier jevnt fordelt mellom −2 og 2, og Y er de tilhørende y-verdiene f(x). For løkka som går gjennom nabopunktene, undersøker testen

Y[i]⋅Y[i+1]≤0

om Y[i] og Y[i+1] har forskjellig fortegn (produktet av to tall med ulikt fortegn er negativt) eller om et av dem er null. Det betyr at grafen til f har krysset x-aksen et sted mellom X[i] og X[i+1] — altså at det finnes et nullpunkt mellom disse to nabopunktene.

Siden f har to nullpunkter i intervallet ⟨−2,2⟩ (ett rundt x≈−1,41 og ett rundt x≈1,41), vil testen slå til to ganger når løkka går gjennom alle 399 nabopar. Programmet vil derfor skrive ut

Jeg har funnet et nullpunkt.
Jeg har funnet et nullpunkt.

Kjøring av det originale programmet bekrefter dette:

from numpy import linspace

def f(x):
    return x ** 2 - 2

X = linspace(-2, 2, 400)
Y = f(X)

count = 0
for i in range(0, 399):
    if Y[i] * Y[i + 1] <= 0:
        print("Jeg har funnet et nullpunkt.")
        count += 1

Utskrift:

Jeg har funnet et nullpunkt.
Jeg har funnet et nullpunkt.

Meldingen skrives altså ut to ganger, fordi f(x)=x2−2 har to nullpunkter i intervallet ⟨−2,2⟩.

For å skrive ut tilnærmede verdier for nullpunktene, kan vi bruke gjennomsnittet av de to x-verdiene X[i] og X[i+1] der fortegnsskiftet skjer, som en tilnærming til nullpunktet:

from numpy import linspace

def f(x):
    return x ** 2 - 2

X = linspace(-2, 2, 400)
Y = f(X)

for i in range(0, 399):
    if Y[i] * Y[i + 1] <= 0:
        nullpunkt = (X[i] + X[i + 1]) / 2
        print(f"Jeg har funnet et nullpunkt: x = {nullpunkt:.4f}")

Kjøring av programmet gir følgende utskrift:

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

Dette stemmer godt med de eksakte nullpunktene x=−2≈−1,4142 og x=2≈1,4142 — avviket skyldes at linspace bare gir et endelig antall punkter, slik at nullpunktet ligger et sted mellom to nabopunkter og ikke nødvendigvis nøyaktig i et av dem.

Tilnærmede nullpunkter: x≈−1,41 og x≈1,41

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