# TP 2 ANALYSE NUMERIQUE ## Entrées # t : le point où on veut évaluer le polynôme d'interpolation # x : une liste qui contient les abscisses des points d'interpolation # y : une liste qui contient les ordonnées des points d'interpolation # dy : une liste qui contient la valeur de la dérivée aux points d'interpolation. ## Sorties : # p : l'évaluation du polynôme en t from math import * from sys import * def lagrange(t,x,y): p = 0 n = len(x) L = [1 for i in range(n)] for i in range(n): for j in range(n): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) p += y[i]*L[i] return p def hermite(t,x,y,dy): p = 0 n = len(x) L = [1 for i in range(n)] c = [0 for i in range(n)] for i in range(n): for j in range(len(x)): if j!=i: L[i] *= (t-x[j])/(x[i]-x[j]) c[i] += 1./(x[i]-x[j]) p += (y[i]*(1.-2.*(t-x[i])*c[i])+dy[i]*(t-x[i]))*L[i]**2 return p