Funksjonsdrøfting og halveringsmetode
En funksjon \(f\) er gitt ved
- Bestem koordinatene til eventuelle topp- og bunnpunkter på grafen til \(f\).
En elev jobber med funksjonen \(f\) og har skrevet programmet nedenfor:
from math import log # log(x) er kode for ln(x)
a = 0.1
b = 3
maks_avvik = 0.0001
def f(x): # definerer funksjonen
return 4*x**2*log(x)
m = (a + b)/2
while abs(f(m)) >= maks_avvik: # abs() finner absoluttverdi
if f(a)*f(m) < 0:
b = m
else:
a = m
m = (a + b)/2
print(m)
- Hva ønsker eleven å finne ut?
Forklar hva programmet gjør i linje 11–20.
Bestem verdien som blir skrevet ut når eleven kjører programmet.
a) Bunnpunkt \(\left(\dfrac{1}{\sqrt{e}},\; -\dfrac{2}{e}\right)\), ingen toppunkt
b) \(m \approx 1{,}000\)
a
\(f(x) = 4x^2 \ln x\) er definert for \(x > 0\).
For \(x > 0\) er \(4x > 0\), så \(f'(x) = 0\) når \(2\ln x + 1 = 0\), det vil si \(\ln x = -\dfrac{1}{2}\), altså \(x = e^{-1/2} = \dfrac{1}{\sqrt{e}}\).
Fortegnskifte: \(f' < 0\) for \(x < e^{-1/2}\) og \(f' > 0\) for \(x > e^{-1/2}\), så dette er et bunnpunkt.
Bunnpunkt: \(\underline{\underline{\left(\dfrac{1}{\sqrt{e}},\; -\dfrac{2}{e}\right)}}\)
Grafen til \(f\) har ingen toppunkt.
b
Eleven ønsker å finne nullpunktet til \(f\) i intervallet \([0{,}1,\; 3]\), ved hjelp av halveringsmetoden.
\(f(0{,}1) = 4 \cdot 0{,}01 \cdot \ln(0{,}1) \approx -0{,}092 < 0\) og \(f(3) = 36\ln 3 \approx 39{,}6 > 0\), så det finnes ett nullpunkt i intervallet. (Vi ser at \(f(x) = 4x^2 \ln x = 0\) for \(x = 1\).)
Hva programmet gjør i linje 11–20:
- Linje 11 setter \(m\) til midtpunktet i intervallet \([a, b]\).
- Linje 13: loopen fortsetter så lenge \(|f(m)| \ge 0{,}0001\).
- Linje 15–16: dersom \(f(a)\) og \(f(m)\) har motsatt fortegn, er nullpunktet i \([a, m]\) → vi oppdaterer \(b = m\).
- Linje 17–18: ellers er nullpunktet i \([m, b]\) → vi oppdaterer \(a = m\).
- Linje 20: ny midtpunkt beregnes.
Programmet halverer intervallet i hver iterasjon til \(|f(m)|\) er tilstrekkelig liten.
Programmet skriver ut \(\underline{\underline{m \approx 1{,}000}}\).