Je hebt bij wiskunde geleerd dat je een bepaalde integraal kunt beschouwen als de som van een oneindig aantal termen. De Duitse wiskundige Bernhard Riemann (1826-1866) bedacht immers de volgende methode om een benadering te vinden voor de (georiƫnteerde) oppervlakte onder de grafiek van \(f(x)\) in het interval \([a,b]\):
Delta_x(a, b, n)
die de breedte \(\Delta x\) van elk deelinterval berekent wanneer je \([a,b]\) verdeelt in \(n\) gelijke deelintervallen.x_i(x1, x2, type)
die een waarde teruggeeft in het deelinterval \([x_1, x_2]\):
type
gelijk is aan 'LINKS'
, geeft de functie de waarde van x1
terug;type
gelijk is aan 'MIDDEN'
, geeft de functie het midden van \([x_1, x_2]\) terug;type
gelijk is aan 'RECHTS'
, geeft de functie de waarde van x2
terug.f(x)
die de waarde van \(\sin(x)\) teruggeeft.Riemannsom(a, b, n, type)
die de waarde van \(\displaystyle \sum _{i=1}^{n}f(x_{i}) \cdot \Delta x \,\) teruggeeft, waarbij \(\Delta x\) en \(x_i\) berekend worden zoals hierboven beschreven. Uiteraard steun je in deze definitie zo veel mogelijk op de functies die je in 1, 2 en 3 al gedefinieerd hebt.Zoals steeds in dit soort opgaves mag er in de code die je door Dodona laat evalueren geen hoofdprogramma staan. Je code bestaat dus uit vier functiedefinities, en niet meer dan dat. Een eventueel hoofdprogramma dat je gebruikt hebt om je code te testen, moet je bij de evaluatie dus in commentaar zetten, of zelfs gewoon verwijderen.
Invoer:
>>> Delta_x(0, 1, 1000)
Uitvoer:
0.001
Invoer:
>>> x_i(0, 0.001, 'LINKS')
Uitvoer:
0
Invoer:
>>> x_i(0, 0.001, 'MIDDEN')
Uitvoer:
0.0005
Invoer:
>>> x_i(0, 0.001, 'RECHTS')
Uitvoer:
0.001
Invoer:
>>> f(1.5707963267948966)
Uitvoer:
1.0
Invoer:
>>> Riemannsom(0, 1.0471975511965976, 1000, 'MIDDEN')
Uitvoer:
0.5000000228463071
Invoer:
>>> Riemannsom(0, 3.141592653589793, 1000000, 'LINKS')
Uitvoer:
1.9999999999983495