Supposons que j'ai une courbe, puis j'évalue son gradient par différences finies en utilisant np.gradient
. Étant donné un point initial x [0] et le vecteur gradient, comment puis-je reconstruire la courbe d'origine? Mathématiquement, je vois que c'est possible compte tenu de ce système d'équations, mais je ne suis pas certain de savoir comment le faire par programmation.Reconstruire la courbe à partir du gradient
Voici un exemple simple de mon problème, où j'ai sin (x) et je calcule la différence numérique, qui correspond à 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();
Examinez les splines cubiques (et d'autres méthodes d'interpolation de courbes lisses) à moins que vous souhaitiez que votre courbe ait une forme fonctionnelle spécifique. – barrycarter