Interpolation de Lagrange en Python

Je veux interpoler un polynôme avec la méthode de Lagrange, mais ce code ne fonctionne pas:

def interpolate(x_values, y_values):
    def _basis(j):
        p = [(x - x_values[m])/(x_values[j] - x_values[m]) for m in xrange(k + 1) if m != j]
        return reduce(operator.mul, p)

    assert len(x_values) != 0 and (len(x_values) == len(y_values)), 'x and y cannot be empty and must have the same length'

    k = len(x_values)
    return sum(_basis(j) for j in xrange(k))

J'ai suivi Wikipédia, mais quand je le lance j'ai un message d'IndexError à la ligne 3!

Grâce

Je vous serais reconnaissant si la downvoters expliquerait le downvote...

OriginalL'auteur rubik | 2010-10-23