|
|
◆ qng()
| void qng |
( |
double(*)(double) |
f, |
|
|
double |
a, |
|
|
double |
b, |
|
|
double |
epsabs, |
|
|
double |
epsrel, |
|
|
double * |
result, |
|
|
double * |
abserr, |
|
|
int * |
neval, |
|
|
int * |
info |
|
) |
| |
有限区間の積分 (分点数自動選択) (21/43/87点ガウス・クロンロッド則)
- 目的
- 本ルーチンは要求精度を満たす I = [a, b]におけるfの積分値 を求める. ここで, fはユーザー定義サブルーチンにより与えられる関数である.
21, 43または87点ガウス・クロンロッド則より, 要求精度を満足するように分点数を自動的に選択する.
- 引数
-
| [in] | f | 被積分関数f(x)を求めるユーザー定義サブルーチンで, 次のように定義すること. double f(double x)
{
return f(x)の計算値
}
|
| [in] | a | 積分区間の下限. |
| [in] | b | 積分区間の上限. |
| [in] | epsabs | 要求絶対誤差. abserr <= max(epsabs, epsrel*|result|) であれば要求精度を満足したものとする. |
| [in] | epsrel | 要求相対誤差.
abserr <= max(epsabs, epsrel*|result|) であれば要求精度を満足したものとする.
epsabs <= 0 かつ epsrel < 50*eps であれば, epsrel = 50*eps とみなす(epsはマシンイプシロン). |
| [out] | result | 求められた I = [a, b]におけるfの積分値. |
| [out] | abserr | 絶対誤差の推定値. 真の誤差に等しいかそれより大きい. |
| [out] | neval | 被積分関数評価回数. |
| [out] | info | = 0: 正常終了
= 1: 最大ステップ数の計算が行われた. qngでこの問題を計算するのは難しい. |
- 出典
- SLATEC (QUADPACK)
|