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))