XLPack 6.1
C/C++ API リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ _bintk()

void _bintk ( double  x[],
double  y[],
double  t[],
int  n,
int  k,
double  bcoef[],
double  q[],
double  work[],
int *  info 
)

k次B-スプライン補間

目的
本ルーチンは与えられたデータを補間するk次スプラインのB-スプライン形式(t[], bcoef[], n, k)の補間係数を求める. スプライン補間値あるいはその微分係数はbvaluを呼び出すことにより求めることができる.
引数
[in]x[]配列 x[lx] (lx >= n)
横座標値(Xベクトル). (重複なし, 昇順であること)
[in]y[]配列 y[ly] (ly >= n)
縦座標値(Yベクトル).
[in]t[]配列 t[lt] (lt >= n + k)
ノットベクトル.
t[0], ..., t[k-1] <= x[0] かつ t[n], ..., t[n+k-1] >= x[n-1] であるから, 区間[x[0], x[n-1]] の中には n-kノットしかない(必ずしもx[i]の値と同じである必要はない).
[in]nデータ点数. (n >= k)
[in]kスプラインの次数. (k >= 1)
[out]bcoef[]配列 bcoef[lbcoef] (lbcoef >= n)
B-スプライン係数.
[out]q[]配列 q[lq] (lq >= (2*k - 1)*n)
作業領域で, 連立一次方程式の三角分解済係数行列を返す. 横座標が同一の追加データ(x[i], yy[i]) (i = 1〜n)を補間するB-スプライン係数を、yy[]をbcoef[]に入れて次の呼び出しを行うことにより求めることができる.
  banslv(n, k-1, k-1, 2*k-1, (double (*)[2*k-1])q, bcoef, &info);
[out]work[]配列 work[lwork] (lwork >= 2*k)
作業領域.
[out]info= 0: 正常終了
= -1: 入力パラメータ x[] の誤り (値が重複, あるいは, 昇順でない)
= -4: 入力パラメータ n の誤り (n < k)
= -5: 入力パラメータ k の誤り (k < 1)
= 1: 対応する基底関数の対象外の横座標があり連立一次方程式が特異
= 2: 理論的条件は満たしているが連立一次方程式に特異性が検出された
出典
SLATEC