2 ラグランジュ補間

2.1 基本的な考え方

ある物理量を測定して$ N+1$個の値が得られたとする.それらは, $ (x_0,y_0)\,,(x_1,y_1),\,(x_2,y_2),\,\cdots,\,(x_N,y_N)$の2次元座標で表すことが できる.この全ての点を通る関数を求めることが補間法の課題である.N次関数を使えば その目的が達成できると容易に分かる.データが2個であれば1次関数,3個であれば2次関 数というようにである.一般的に$ N+1$個のデータの場合,

$\displaystyle y=a_0+a_1x+a_2x^2+\cdots+a_ix^i+\cdots+a_Nx^N$ (1)

$ N$次関数を用いて補間するわけである.この係数$ a_i$を求めれば,補間の関数が求められたこ とになる.この係数は,N+1元の連立1次方程式を解くことにより求めることができる.

この連立方程式の計算にはかなりの時間が必要であるが,それに代わるもっと良い方法が ある.ここでは,N次関数で表現できれば良いわけで,次のようにする.

\begin{equation*}\begin{aligned}y&=\frac{(x-x_1)(x-x_2)(x-x_3)\cdots(x-x_N)} {(x...
...{(x_N-x_0)(x_N-x_1)(x_N-x_2)\cdots(x_N-x_{N-1})}y_N \end{aligned}\end{equation*}

この式(2)を見ると, となっている.これは,表現こそ違うものの式(1)と同じである.式(1)の$ a_i$を連立方程式を解くことにより補間の関数を求める必要は無く,式 (2)を使えばよいということである.この補 間をラグランジュの補間多項式(Lagrange's interpolating polynomial)という.式 (2)をもうちょっと格好良く書けば,

$\displaystyle L(x)=\sum_{k=0}^{N}L_k(x)y_k$ (3)

ただし,

$\displaystyle L_k(x)$ $\displaystyle =\frac{(x-x_0)(x-x_1)(x-x_2)\cdots(x-x_{k-1})(x-x_{k+1})\cdots(x-x_N)} {(x_k-x_0)(x_k-x_1)(x_k-x_2)\cdots(x_k-x_{k-1})(x_k-x_{k+1})\cdots(x_k-x_N)}$    
  $\displaystyle =\frac{x-x_0}{x_k-x_0}\times\frac{x-x_1}{x_k-x_1}\times\frac{x-x_...
..._k-x_{k-1}}\times\frac{x-x_{k+1}}{x_k-x_{k+1}}\times\cdots\frac{x-x_N}{x_k-x_N}$    
  $\displaystyle =\prod_{j=0}^{N(j\neq k)}\frac{x-x_j}{x_k-x_j}$ (4)

となる.

2.2 問題点

補間の点数が増えてくると,ラグランジュの補間の近似の精度が悪くなることがある.そ の具体例を図4に示す.これから,補間の関数 が振動し,端の方ではかなり精度が悪いことがわかる.ラグランジュの補間では,補間の点数が増えてくると大きな振動が発 生して,もはや補間とは言えなくなることがある.ラグランジュの補間には常にこの危険 性が付きまとうので,データ点数が多い場合は良い方法ではない.ほかの補間を選択しな くてはならない.
図 4: ラグランジュ補間の問題点. $ y=\frac{1}{1+25x^2}$を10点で補間 (点線)したが,両端で振動する.
\includegraphics[keepaspectratio,scale=0.5]{figure/lagrange_problem.eps}

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年11月27日


no counter