ラグランジュの補間は、データ点数が増えてくると関数が振動し問題が発生し
ます。そこで、補間する領域をデータ間隔
に区切り、その近
傍の値を使い低次の多項式で近似することを考えます。区分的に近似関数を使
うわけですが、上手に近似をしないと境界でその導関数が不連続になります。
導関数が連続になるように、上手に近似する方法がスプライン補間(spline
interpolation)です。
ここでは、通常よくつかわれる3次のスプライン補間を考えます。補間する関
数が3次関数を使うためそう呼ばれているのです。これ以降の説明は、文献
[1]を参考にしました。
補間をするデータは、先と同じように
とします。そし
て、区間
で補間をする関数をとします。この様子を
図5に示します。
3次のスプライン補間を考えるので、
となります。この
を決めなくてはなりません。
これらの未知数は、4N個あります。従って、4N個の方程式が必要になります。
そのために、3次のスプライン補間に以下の条件を課します。
- 全てのデータ点を通る。各々のに対して両端での値が決まる
ため、2N個の方程式ができます。
- 各々の区分補間式は、境界点の1次導関数は連続とする。これにより、
N-1個の方程式ができます。
- 各々の区分補間式は、境界点の2次導関数は連続とする。これにより、
N-1個の方程式ができます。
以上の条件を課すと方程式は4N-2個の方程式で表現できます。未知数は4N個な
ので、2個方程式が不足しています。この不足を補うために、いろいろな条件
が考えられますが、通常は両端とでの2次導関数の値を0とします。
すなわち、
です。
これを自然スプライン(natural spline)と言います。自然スプライン以外には、
両端の1次導関数の値を指定するものもあります。
これで全ての条件が決まりました。あとは、この条件に満たす連立方程式を求
めるだけです。まずは、2次導関数が区分関数の境界で等しいという条件から
です。における2次導関数の値をとします。すなわち、
|
(5) |
です。
としま
すので、2次導関数の条件は満足されたことになります。この式から、
|
(6) |
となります。これから、
が、直ちに導けます。ここで、スプライン補間の係数、すなわち計算で求める
べき
を
で表した理由があります。以降の議論を見ると分かるように、
を連立方程式で計算することにより、他の係数を求めることができます。
そのようなわけで、できるだけ
で表現するようにします。
さらに2次導関数の計算から、
|
(8) |
が導けます。この式から、
を計算すると、
となります。これで、2次導関数の条件は終わりです。
つぎに、全てのデータ点上を通過する(最初の条件)という条件を考えます。ま
ずは、区分の左端の点から、
が直ちに導けます。つぎに、区分の右端の点から
|
(11) |
が導けます。式
(
7),(
9),(
10)を用いると、
となります。
これで、と、、がと、で表せました。
とはデータ点なので、値はわかっています。したがって、が
分かれば、補間に必要な係数が全て分かります。
それでは、
をどうやって求めるのでしょうか?。これは、まだ使われてい
ない条件、1次導関数が境界点で等しいことを使います。次の式を使います。
|
(13) |
これと式(
4)から、
|
(14) |
となります。あとは、この式の
と
、
を
と
、
で
表して、
の連立方程式にするだけです。最終的に式は、
となります。この方程式は、
で成り立ちます。従って、
式の数は、N-1個です。
の数はN+1個ですが、
ですので、未知
の
はN-1個となります。式(
15)を解くことに
より、全ての
が決定できます。これが決まれば、
と
、そして
が計算できます。
を代入した連立1次方程式は、
となります。ただし、
と
は以下のとおり。
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成17年1月14日