ラグランジュの補間はデータ点数が増えてくると関数が振動し,補間の精度が悪くなるの
は先に述べたとおりである.そこで,補間する領域をデータ間隔
に区切
り,その近傍の値を使い低次の多項式で近似することを考える.区分的に近似関数を使う
わけですが,上手に近似をしないと境界でその導関数が不連続になる.導関数が連続にな
るように,上手に近似する方法がスプライン補間(spline interpolation)である.
ここでは,通常よくつかわれる3次のスプライン補間について説明する.補間する関数が3次関数
を使うため,そう呼ばれている.これ以降の説明は,文献[1]を参考にした.
データは先と同じように
と
する.そして,区間
で補間に使う関数をとする.この様子を図
5に示す.
3次のスプライン補間を考えるので,区分多項式は
となる.この
を求めることが,スプライン補間の関数をきめる問題
となる.
個のデータ数があるため,区分多項式は個ある.したがって,区分多項式の係数
をである未知数は個あることになる.これを求めるためには,個の方程式が必要
となる.3次のスプライン補間に以下の条件を課して,その係数を求めることにする.
- [条件1]
- 全てのデータ点を通る.各々のに対して両端での値が決まる
ため,2N個の方程式ができる.
- [条件2]
- 各々の区分補間式は,境界点の1次導関数は連続とする.これにより,
N-1個の方程式ができる
- [条件3]
- 各々の区分補間式は,境界点の2次導関数も連続とする.これにより,
N-1個の方程式ができる.
以上の3つの条件を課すと個の方程式で未知数である係数の関係を表現できる.実際,未
知数は個なので,2個方程式が不足している.この不足を補うために,いろいろな条
件が考えられるが,通常は両端とでの2次導関数の値を0とする.すなわち,
である.これを自然スプラ
イン(natural spline)という.自然スプライン以外には,両端の1次導関数の値を指定す
るものもある.
これで全ての条件が決まった.あとは,この条件に満たす連立方程式を求めるだけである.
このように,必要な条件が決まった場合,個の未知数
を既知の
を使って連立方程式を作るのが普通である.これも可能であるが,少し手間
を省くために,
- これら個の未知数をと,さらににおける2次導関数の値を
で表現する.
- が満たす連立方程式を作り,を解く.
- 既知のとと連立方程式により求められたを用いて,区分多項式の
係数
を計算する.
というアプローチで問題を解く.ここで,本当に未知数
を
で表現することができるのか--という疑問が湧く者もいるだろう.これは,先の連
立方程式を作る条件を上手に使うことにより可能なのである.また,このような方法は,
問題解決の遠回りをしているように思えるが,以降の説明を見ると実際にはかなり簡潔に
なることがわかるので我慢して読んで欲しい.
これは,
から求めることができ
る.式(
5)から,
|
(7) |
となる.
の時,これは
となるので,
が直ちに導かれる.これで,
を
で表現できたことになる.
を表現するた
めには,
と
を使っても良かったが,ここではたまたま必要なかったのである.
これは,2次導関数が区分多項式の境界で等しいという条件から
導くことができる.先ほどは区分多項式の左端
を考えた.次に右端
を考
えることにする.右端の導関数は,
|
(9) |
となる.これから,
は
と導くことができる.これで,
を
と
と
で表現できたことになる.
これは,区分多項式は全てのデータ点上を通過するという条件
から導くことができる.まずは,多項式
の左端
を考える.ここでは,
なので,式(
5)に代入すると
が直ちに導ける.これで,
を
で表現できたことになる.
の表現には,
と
はたまたま不要であった.
これもまた,区分多項式は全てのデータ点上を通過するという条件
から導くことができる.今度は,多項式
の右端
である.ここでは,
なので,式(
5)に代入すると
|
(12) |
が導ける.式
(
8),(
10),(
11)を用いる
と,
となる.これで,
を
と
と
で表現できたことになる.
以上で,と,,がと,で表せたことになる.
とはデータ点なので,既知である.したがって,が分かれば,補間に必要な係
数が全て分かるのである.また,連立方程式の[条件1]と[条件3]も満
たしている.従って,[条件2]を満たすようにを決めれば良いことになる.
すると全ての区分多項式の係数が分かるのである.
先に述べたように
は,1次導関数が境界点で等しいという条件から決める.次の式を
使うのである.
|
(14) |
これと式(
5)から,
|
(15) |
となる.あとは,この式の
と
,
を
と
,
で
表して,
の連立方程式にするだけである.最終的に式は,
となる.この方程式は,
で成り立つ.したがって,式の数は,
個である.
の数は
個であるが,
としたので,未知の
は
個である.式(
16)を解くことにより,全ての
が
決定できる.これが決まれば,
と
,そして
が計算できる.
を代入した連立1次方程式は,
となる.ただし,
と
は以下のとおり.
いうまでもないと思うが,スプライン補間を行う区分多項式(
5)は,
以下の手順で求める.
- 連立方程式(17)を計算して,各点での二次の導関数の値
を求める.
- 区分多項式の係数と,,を式(10),
(8),(13),(11)を
計算する.
区分多項式が分かれば,補間の値計算できる.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成18年11月27日