Lua中的高阶导数?

我在Lua中尝试高阶导数(我没有在其他语言上测试过),发现您将delta设置得越低,它就越快输出0.0。看看以下代码和输出,为什么会这样?

function derivate (f, delta)
delta = delta or 1e-4
return function(x) return (f(x + delta) - f(x)) / delta end
end

c = derivate ( math.cos )
-- c现在是-sinx
d = derivate (c)
-- d现在是-cosx
e = derivate (d)
-- e现在是sinx
f = derivate (e)
-- f现在是cosx

print(math.cos(1.23 ), c(1.23) , d(1.23) , e(1.23) , f(1.23) )

输出:

0.3342377271245 -0.94250551224695   -0.3341434795523    0.94257934790676    0.0
点赞