|
◆ qk31_r()
void qk31_r |
( |
double |
a, |
|
|
double |
b, |
|
|
double * |
result, |
|
|
double * |
abserr, |
|
|
double * |
resabs, |
|
|
double * |
resasc, |
|
|
double * |
xx, |
|
|
double |
yy, |
|
|
int * |
irev |
|
) |
| |
有限区間の積分 (固定分点) (31点ガウス・クロンロッド則) (リバースコミュニケーション版)
- 目的
- 本ルーチンは
I = [a, b]におけるfの積分値(誤差推定付き) および
J = [a, b]におけるabs(f)の積分値
を求める. ここで, fは与えられた関数である. ユーザーは変数irevに従って必要なfの関数値を計算しなければならない.
積分は31点ガウス・クロンロッド則を用いて計算される.
- 引数
-
[in] | a | 積分区間の下限. |
[in] | b | 積分区間の上限. |
[out] | result | 求められた I = [a, b]におけるfの積分値. |
[out] | abserr | 絶対誤差の推定値. 真の誤差に等しいかそれより大きい. |
[out] | resabs | 求められた J = [a, b]におけるabs(f)の積分値. |
[out] | resasc | 求められた [a, b]におけるabs(f - I/(b - a))の積分値. |
[out] | xx | irev = 1〜5: 再呼び出し時に関数値を求めるべき点を返す. |
[in] | yy | irev = 1〜5: 再呼び出し時に関数値f(xx)を与えること. |
[in,out] | irev | リバースコミュニケーションの制御変数.
[in] 最初の呼び出し時に 0 に設定しておくこと. 2回目以降の呼び出し時には値を変更してはならない.
[out] 0 以外の場合, 下記処理を行いirevを変更せずに再び本ルーチンを呼び出すこと.
= 0: 処理終了.
= 1〜5: xxにおける関数値を求めyyに設定する. yy以外の変数を変更してはならない. |
- 出典
- SLATEC (QUADPACK)
|