擅长:python、mysql、java
<p>这不是一个简单的问题,但是已经设计了很多方法来处理它。一个简单的解决方案是使用<a href="http://en.wikipedia.org/wiki/Finite_difference" rel="noreferrer">finite difference</a>方法。命令“numpy.diff”使用有限差分,可以指定导数的顺序。维基百科还有一个页面,列出了不同精确性的不同衍生物所需的<a href="http://en.wikipedia.org/wiki/Finite_difference_coefficients" rel="noreferrer">finite differencing coefficients</a>。如果numpy函数做不到您想要的。</p>
<p>根据应用程序的不同,您还可以使用<a href="http://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.diff.html#scipy.fftpack.diff" rel="noreferrer">scipy.fftpack.diff</a>,它使用<a href="http://en.wikipedia.org/wiki/Spectral_method" rel="noreferrer">completely different technique</a>来执行相同的操作。尽管你的函数需要一个定义良好的傅立叶变换。</p>
<p>在上述两种思想中,有很多很多变体(例如<a href="http://en.wikipedia.org/wiki/Summation_by_parts" rel="noreferrer">summation by parts</a>有限差分算子或旨在保留方程组中已知演化常数的算子)。你应该做什么在很大程度上取决于你想解决的问题是什么。</p>
<p>好在这方面做了很多工作。用于<a href="http://en.wikipedia.org/wiki/Numerical_differentiation" rel="noreferrer">Numerical Differentiation</a>的Wikipedia页面有一些资源(尽管它主要关注有限差分技术)。</p>