1
Java에서 MATLAB gammainc을 구현하는 데 문제가 있습니다.Java에서 감마 불완전 구현
부분적으로 해 보았습니다. 나는 Γ (a)는를 해결하기위한 웹에있어에는 Lanczos 근사 사용이 기능을 사용 :
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)); }
그런 다음 나는 내가 gammainc을 할 그들을 결합 후 불가분의 일부를 해결하는 심슨의 규칙을 사용되지만를 나는 합리적이지 못하다.
필수 부분은 lower incomplete gamma function으로 볼 수도 있습니다.
더 나은 해결책에 대한 조언을 구하고 있습니다.
감사합니다. 어쩌면 필수적인 부분에 대한 내 근사가 문제가 될 수 있습니다. 내가 그것을 확인하는 응용 프로그램이 없기 때문에 내가 그것에 대한 좋은 근사치를 얻고 있는지 나는 모른다. 다시 감사합니다 –