Programmering og numerisk integrasjon
Funksjonen er gitt ved
Programmet nedenfor beregner arealet avgrenset av grafen til , -aksen og linjene og ved hjelp av to ulike metoder.
start = 0
slutt = 2
n = 100
dx = (slutt-start)/n
def f(x):
return 3**(2*x)
def areal_til_hoyre():
areal = 0
for i in range(n):
x = start + i*dx
areal = areal + f(x)*dx
return areal
def areal_til_venstre():
areal = 0
for i in range(1, n+1):
x = start + i*dx
areal = areal + f(x)*dx
return areal
print(areal_til_hoyre())
print(areal_til_venstre())
Forklar hvorfor den ene metoden vil gi en litt for høy verdi for arealet, og den andre metoden en litt for lav verdi.
Lag et program som beregner arealet mer nøyaktig uten å dele det opp i flere deler. Ta utgangspunkt i koden nedenfor, og skriv ferdig funksjonen «bedre_metode()». Hvis du programmerer i et annet programmeringsspråk enn Python, må du først skrive en kode som samsvarer med koden nedenfor i språket du bruker.
Husk å legge ved skjermbilde av programmet du lager, og resultatet du får når du kjører programmet.
start = 0
slutt = 2
n = 100
dx = (slutt-start)/n
def f(x):
return 3** (2*x)
def bedre_metode():
areal = 0
#Skriv ny kode her
return areal
print(bedre_metode())
Fasit
areal_til_hoyre bruker venstre endepunkter (for lav), areal_til_venstre bruker høyre endepunkter (for høy)
Trapesmetode: (f(x) + f(x+dx)) / 2 * dx
Løsningsforslag
Funksjonen er strengt stigende på .
For en stigende funksjon gjelder:
areal_til_hoyre()bruker venstre endepunkt () i hvert delintervall. Venstre endepunkt gir den minste funksjonsverdien → summerer for lav verdi.areal_til_venstre()bruker høyre endepunkt (). Høyre endepunkt gir den største funksjonsverdien → summerer for høy verdi.
Det faktiske arealet (nøyaktig) er .
En bedre metode er trapesmetoden: vi bruker gjennomsnittet av funksjonsverdiene i begge endepunktene av hvert delintervall.
start = 0
slutt = 2
n = 100
dx = (slutt-start)/n
def f(x):
return 3**(2*x)
def bedre_metode():
areal = 0
for i in range(n):
x = start + i*dx
areal = areal + (f(x) + f(x + dx)) / 2 * dx
return areal
print(bedre_metode())
Trapesmetoden gir , som er svært nær den eksakte verdien .
Sensorveiledning
Kandidaten må begrunne svaret godt for å få full uttelling. En mangelfull eller upresis forklaring kan gi 1 poeng.
Kandidater som kun endrer verdien for får ingen uttelling. Program med riktig strategi, men feil svar kan gi 1 poeng.