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がiが微分された回数であるi(lvl)(0)を見つけようとしています。私のコードが異なるdに対してまったく異なる出力を与える理由はわかりません。例えば任意のヘルプ:)関数のn次微分値の求め方は?
をappretiateます、
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