Interpoler une courbe
Le code ci-dessous montre comme créer une fonction continue à partir d'un tableau de valeur
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1, 1, 5) # # tableau de 5 points régulièrement espacés entre -1 et 1.
y = (x-1.)*(x-0.5)*(x+0.5) # x et y sont des tableaux numpy
f = interp1d(x,y, kind='cubic') # création d'une fonction continue à partir des tableaux x et y
xnew = np.linspace(-1, 1, 40) # tableau de 40 points régulièrement espacés entre -1 et 1.
ynew = (xnew-1.)*(xnew-0.5)*(xnew+0.5)
plt.plot(x,y,'bD', label='data = les 5 points') # trace les 5 points
plt.plot(xnew ,f(xnew),'rs', label='interpolé') # trace la fonction interpolée à partir de 40 points
plt.plot(xnew, ynew,'k:', label='exact') # trace la fonction exacte à partir des 40 points
pl.legend()
pl.show()