Cómo calcular coeficientes de polinomio usando la interpolación de Lagrange

Necesito calcular coeficientes de polinomio usando Lagrange polinomio de interpolación, como mi tarea, decido hacer esto en Javascript.

aquí está la definición del polinomio de Lagrange (L (x))

Los polinomios básicos de Lagrange se definen de la siguiente manera

Calcular el valor y para una función X (W (x) específica) es simple pero necesito calcular coeficientes de polinomio (matriz de [a0, a1, ..., an]) Necesito hacer esto para n <= 10 pero será bueno tener n arbitraria, entonces puedo poner esa función en función de horner y dibujar ese polinomio.

Tengo una función que calcula el denominador en la primera ecuación

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;
}

y la función que devuelve y usando el método horner (también tengo la función de dibujo usando el lienzo)

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;
   };
}

cualquiera sabe algoritmo para hacer esto, o idea cómo calcular esos coeficientes

Respuestas a la pregunta(2)

Su respuesta a la pregunta