代码如下:
import numpy as np
import sympy as sp
def jacobian(f,x):
a,b=np.shape(x)#变量个数
x1,x2=sp.symbols('x1 x2')#定义变量
x3=[x1,x2]
a1=np.zeros((b,b))#矩阵存放hesse矩阵的值
for i in range(b):
for j in range(b):
a1[i,j]=sp.diff(f,x3[i],x3[j]).subs({x1:x[0][0],x2:x[0][1]})#函数求导,变量赋值
return a1
x1,x2=sp.symbols('x1 x2')
x=[[2,1]]
f=2*x1**2+x2**2-4*x1+2
print(jacobian(f,x))
运行结果如下: