我不完全清楚你在问什么。让我看看我认为你在问什么,你可以告诉我我是否走在正确的轨道上。
假设你有一个函数,也就是说它需要个变量作为输入,并输出一个标量。另外,假设您想在某个点。f:Rm→Rmx1,…,xmfx¯=(x¯1,…,x¯m)
如果你想评估,那么你可以近似它∂f∂xi(x¯)
f(x¯+hei)−f(x¯)h,
其中是一个全为零的单位向量,除了第个位置的 1。eii
更一般地说,如果你想评估,你可以近似它∇f(x¯)⋅v
f(x¯+hv)−f(x¯)h.
在这两种情况下,您都需要使用较小的;多小取决于应用程序。可以在评论论文Jacobian-free Newton-Krylov 方法:方法和应用的调查中的良好指南。hh
有限差分近似确实会在一定程度上降低导数的准确性,因此如果您的计算需要精确的导数信息,您最好尝试其他方法(取决于应用,这些可能是前向或伴随灵敏度方法;自动微分;复数有限差分; 使用铅笔、纸和您最喜欢的计算机代数系统的某种组合)来获得精确(或接近精确)的导数信息。
应用此过程两次以获得 Hessian 只会进一步降低近似的质量,并且需要操作,并且通常被认为太昂贵且太不准确,不值得做。确实需要 Hessian 信息的应用程序有时可以通过从初始猜测获得的近似 Hessian 信息加上使用梯度信息对该近似 Hessian 进行 rank-1 更新来解决。一个例子是 BFGS 方法。m2