我希望在非常特定的点计算非解析函数的梯度,这意味着我需要插值(scipy.interpolate.interp2d)渐变的近似值。我从这个最小的工作示例开始,此时迷路了。
import numpy as np
import matplotlib.pyplot as plt
x, y = np.meshgrid(np.linspace(-200,200), np.linspace(-200,200))
z = -x**2 - y**2
v, u = np.gradient(z, 2, 2)
fig, ax = plt.subplots()
ax.quiver(x, y, u, v)
plt.show()
此外,我知道点(x[i], y[j])
的渐变是u[i,j]*\hat x + v[i,j]*\hat y
。但是,如果在某些时候没有定义梯度,事情就会变得相当困难。