Гауссова гипергеометрическая функция в C# [закрыта]C#

Место общения программистов C#
Anonymous
Гауссова гипергеометрическая функция в C# [закрыта]

Сообщение Anonymous »

Как реализовать гауссову гипергеометрическую функцию 2F1(a, b, c, z) на C# с возможностью обработки отрицательных и больших значений z?
2F1 является частью интеграл определенного уравнения, приводящий к следующей реализации:

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

internal static double HCWR(double distance, double n)
{
double geometricResult = 2F1(1, 1 / n, 1 + 1 / n, -Math.Pow(distance, -n));
return (Math.Pow(distance, -n) * geometricResult);
}
n может быть любым числом, большим или равным 2, а расстояние может быть любым числом в интервале [0,1].
Значения, подобные for пример a = 1, b = 0,5, c = 1,5 и z = -25,0, которые должны быть 0,27468, обрабатываются не во всех реализациях, которые я смог найти. CenterSpace отклоняет все |z| > 1 и MathNet.Numerics возвращает -infinity, хотя я также предпочел бы реализацию, которая может обрабатывать нецелые значения для z.
Пояснение: Этот вопрос ищет за рекомендации по внедрению математики. Речь идет о реализации общей, хорошо известной математической функции на C#, а не о библиотеках, не об учебных пособиях, не об инструментах, не о книгах и не о других сторонних ресурсах. Речь идет о любом решении для реализации известной математической функции, которая может обрабатывать определенные типы значений.

Подробнее здесь: https://stackoverflow.com/questions/789 ... in-c-sharp

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