Edited at
stmtkDay 3

ラグランジュの補間多項式

More than 1 year has passed since last update.


ラグランジュの補間多項式とは


ラグランジュの補間多項式の目的

二つの点$ (x_0, y_0), (x_1, y_1) $が与えられたときそれらの点を通る直線は1つに定まります。同じように点が三つ与えられたときはそれらを通る放物線は1つに定まりますね。これを一般化すると、$

( n + 1 ) $個の点が与えられた時、それらを通るn次関数は一つに定まりますよね。これを求めるのがラグランジュ多項式です。


具体的にどういう風に求めるか

まず与えられた点の数だけ

3つの点$ (x_0, y_0), (x_1, y_1), (x_2, y_2) $が与えらえてるとします。まず、与えられた点の数だけ関数を作ります

1. $ f_0(x) = (x - x_1) (x - x_2) $

2. $ f_1(x) = (x - x_2) (x - x_0) $

3. $ f_2(x) = (x - x_0) (x - x_1) $

これらの方程式には次のような特徴があります

1. $ f_0(x_1) = f_1(x_2) = 0 $

2. $ f_1(x_2) = f_1(x_0) = 0 $

3. $ f_2(x_0) = f_2(x_1) = 0 $

なので、次の式が成り立ちます


\begin{eqnarray}

\frac{y_0 f_0(x_i)}{f_0(x_0)} = \left\{
\begin{array}{l}
y_0, i = 0\\
0, i \in \{1, 2\}
\end{array}\right. \\

\frac{ y_1 f_1(x_i)}{f_1(x_1)} = \left\{
\begin{array}{l}
y_1, i = 1\\
0, i \in \{0, 2\}
\end{array}\right. \\

\frac{ y_2 f_2(x_i)}{f_2(x_2)} = \left\{
\begin{array}{l}
y_2, i = 2\\
0, i \in \{0, 1\}
\end{array}\right.
\end{eqnarray}

なので$ g(x) = \sum_{k = 0}^{2} y_k \frac{f_k(x)}{f_k(x_k)} $とすると、

  g(x_0) = y_0 \\

g(x_1) = y_1 \\
g(x_2) = y_2 \\

きちんと$ g(x) $は$(x_0, y_0), (x_1, y_1), (x_2, y_2) $を通っているのがわかります。


一般化

$ n + 1 $個の点$ (x_0, y_0), (x_1, y_1) ..... (x_n, y_n) $まず、$ f_i(x) $の一般化ですね。

f_i(x) = \frac{\prod_{k = 0}^n(x - x_k) }{ (x - x_i) }

この関数は先ほど確かめた通り次の特徴を持ちます。

k \neq i \Rightarrow f_i(x_k) = 0

なので、求めたい関数は

\sum_{ k = 0 }^n \frac{ y_i f_k(x) }{ f_k(x_k) }

になります。