Реализация неполной гаммы в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Реализация неполной гаммы в Java

Сообщение Anonymous »


У меня возникли проблемы с реализацией принципа MATLAB на Java.

Я попробовал сделать это по частям. Я использовал эту функцию, использующую приближение Ланцоша, которое я нашел в Интернете для решения Γ(a):

Код: Выделить всё

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)); }
Then I used Simpson's Rule on solving the integral part then I combined them to do the gammainc but the output I get is not reasonable.

The integral part can also be seen as a lower incomplete gamma function.

I'm asking for advice for a better solution.


Источник: https://stackoverflow.com/questions/870 ... te-in-java

Вернуться в «JAVA»