踊り動作解析ライブラリ第一弾: B-spline補間、平滑化


踊り動作解析ライブラリ第一弾としてB-spline補間、平滑化のプログラムを作成しました(ソースはこちら

更新情報


4月26日 

4月18日 テストバージョン公開(後悔?)しました。


解説

以下のような関数を作成しました。

関数群

void BSInt(const double x[], const double y[], int nknot, const double gzai[],int nod, int ior, double c[])

1次元のB-spline補間。引数は、それぞれ

当然のことながら、

は最低限満たさなくてはならない条件です。(それ以外にあるが)

void BSSmooth(const double x[], const double y[], int nknot, const double gzai[], int nod, int ior,double c[])

1次元のB-spline平滑化。引数はB-splineの場合と同じ。但し、

は最低限満たさなくてはならない条件です。

void BSSG(const double x[], const double y[], int nknot, double gzai[], int &nod, int ior, double c[],int maxloop)

1次元のB-spline平滑化。逐次分割法により節点も同時に決定する。引数は、B-spline補間、平滑化と大体同じ。

現バージョンは収束判定を行っていないので、最大分割数まで繰り返し処理をしてしまう…
(今後収束判定部分も入れるつもりです!)

ことに注意!