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
我试图找到I(lvl)(0),其中lvl是我被区分的次数。我不知道为什么我的代码为不同的d提供了完全不同的输出。我会收到任何帮助:)
例如
for x in range(7):
print(differentiate(i,x,0))
我希望得到:1,1,2,6,24120720。 但是,根据d的值,我得到了不同的值
这个问题很容易理解。你知道吗
您正在计算值,例如
f(0 + d)
,即当双精度浮点数能够表示大约15个有效数字时。你知道吗
高阶的数值导数是相当具有挑战性的。你知道吗
相关问题 更多 >
编程相关推荐