假设我有一条曲线,然后通过使用np.gradient
通过有限差分估计其梯度。给定初始点x [0]和梯度向量,我该如何重建原始曲线?在数学上我看到它可能给出了这个方程组,但我不确定如何以编程方式进行。从梯度重构曲线
下面是我的问题的一个简单示例,其中我有sin(x)并计算与cos(x)匹配的数值差异。
test = np.vectorize(np.sin)(x)
numerical_grad = np.gradient(test, 30./100)
analytical_grad = np.vectorize(np.cos)(x)
## Plot data.
ax.plot(test, label='data', marker='o')
ax.plot(numerical_grad, label='gradient')
ax.plot(analytical_grad, label='proof', alpha=0.5)
ax.legend();
查看三次样条曲线(以及其他平滑曲线插值方法),除非您希望曲线具有特定的功能形式。 – barrycarter