A forma de Lagrange nos permite obter o polinômio que interpola a função sem passar pelo processo de Resolução de sistemas lineares. O método consiste em obter um conjunto de polinômios chamados polinômios de Lagrange, definidos por:

Esses polinômios têm a propriedade de valerem para e para todos os outros . Obtidos os polinômios de Lagrange, o polinômio que interpola é definido por:

Segue abaixo uma implementação da forma de Lagrange que retorna o valor de um qualquer dentro do intervalo da função dados os pontos e valores correspondentes de .

import numpy as np
 
 
def lagrange(x, xs, fx):
    n = len(xs) - 1 # Grau do polinômio
    sum = 0
 
    for k in range(0, n + 1):
        prod = 1
 
        for j in range(0, n + 1):
            if j != k:
                prod = prod * (x - xs[j]) / (xs[k] - xs[j])
 
        sum = sum + (prod * fx[k])
 
    return sum
 
 
x = 1.5
xs = [-1, 0, 2]
fx = [4, 1, -1]
 
print(lagrange(x, xs, fx))