ここで概説した方法を使用して、F 検定の臨界 F 値を決定しています。私の問題は、ベータ関数が積分であることです。私の 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 に選択した値に大きく依存します。この値を減らすと、実行時間は直線的に増加し、精度は対数的に向上します。
これを行うより良い方法はありますか?