gsl_integration_qagi ルーチンを使用して (-infty, +infty) の積分を行っています。私の予想では、x 軸に沿って移動しても、積分の結果 (曲線の下の面積) は変化しないはずです。しかし、そうではありません。私はどこかで間違っていますか?コードは以下に添付されています。
変数オフセットは、基本的に変換を作成します。オフセット値が 0、10.0、20.0 の場合、領域は同じままですが (予想どおり)、オフセット ~ 40.0 の後、突然ゼロに低下します。
double offset=200.0;
double f (double x, void * params) {
double alpha = *(double *) params;
x += offset;
double f = exp(-x*x);
return f;
}
int main(int argc, const char * argv[])
{
gsl_integration_workspace * w
= gsl_integration_workspace_alloc (1000);
double result, error;
double expected = -4.0;
double alpha = 1.0;
gsl_function F;
F.function = &f;
F.params = α
gsl_integration_qagi (&F, 0, 0.001, 1000,
w, &result, &error);
printf ("result = % .18f\n", result);
return 0;
}
前もって感謝します、ニキル