Function 如何在scheme程序中获得第n个导数?

Function 如何在scheme程序中获得第n个导数?,function,lambda,scheme,derivative,Function,Lambda,Scheme,Derivative,我似乎无法得出正确的结果,但我不知道如何设置我的第n个值,其他任何方式。。。它正确地进行了0次和1次导数,然后它给了我一个疯狂的负数。。你知道有什么问题吗 代码: -142108547152020.03 我试图重新设置它的范围,因此else语句以der开头,但当n=2时,我得到相同的输出 任何帮助都将不胜感激 您的.00000000000001的h太小;太小了以至于你会遇到舍入误差。这是另一个h的结果 注:x^3的二阶导数为6x 当然,Scheme的一个重要属性是它支持任意精度的精确数字。所以,

我似乎无法得出正确的结果,但我不知道如何设置我的第n个值,其他任何方式。。。它正确地进行了0次和1次导数,然后它给了我一个疯狂的负数。。你知道有什么问题吗

代码:

-142108547152020.03

我试图重新设置它的范围,因此else语句以der开头,但当n=2时,我得到相同的输出

任何帮助都将不胜感激

您的.00000000000001的h太小;太小了以至于你会遇到舍入误差。这是另一个h的结果

注:x^3的二阶导数为6x

当然,Scheme的一个重要属性是它支持任意精度的精确数字。所以,如果你真的希望h是那么小,你可以把你的输入公式化为“精确”。像这样:

> (define der-of-cube-n (der-n cube (/ 10000000000000) 2))
> (der-of-cube-n 5)
150000000000003/5000000000000
> (rationalize (der-of-cube-n 5) 0.01)
3e1
(define der-of-cube-n (der-n cube 0.0001 2))
> (der-of-cube-n 5)
30.000597917023697
> (define der-of-cube-n (der-n cube (/ 10000000000000) 2))
> (der-of-cube-n 5)
150000000000003/5000000000000
> (rationalize (der-of-cube-n 5) 0.01)
3e1