我正在搞乱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 is now -sinx
d = derivate (c)
-- d is now -cosx
e = derivate (d)
-- e is now sinx
f = derivate (e)
-- f is now 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