导数不同形式差分近似的对比

函数f(x)的导数可以表示为如下形式:

\dot{f(x)}   =\lim\nolimits_{\Delta x\to0} \frac{f(x+\Delta x)-f(x)}{\Delta x} \approx \frac{f(x+\Delta x)-f(x)}{\Delta x}                                   (1)

其中,式(1)为前向差分。另外两种形式的差分公式,可以表示为如下形式:

\dot{f(x)}=\frac{f(x)-f(x-\Delta x)}{\Delta x}                                                                                              (2)

\dot{f(x)}=\frac{f(x+\Delta x)-f(x-\Delta x)}{2\Delta x}                                                                                  (3)

式(2)即为后向差分,式(3)为中心差分。

为了计算函数f(x)导数的差分近似和实际导数之间的误差,对函数f(x)进行泰勒级数展开,得:

通过上述的前向差分,后向差分,以及中心差分的泰勒级数展开公式可知,函数f(x)的导数和前向差分,以及后向差分的误差均为采样间隔\Delta x的一阶项,即正比于\Delta x,为一阶精度;函数f(x)的导数和中心差分的误差为采样间隔\Delta x的二阶项,即正比于(\Delta x)^2 ,为二阶精度;当采样间隔\Delta x越小,二阶精度的中心差分所造成的误差越小,因此,中心差分的导数近似精度更高。如下代码为基于前向差分,后向差分,以及中心差分实现的导数近似的误差对比。

原始函数图像f(x)


不同形式的f'(x)差分近似对比


采样间隔为pi/10的f'(x)差分近似的误差对比


采样间隔为pi/20的f'(x)差分近似的误差对比

从上述的前向差分,后向差分以及中心差分近似的误差对比结果来看,对函数导数采用差分近似,相应的误差最小。实现的python代码如下:

本文所参考的资料为:《MATLAB模拟的电磁学时域有限差分法》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容