スプライン補間をわかりやすく簡単に解説!欠点など
スプライン補間をわかりやすく簡単にご紹介します。極めて簡単にいうと、すべての点をなめらかにつなぐ方法です。
スプライン補間とは
スプライン補間は、実験などで得られたデータ(離散的な点)をひとつの曲線で滑らかにつなぎたい時に使われます。曲線をえがいて式に現すことができれば、データのない部分であっても数値を予測することができます。
補間方法の一つであるスプライン補間は、1つのデータとデータ(点と点)の間を曲線の式で表します。このとき、与えらた(もしくは得られた)全データを使うのではなく、データをいくつかに分けてそれぞれ曲線の式を求めるという点に特徴があります。
よく使われるのは3次スプラインであり、これは、点と点の間の曲線を3次関数で描きます。より一般的にはN次スプラインと呼ばれます。
式
3次スプラインの場合、点と点の間を結ぶ曲線Sを以下の式で描きます。よく見かける三次式方程式で、a、b、c、dという未知数があります。
\[ S=ax^3+bx^2+cx+d \]上式はSやxという文字を使っていますが、点と点の間の数だけ、この曲線が存在することになります(S1、S2、S3……となります)。
通常はS(x)などの書き方で関数として表します。
イメージ
下はスプライン補間のイメージ図です。P1とP2、P2とP3、P3とP4の間(区間)をそれぞれ別の曲線で補間します。
ラグランジュ補間
スプラインと一緒によく登場するのがラグランジュ補間です。スプライン補間同様、データを曲線で滑かにつなぐときに使われますが、データが多くなると曲線が振動していまうという重大な欠点があります。
欠点
スプライン補間はラグランジュ補間よりも優れた方法ですが、以下のような欠点もあります。データが不規則だったり、ノイズが多かったりするとうまくいきません。
- 終端での発散
スプライン補間はデータの終端で曲線が発散する可能性があります - 計算が複雑さ
スプライン補間は各区間で多項式の係数をいくつかの制約条件下で求める必要があり、計算が複雑です - 不自然な凹凸
高次スプライン補間はデータ間隔が広い場合、不自然な凹凸(おうとつ)が生じるかもしれません
条件
スプライン補間では、様々な条件を課すことで未知数(aやbなど)を求めます。
データを通る
得られた、もしくは、与えられたデータがあるはずなので、その点を通る曲線でなければなりません。例えば、x=1のときS1=2であったのなら、その隣の曲線S2もx=1でS2=2でないと、すべてのデータを通らなくなってしまいます。
連続である
スプライン補間は、いくつかの曲線をひとつの滑らかな曲線にみせるわけなので、曲線と曲線のつなぎ目が連続である必要があります(滑らかである必要がある)。連続でない場合は、点と点を直線で結んだようなガタガタの線になってしまいます。
この条件は1次導関数(1回微分)と2次導関数(2回微分)が隣り合う曲線で同じとすることでクリアできます。
端はゼロ
上記の条件だけでは式が足りません。なので、通常は、曲線の端で2次導関数がゼロであるとします。
補間と近似
エクセルなどでは簡単に近似式を描くことができますが、これは補間とは異なります。補間は全ての点を通りますが、近似式(最小二乗法などを用いて求めた式)は、必ずしも、全てのデータを通るとは限りません。
実験データなどで、データがない区間の数値を予想する場合にはスプラインなどによる補間が適しています。近似は、どういった関数(1次式か2次式か、など)に近いかを判断する方法です。