![]() |
Эллиптические интегралы первоначально появились в задаче вычисления длины дуги эллипса. В настоящее время эллиптическим интегралом называется любая функция f, имеющая вид

где R(x,y) - рациональная функция двух аргументов, P(t) - квадратный корень из полинома третьей или четвертой степени, без повторяющихся корней, а c - константа. В общем случае, эллиптический интеграл не выражается в элементарных функциях. Однако любой эллиптический интеграл может быть приведен к форме, содержащей интегралы рациональных функций и, возможно, три канонических интеграла - эллиптические интегралы первого, второго и третьего рода. В этом модуле представлены алгоритмы для вычисления эллиптических интегралов первого и второго рода.
Неполный эллиптический интеграл первого рода имеет вид

Для его вычисления служит подпрограмма IncompleteEllipticIntegralK.
Важным частным случаем неполного эллиптического интеграла является полный эллиптический интеграл первого рода, который имеет вид

и вычисляется подпрограммой EllipticIntegralK.
Следует отметить, что в точке m=1 этот интеграл имеет сингулярность, в окрестностях которой точность вычисления падает (речь идет о малых окрестностях, сравнимых по величине с машинной точностью). Вместе с тем, в окрестностях ноля числа с плавающей запятой представляются с большей точностью. Поэтому если требуется повышенная точность в окрестностях сингулярности, то можно воспользоваться подпрограммой EllipticIntegralKHighPrecision, которая вычисляет не K(m), а K(1-m), что позволяет переместить сингулярность из точки m=1 в точку m=0.
Неполный эллиптический интеграл второго рода имеет вид

Для его вычисления служит подпрограмма IncompleteEllipticIntegralE.
Важным частным случаем неполного эллиптического интеграла является полный эллиптический интеграл второго рода, который имеет вид

и вычисляется подпрограммой EllipticIntegralE.
This article is intended for personal use only.
Исходный код на C#
Исходный код на C++
Исходный код на C++, использующий библиотеки MPFR/GMP.
Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.
Исходный код на Free Pascal.
Исходный код на Delphi.
Исходный код на VB.NET.
Исходный код на VBA.
Исходный код на Python (CPython и IronPython).
|
ALGLIB® - numerical analysis library, 1999-2012. |