如何求函数的第n个微分值?

2024-05-29 06:08:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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的值,我得到了不同的值


Tags: 代码inforreturnifvaluedefrange
1条回答
网友
1楼 · 发布于 2024-05-29 06:08:26

这个问题很容易理解。你知道吗

您正在计算值,例如f(0 + d),即

1 + 0.0000001 + 0.0000001² + 0.0000001³ + 0.0000001^4 + 5 0.0000001^5 = 
1.00000010000001000000100000010000005

当双精度浮点数能够表示大约15个有效数字时。你知道吗

高阶的数值导数是相当具有挑战性的。你知道吗

相关问题 更多 >

    热门问题