Waarom wordt mijn integreer programma onnauwkeuriger bij een kleinere stapgrootte?
Ik heb een Python programmaatje gemaakt, die door middel van rechthoeken tekenen de oppervlakte onder een grafiek benaderd.
Dit is de code:
import math, time
xl=0#Linkergrens domein
xr=math.pi#Rechtergrens domein
x=xl
def formule():
y=math.sin(x)#formule
return y
dx=0.00000001#stapgrootte
opp=0
tb=time.time()
while(x<xr):
opp+=formule()*dx
x+=dx
print("Oppervlakte is "+str(opp))
print("Runtime was "+str(float(time.time()-tb))+" seconden.")
input()
Nu heb ik de stapgrootte gevarieerd (de resultaten staan toegevoegd als afbeelding), en ik zie dat het antwoord steeds nauwkeurig wordt, wanneer ik de stapgrootte kleiner maak, maar zodra ik de stapgrootte verklein van 0.000001 naar 0.0000001, wordt het antwoord juist onnauwkeuriger, en wanneer ik de stapgrootte nog kleiner maakt, wordt het nog onnauwkeurig. Het exacte antwoord hoort 2 te zijn. Hoe kan dit?