我正在使用此处概述的方法来确定 F 检验的临界 F 值。我的问题是beta 函数是一个整体。我的 x 和 y 分别是 0.5 和 248。我尝试使用以下(Java)代码通过求和进行集成。
static double BetaFunction(double x, double y){
double betaFunction=0.0;
double inc=0.00001, t=0;
double xM1=x-1, yM1=y-1;
do{
t+=inc;
betaFunction+=Math.pow(t, xM1)*Math.pow(1.0-t, yM1)*inc;
} while (t<1.0);
return betaFunction;
}
不幸的是,返回值很大程度上取决于我为 inc 选择的值。随着该值的减小,运行时间线性增加,精度以对数方式提高。
有没有更好的方法来做到这一点?