det är derivative(math.sin,x0,h) som returnar 0 när jag skickar solve(12, 1395, 5)
dock om jag använder funktionen derivative(math.sin,1395,0.00001) så får jag tillbaka 0.9911868435075187
Anledningen till att round inte kraschar är för att round(t, h) har ett värde som första gången den testar är 0.00000 och round(f, h) har ett värde som första gången den testar är 1395.00000
-EDIT-
Nu har jag hittat det felet
z=float(h/h/(10**h))
retunerar 0.0
p=float(h)
z=(p/p/(10**p))
retunerar 0.00001
dock så får jag ett annat fel
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
solve(12,1395,5)
File "G:\Dropbox\Pyton 2.7\Testprogram\Loop.py", line 86, in solve
f = (t-((t**2-x0)/(derivative(math.sin,x0,z))))
OverflowError: (34, 'Result too large')
där line 86 är f = (t-((t**2-x0)/(derivative(math.sin,x0,z))))