Gjennomsnitt med algoritme og program
I denne oppgaven skal du bruke algoritmen nedenfor til å finne en tilnærmet verdi for gjennomsnittet til en funksjon \(f\) i et intervall \([a, b]\).
Velg \(N + 1\) tall jevnt fordelt i intervallet \([a, b]\).
La \(a = x_0 < x_1 < \cdots < x_N = b\) være disse tallene.
Avstanden mellom et av tallene og det neste er da \(\dfrac{b - a}{N}\).
Regn ut gjennomsnittet \(g\) av tallene \(f(x_0), f(x_1), \cdots, f(x_N)\).
Da er \(g\) en god tilnærmet verdi for gjennomsnittet til \(f\) i \([a, b]\).
Denne tilnærmingen blir bedre dess større \(N\) er.
Lag et program som du kan bruke til å bestemme gjennomsnittet til funksjonen \(f\) gitt ved
i intervallet \([0, 1]\). Hva blir dette gjennomsnittet?
Gjennomsnittet til \(f(x) = \sqrt{x}\) på \([0, 1]\) er \(\mathbf{\dfrac{2}{3} \approx 0{,}6667}\).
Algoritmen beregner gjennomsnittet av \(N+1\) funksjonsverdier jevnt fordelt i intervallet. Vi velger punktene
og regner ut gjennomsnittet
Her er et program som implementerer algoritmen for \(f(x) = \sqrt{x}\) på \([0, 1]\):
from math import sqrt
def f(x):
return sqrt(x)
a = 0
b = 1
N = 1000
sum_verdier = 0
for i in range(N + 1):
x_i = a + i * (b - a) / N
sum_verdier += f(x_i)
g = sum_verdier / (N + 1)
print(g)
Med \(N = 1000\) gir programmet en verdi svært nær \(0{,}6667\).
Kontroll med integral:
Det eksakte gjennomsnittet til \(f\) på \([a, b]\) er gitt ved
For \(f(x) = \sqrt{x}\) på \([0, 1]\):
Programmet gir altså en god tilnærming til det eksakte svaret \(\mathbf{\underline{\underline{g = \dfrac{2}{3} \approx 0{,}6667}}}\).