Hessian在Python中使用有限差分方法

Hessian在Python中使用有限差分方法,python,numerical-methods,differentiation,Python,Numerical Methods,Differentiation,比方说,我有一个函数z=x^2+y^2。现在,我想用python实现这个函数的hessianz。到目前为止,我已经使用有限差分法计算了导数,如下所示- def derivative(x, y, f, h):     return [(f(x + h, y) - f(x - h, y )) / (2*h), (f(x , y + h) - f(x , y - h)) / (2*h)] 我不知道如何重用它来计算Hessian 有一个更简单的方法:使用numdifftools包。它具有Hessian

比方说,我有一个函数
z=x^2+y^2
。现在,我想用python实现这个函数的hessian
z
。到目前为止,我已经使用有限差分法计算了导数,如下所示-

def derivative(x, y, f, h):
    return [(f(x + h, y) - f(x - h, y )) / (2*h), (f(x , y + h) - f(x , y - h)) / (2*h)]

我不知道如何重用它来计算Hessian

有一个更简单的方法:使用
numdifftools
包。它具有
Hessian
功能,可以满足您的需要

对于对角线项,你可以使用二阶有限差分
f_xx=(f(x+h)-2*f(x)+f(x-h))/(h^2)
。对于非对角项,可以通过
x
导数和
y
导数推导表达式。