関数 > データ解析 > 補間と予測 > B スプライン補間
  
B スプライン補間
B スプラインは、多項式スプラインを構成する基底関数の集合で、係数によって重み付けされます。
bspline(vx, vy, u, n) - interp のフラグ、節の値を u で指定した場合に vxvy のデータの n 次 B スプラインの係数が列に格納されている配列、および節によって指定される区間の端点が列に格納されている配列が入れ子になった、 interpで使用されるベクトル vs を返します。
bspline 関数では線形スプライン、2 次スプライン、および 3 次スプラインを作成できます。bspline ではデータ点自体の位置とは異なる節で多項式セグメントが結合されるので、 lsplinepspline、または csplineとは異なるスプラインが作成されます。
次の関数では、相対的な誤差の水準を反映した重み付けをデータ値に適用できます。ソフトウェアアルゴリズムは、Durbin-Watson 統計量を用いてスプライン適合を許可するか棄却するかを決定することで、一連の節を計算します。この方法で、統計的 B スプラインはすべてのデータ特性が反映された最小限の節を指定します。
Spline2(vx, vy, n, [vw], [u], [level]) - vxvy のデータを補間するときの、n 次 B スプラインの節の最適なセットを返します。オプションとして、重み vw、必要な節 u、棄却水準を指定できます。この関数から返されるベクトルが Binterp の 2 番目の引数になります。
Binterp(x, b) - Spline2 関数の出力ベクトル b を 1 次、2 次、3 次導関数とともに使用して、x に対応する B スプラインの補間値 y を返します。
DWS(b) - Spline2 関数の出力ベクトル b の Durbin-Watson 統計量を返します。
B スプライン補間では、まず 3 個の隣接する点を取り、この点を通る n 次多項式の曲線を求めます。次に、この n 次多項式を節でつなぎ合わせ、補間曲線を求めます。節数がデータ点の数より少なくても、y に対して妥当な近似が得られるのであれば、B スプライン補間はデータ圧縮の良い方法です。
上記の B スプライン関数は、B. J. Thijsse と M. A. Hollanders の両氏によって開発された Spline2 ソフトウェアに基づいています (このソフトウェアは http://dutsm183.stm.tudelft.nl/software/software.dita に掲載され、許可の下で使用されています)。
引数
vx, vy は長さが同じ実数データ値のベクトルです。
u は、節が昇順になっている実数ベクトルで、vx よりも n − 1 個だけ成分の少ない実数ベクトルです。B スプライン補間で使う節は個々の B スプライン多項式が重ね合わされる値で、節が必ず x の値でなければならないほかのスプラインとは異なります。u の最初の成分の値は vx の最初の成分の値以下でなければなりません。u の最後の成分の値は vx の最後の成分の値以上でなければなりません。
n は、B スプラインで使用される各区分多項式の次数を示す 1、2、3 のいずれかの整数です。n = 1 の場合は線形多項式、n = 2 の場合は 2 次多項式、n = 3 の場合は 3 次多項式です。
vw (オプション) は、vx および vy と同じ長さのスプラインの重みのベクトルです。
level は棄却レベルです (パーセント表記ではなく 0 から 1 の小数表記)。
bSpline2 から返されるベクトルです。
x は、補間曲線を求める独立変数の値です。最良の結果を得るには、xvx の値の範囲内にある必要があります。