【发布时间】:2017-09-02 00:28:26
【问题描述】:
假设我有一条曲线,然后我使用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();
【问题讨论】:
-
查看三次样条曲线(和其他平滑曲线插值方法),除非您希望曲线具有特定的函数形式。
标签: python numpy math numerical-methods