我正在使用 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;
}
在此先感谢,尼基尔