![]() |
Эллиптические интегралы первоначально появились в задаче вычисления длины дуги эллипса. В настоящее время эллиптическим интегралом называется любая функция 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.
Исходный код на VBA.
|
ALGLIB project, 1999-2010 |