XLPack 7.0
XLPack 数値計算ライブラリ (C API) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ pfqad_r()

void pfqad_r ( int  ldc,
double  c[],
double  xi[],
int  lxi,
int  k,
int  id,
double  x1,
double  x2,
double  tol,
double *  quad,
int *  info,
double *  xx,
double  yy,
int *  irev 
)

任意関数×B-スプラインの積分値 (PP(区分多項式)形式) (リバースコミュニケーション版)

目的
本ルーチンは任意の関数f(x)とPP(区分多項式)形式(c[][], xi[], lxi, k)のk次B-スプラインのid次微分値の積の区間[x1, x2]における積分を求める. [x1, x2]は通常は[xi[0], xi[lxi]]の部分区間である.

8点ガウス公式を使用した適応求積ルーチンにより, 区間内に含まれる区切り点により構成される部分区間[x1, x2]の積分を求める. fが定義されていれば区間[xi[0], xi[lxi]]外の積分も可能である.
引数
[in]ldc二次元配列c[][]の整合寸法. (ldc >= k)
[in]c[][]配列 c[lc][ldc] (lc >= lxi)
区分多項式の区切り点における右微分係数.
[in]xi[]配列 xi[l_xi] (l_xi >= lxi + 1)
区分多項式の区切り点.
[in]lxi区分多項式の小区間数.
[in]kB-スプラインの次数. (k >= 1)
[in]idスプラインの微分係数の次数. (0 <= id <= k - 1)
id = 0の場合, 関数値となる.
[in]x1積分区間の下限値. (通常 xi[0] <= x1 <= xi[lxi])
[in]x2積分区間の上限値. (通常 xi[0] <= x1 <= xi[lxi])
[in]tol積分の要求精度. (dtol < tol <= 0.1. ただし, dtol = max(1.0e-18, 倍精度単位丸め誤差(= d1mach(4))))
[out]quadf(x)*(k次B-スプラインのid次微分係数)の区間[x1, x2]における積分値.
[out]info= 0: 正常終了
= -1: 入力パラメータ ldc の誤り (ldc < k)
= -4: 入力パラメータ lxi の誤り (lxi < 1)
= -5: 入力パラメータ k の誤り (k < 1)
= -6: 入力パラメータ id の誤り (id < 0 または id >= k))
= -9: 入力パラメータ tol の誤り (tol < dtol または tol > 0.1)
= 1: [x1, x2]における積分の一部が要求精度を満たさなかった
[out]xxirev = 1〜3の場合, 関数値を求めるべき点を返す.
[in]yyirev = 1〜3の場合, 再呼び出し時に関数値f(xx)を与えること.
[in,out]irevリバースコミュニケーションの制御変数.
[in] 最初の呼び出し時に 0 に設定しておくこと. 2回目以降の呼び出し時には値を変更してはならない.
[out] 0 以外の時には下記処理を行ってから再び本ルーチンを呼び出すこと.
= 0: 処理終了. 正常終了かどうかはinfoをチェックすること.
= 1〜3: xxにおける関数値f(xx)をyyに設定すること. yy以外の変数を変更してはならない.
出典
SLATEC