3 補間法

実験やシミュレーションを行うと、離散的にデータが得られるのは普通である。例えば、 半導体の電圧・電圧特性の測定では、 $ (V_0,I_0), (V_1,I_1), 
(V_2,I_2), (V_3,I_3), \cdots, (V_N,I_N)$のようなデータが得られる。通常、この データはグラフ化して解析を進める。このデータの場合、2次元のグラフ上に測定点が並 ぶことは、今まで学習してきたとおりである。

実験等を通して得られる結果は離散的であるが、実際の現象は連続的なことが多い。この 離散的な値を用いて、測定点の間の値、ここでは電流と電圧の関係を求めるのが補間法の 役割である。ここで学習したラグランジュ補間もスプライン補間も、全てのグラフ上の測 定点を通る曲線の方程式を求めている。

2次元のグラフ上の点は、数学では座標$ (x, y)$の点として与えられる。以降の説明では、 電圧・電流などのように特定の問題にとらわれないよう、一般化した座標$ (x, y)$で話 を進める。

3.1 ラグランジュ補間

平面座標上に$ N+1$個の点がある場合、その全ての点を通る曲線は$ N$次関数で表せること は、数学で学習したとおりである2。2個の場合、1次関数、すなわち直線で、その2点を通る関数 を決めることができる。3点の場合は、2次関数である。

この性質を利用すると、$ N+1$個の点がある場合、$ N$次関数で補間できることが分かる。 ラグランジュ補間とは、まさにこのことそのものである。数学の授業で、ある3点 $ (x_0,y_0), (x_1,y_1), (x_2,y_2)$を通る2次関数 $ y=ax^2+by+c$$ a,b,c$を求めた ことがあると思うが、それと同じである。そこでは、それぞれの$ x$$ y$の値を代入して、 連立方程式をつくり$ a,b,c$を求めたはずである。

コンピューターを用いて、$ N+1$個の点を通る$ N$次方程式を$ N+1$個の係数を連立方程式 を解くことにより求めることは可能である。しかし、最終目的の$ N$ 次関数の値を求める と言う意味では不経済である。補間という目的からすると、関数を形成する係数なんか、 全く興味の対象外なのである。そこで、係数が分からなくても、$ N$次関数を示すものと して、ラグランジュ補間が使われる。

2次元座標上に$ N+1$個の点、 $ (x_0,y_0) ,(x_1,y_1), (x_2,y_2), \cdots, (x_N,y_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*}

となる。

この式(10)を見ると、

となっている。

(10)をもうちょっと格好良く書けば、

\begin{equation*}\begin{aligned}L(x)&=\sum_{k=0}^{N}L_k(x)y_k &\qquad\text{た..
..._k(x)=\prod_{j=0}^{N(j\neq k)}\frac{x-x_j}{x_k-x_j} \end{aligned}\end{equation*}

となる.

ラグランジュ補間の考え方は単純で、その計算も簡単である。しかし、補間の点数が増えてくると、ラグランジュの補間には問題が生じる。ラグランジュの補間では、補間の点数 が増えてくると大きな振動が発生して、もはや補間とは言えなくなる。ラグランジュの補 間には常にこの問題が付きまうので、データ点数が多い場合は使えなくなる。

3.2 スプライン補間

3.2.1 区分多項式

ラグランジュの補間は、データ点数が増えてくると関数が振動し問題が発生する。そこで、 補間する領域をデータ間隔 $ [x_i,x_{i+1}]$に区切り、その近傍の値を使い低次の多項式 で近似することを考える。区分的な関数を使うことになるが、上手に近似をしないと境界 でその導関数が不連続になる。導関数が連続になるように、上手に近似する方法がスプラ イン補間(spline interpolation)である。

補間をするデータは、先と同じように $ (x_0,y_0) ,(x_1,y_1), (x_2,y_2), \cdots, (x_N,y_N)$とする。そし て、区間 $ [x_j,x_{j+1}]$で補間をする関数を$ S_j(x)$とする。この様子を 図1に示す。

図 1: スプライン補間の区分
\includegraphics[keepaspectratio,scale=0.7]{figure/Spline.eps}

3.2.2 係数が満たす式

3次のスプライン補間を考えるので、

$\displaystyle S_j(x)=a_j(x-x_j)^3+b_j(x-x_j)^2+c_j(x-x_j)+d_j \qquad(j=0,1,2,3,\cdots,N-1)$ (11)

となる。スプライン補間を行う場合、この $ a_j, b_j, c_j, d_j$を決めることが、主な作 業である。

これらの4$ N$個の未知数を決めるためには、$ 4N$個の方程式が必要である。そのために、 3次のスプライン補間に以下の条件を課すことにする。

以上の条件を課すと$ 4N-2$個の方程式が決まる。未知数は4$ N$個なので、2個方程式が不 足している。この不足を補うために、いろいろな条件が考えられるが、通常は両端$ x_0$$ x_N$での2次導関数の値を0とする。すなわち、 $ S_0^{\prime\prime}(x_0)=S_{N-1}^{\prime\prime}(x_N)=0$である。これを自然スプラ イン(natural spline)と言う。自然スプライン以外には、両端の1次導関数の値を指定す るものもある。

これで全ての条件が決まった。あとは、この条件に満たす連立方程式を求めるだけである。


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成17年3月1日


no counter