import numpy as np
def function_2(x):
return x[0]**2+x[1]**2
def numerical_gradient(f,x):
h=1e-4
grad=np.zeros_like(x)
for index in range(x.size):
tmp_val=x[index]
x[index]=tmp_val+h
fxh1=f(x)
x[index]=tmp_val-h
fxh2=f(x)
grad[index]=(fxh1-fxh2)/(h*2)
x[index]=tmp_val
return grad
numerical_gradient(function_2,np.array([3.0,4.0]))
求偏导梯度