【发布时间】:2021-10-08 04:12:46
【问题描述】:
我想使用 GSL 平分例程在区间 [ 0;Pi/2].
int main(void *params){
struct func_params *part= (struct func_params*)params;
int status;
int iter = 0, max_iter = 10;
const gsl_root_fsolver_type *R;
gsl_root_fsolver *s;
double x_lo = 1e-4, x_hi = M_PI/2.;
gsl_function F;
F.function = &my_func;
F.params = ¶ms;
R = gsl_root_fsolver_bisection;
s = gsl_root_fsolver_alloc(R);
gsl_root_fsolver_set(s,&F,x_lo,x_hi);
printf ("using %s method\n",gsl_root_fsolver_name(s));
printf ("%5s [%9s, %9s] %9s %10s %9s\n","iter", "lower", "upper", "root","err", "err(est)");
return(0);
}
此代码返回gsl: bisection.c:55: ERROR: function value is not finite Default GSL error handler invoked. 问题是当我查看bisection.c 文件时,第55 行与之前的错误不对应...知道发生了什么吗?
【问题讨论】:
-
'log(sin(0))' 看起来很奇怪
-
也许我应该更改最低值。我改成1e-4了,还是一样的问题