Hopp til innholdet

Halveringsmetoden – forklart steg for steg

Matematikk 1T · modul 8 · leksjon 8.3 · eksamen: del 2

Halveringsmetoden er en algoritme som finner et nullpunkt med så mange desimaler du vil. Her lærer du ideen, de tre stegene og hvordan programmet virker.

Dette er leksjon 8.3 Halveringsmetoden i Sophus. I kurset har den video og øving. Den er med når du har tilgang til faget, men leksjon 1.1 er gratis. Se leksjonen

Ideen

f(x) = x³ + x − 3 har f(1) = −1 og f(2) = 7. Fortegnet skifter, så grafen krysser x-aksen et sted mellom 1 og 2. Del intervallet på midten. Nullpunktet ligger i den halvdelen der fortegnet skifter. Den beholder du, og gjentar.

1³ + 1 − 3 = −1
2³ + 2 − 3 = 7

Metoden

  1. Sjekk at f har ulikt fortegn i a og b.
  2. Regn ut midtpunktet m = a + b delt på 2.
  3. Skifter fortegnet mellom a og m, flytter du b til m. Ellers flytter du a til m. Gjenta til intervallet er lite nok.

Første steg for hånd

Midtpunktet er 1,5, og f(1,5) er positiv. Fortegnet skifter mellom 1 og 1,5, så b flyttes til 1,5.

1,5³ + 1,5 − 3 = 1,875

Eksempler

Eksempel 1: nullpunktet til x³ + x − 3

Programmet finner en løsning av x³ + x − 3 = 0 mellom 1 og 2. Hva skriver det ut?

def f(x):
    return x**3 + x - 3

a = 1
b = 2
while b - a > 0.001:
    m = (a + b) / 2
    if f(a) * f(m) <= 0:
        b = m
    else:
        a = m
print(round((a + b) / 2, 3))

1,213³ + 1,213 − 3 ≈ 0,00

Svar: Programmet skriver ut 1.213.

Sett svaret inn for å sjekke: Det gir nesten 0. Vil du ha flere desimaler, gjør du grensen i while-linjen mindre.

Eksempel 2: kvadratroten av 2

Programmet er det samme, men med f(x) = x² − 2, a = 1 og b = 2. Hva skriver det ut, og hvorfor?

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

a = 1
b = 2
while b - a > 0.001:
    m = (a + b) / 2
    if f(a) * f(m) <= 0:
        b = m
    else:
        a = m
print(round((a + b) / 2, 3))

1² − 2 = −1
2² − 2 = 2
√2 ≈ 1,4142

Svar: Programmet skriver ut 1.415. Nullpunktet til x² − 2 er √2 ≈ 1,4142, og programmet stopper når intervallet er kortere enn 0,001.

Øv selv: 14 oppgaver i algoritmer i Python med fasit og løsning steg for steg.

Vanlige feil

På eksamen

Halveringsmetoden kommer på del 2, ofte som et program du skal forklare eller endre. Skriv de første stegene i en tabell med a, b, m og fortegnet til f(m). Forklar med ord hvorfor løkka stopper.

Leksjonen hører til modulen Programmering og algoritmer og øves til del 2. Les mer om eksamen i 1T, og bruk formelarket for 1T når du øver.

Begreper: algoritme halveringsmetoden while-løkke

Les også

Mer om matte 1T

Ser du en feil? Si fra på kontakt@sophus.no, så retter vi den.