0
def differentiate(fn,lvl,value):
d=0.0000001
if lvl==0:
return fn(value)
else:
return (differentiate(fn,lvl-1,value+d)-differentiate(fn,lvl-1,value))/d
def i(x):
return 1 + x + x**2 + x**3 + x**4 +x**5+x**6
我试图找到我(LVL)(0),其中拉特是的时候,我是有区别的数量。我不知道为什么我的代码给不同的d完全不同的输出。将appretiate任何帮助:)如何找到一个函数的n个差值的价值?
例如,
for x in range(7):
print(differentiate(i,x,0))
我期望能获得:1,1,2,6,24,120,720。 但是,根据d的值我得到了不同的值。
欢迎光临,请提供一个[最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)和重点[问一个很好的问题(http://stackoverflow.com/帮助/如何问),以增加回答问题的可能性。目前,它不清楚,不可重现。 – Nuageux
你可能运行到[灾难性的取消(https://en.wikipedia.org/wiki/Loss_of_significance)。 –
你可以通过分析而不是数字来解决吗? – fafl