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

Место общения программистов C#
Ответить
Anonymous
 Реализовать гипергеометрическую функцию Гаусса 2F1(a, b, c, z) на 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).
Значения, подобные = 1, b = 0,5, c = 1,5 и z = -25,0, которые должны быть равны 0,27468, обрабатываются не во всех реализациях. CenterSpace отклоняет каждое |z| > 1, а MathNet.Numerics возвращает -бесконечность, хотя я предпочитаю реализация, которая может обрабатывать нецелые значения для z.

Подробнее здесь: https://stackoverflow.com/questions/790 ... with-the-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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