Como calcular coeficientes de polinômios usando a interpolação de Lagrange
Preciso calcular coeficientes de polinômio usando Lagrange polinomial de interpolação, como dever de casa, decido fazer isso em Javascript.
aqui é a definição de polinômio de Lagrange (L (x))
s polinômios de base do intervalo são definidos da seguinte form
Calcular o valor y para a função específica X (W (x)) é simples, mas preciso calcular os coeficientes do polinômio (matriz de [a0, a1, ..., an]), preciso fazer isso para n <= 10, mas será bom ter n arbitrário, então eu posso colocar essa função na função horner e desenhar esse polinômi
Tenho uma função que calcula o denominador na primeira equação
function denominator(i, points) {
var result = 1;
var x_i = points[i].x;
for (var j=points.length; j--;) {
if (i != j) {
result *= x_i - points[j].x;
}
}
return result;
}
e função que retorna y usando o método horner (também tenho função de desenho usando canvas)
function horner(array, x_scale, y_scale) {
function recur(x, i, array) {
if (i == 0) {
return x*array[0];
} else {
return array[i] + x*recur(x, --i, array);
}
}
return function(x) {
return recur(x*x_scale, array.length-1, array)*y_scale;
};
}
lguém sabe algoritmo para fazer isso, ou idéia de como calcular esses coeficientes