JavaでMATLABのgammaincを実装する際に問題があります。Javaでのガンマ不完全の実装
部分的にやってみました。その後、私はその後、私はgammaincを行うには、それらを組み合わせて不可欠な部分を解決することにシンプソンのルールを使用
private static double logGamma(double x) {
double tmp = (x - 0.5) * Math.log(x + 4.5) - (x + 4.5);
double ser = 1.0 + 76.18009173 /(x + 0) - 86.50532033 /(x + 1)
+ 24.01409822 /(x + 2) - 1.231739516 /(x + 3)
+ 0.00120858003/(x + 4) - 0.00000536382/(x + 5);
return tmp + Math.log(ser * Math.sqrt(2 * Math.PI));
}
private static double gamma(double x) { return Math.exp(logGamma(x)); }
しかし:私はΓ(a)のを解決するためのウェブ上で得たランチョス近似を使用してこれらの機能を使用しました私が得る出力は妥当ではない。
一体部分は、lower incomplete gamma functionと見なすこともできます。
私はより良い解決策を提案しています。
アドバイスをいただきありがとうございます。たぶん私の近似の不可欠な部分は私のトラブルを引き起こします。私はそれをチェックするアプリケーションを持っていないので、私はそれの良い近似を取得しているかどうかわからない。ありがとうございました –