以下の多項式をラグランジェ基底多項式と呼ぶ。
\begin{equation}
L_k(x) := \frac{\Pi_{j \neq k} (x-x_j)}{\Pi_{j \neq k} (x_k-x_j)}
\end{equation}
手計算では大変そうなので、sympyを使ってみた。 Polynomials Manipulation Module Reference – SymPy 1.12 documentation を参考にすると、 3次のラグランジェ基底多項式 \(L_3(x)\) は下記のようになる。
import sympy from sympy.core import Add, Mul, symbols from sympy.abc import x, y n = 3 X = symbols("%s1:%s" % ('x', n+1)) # Y = symbols("%s1:%s" % ('Y', n+1)) numert = Mul(*[x - X[i] for i in range(n)]) i = 2 numer = numert/(x - X[i]) denom = Mul(*[(X[i] - X[j]) for j in range(n) if i != j]) sympy.latex(numer / denom)
\frac{\left(x - x_{1}\right) \left(x - x_{2}\right)}{\left(- x_{1} + x_{3}\right) \left(- x_{2} + x_{3}\right)}
\[ \frac{\left(x – x_{1}\right) \left(x – x_{2}\right)}{\left(- x_{1} + x_{3}\right) \left(- x_{2} + x_{3}\right)} \]