我对 Scipy 的导数函数有疑问。我昨晚用了它,得到了一些奇怪的答案。今天早上我再次尝试了一些简单的功能,得到了一些正确的答案和一些错误的答案。这是我的测试:
In [1]: def poly1(x):
...: return x**2
In [3]: derivative(poly1, 0)
Out[3]: 0.0
In [4]: def poly2(x):
...: return (x-3)**2
In [6]: derivative(poly2, 3)
Out[6]: 0.0
In [8]: def sin1(x):
...: return sin(x)
In [14]: derivative(sin1, pi/2)
Out[14]: 5.5511151231257827e-17
In [15]: def poly3(x):
....: return 3*x**4 + 2*x**3 - 10*x**2 + 15*x - 2
In [19]: derivative(poly3, -2)
Out[19]: -39.0
In [20]: derivative(poly3, 2)
Out[20]: 121.0
In [22]: derivative(poly3, 0)
Out[22]: 17.0
我手动检查了 poly3 的值,-2 = 17, 2 = 95, 0 = 15。所以我使用的函数是错误的,还是函数有问题。谢谢
使用:Python 2.7.3、IPython 0.12.1、Numpy 1.6.1、Scipy 0.9.0、Linux Mint 13