Python中数组的导数?
目前,我有两个numpy数组:x
和y
具有相同的大小。
我想写一个函数(如果存在的话,可以调用numpy / scipy …函数):
def derivative(x, y, n = 1):
# something
return result
其中result
被相同大小的一个numpy的阵列x
和包含的值n
的第衍生物y
关于到x
(我想使用的几个值进行评价的衍生物y
,以避免非平滑结果)。
-
这不是一个简单的问题,但是已经设计出许多方法来处理它。一种简单的解决方案是使用有限差分法。命令“
numpy.diff”使用有限差分,您可以在其中指定导数的顺序。维基百科上还有一个页面,列出了不同精度的不同导数所需的有限差分系数。如果numpy函数没有执行您想要的操作。根据您的应用程序,您还可以使用scipy.fftpack.diff,它使用完全不同的技术来执行相同的操作。虽然您的函数需要良好定义的傅里叶变换。
上面的两个想法都有很多不同的变体(例如,零件有限差分算子的求和或旨在保留方程组中已知的演化常数的算子)。您应该做的事情很大程度上取决于您要解决的问题。
好消息是,该领域已经完成了许多工作。Wikipedia网页上的数值微分有一些资源(尽管它专注于有限微分技术)。