在我为计算编写代码的过程中,我遇到了一个问题,即在网格上的不同点对非线性函数进行数值微分。我使用简单的前向有限差分法来区分函数,但是当我知道计算的解析解时,误差很大。
所以为了更好地理解我数字区分的问题因为已知解析解是. 所以我试图计算数值和解析导数之间的误差并针对不同的值绘制误差与步长的关系. 结果作为图片附加(两个轴都是对数的!)。
从图中可以看出,对于 stepsize 的最小值,错误是显着事件,当是小。现在这对我来说很有意义,因为随着函数的减小,直线逼近会变得越来越非线性.
所以我的问题是,除了有限差分法之外,有没有更好的方法在函数域上对非线性函数进行数值微分?我需要数值区分的函数是多变量函数,但该方法可以很容易地从单变量函数扩展到我想的多变量函数。