Реализовать гауссову гипергеометрическую функцию 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/789 ... with-the-a
Ответить

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

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

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

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

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