# -*- coding: utf-8 -*- """ Created on Mon Dec 15 17:46:45 2014 @author: grivet Listing 4.3SP : interpolation spline à l'aide de fonctions prédéfinies de la bibliothèque Scipy """ import matplotlib.pyplot as plt from scipy import interpolate import numpy as np #fabrication de données def lorentz(x): return 1.0/(1.0+x*x) npiv = input('nombre de pivots: ') xmin,xmax = -5.0,5.0 xpiv = np.linspace(xmin,xmax,npiv) ypiv = lorentz(xpiv) #création de l'interpolant tck = interpolate.splrep(xpiv,ypiv,s=0) #calcul de la fonction spline npt = 200 x = np.linspace(-6.0,6.0,200) y = interpolate.splev(x,tck,der=0) plt.plot(xpiv,ypiv,'ok') plt.plot(x,lorentz(x),'-k',label = "fonction de Lorentz") plt.plot(x,y,'-r', label = "interpolant spline") plt.title("interpolation spline de la fonction de Lorentz") plt.xlabel("$x$") plt.legend()