blob: 512934ec4f3b48f6e05a9e516336743c326cb3ab [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Elliptic Integral Overview</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../../index.html" title="Math Toolkit">
<link rel="up" href="../ellint.html" title="Elliptic Integrals">
<link rel="prev" href="../ellint.html" title="Elliptic Integrals">
<link rel="next" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../ellint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_carlson.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="math_toolkit.special.ellint.ellint_intro"></a><a class="link" href="ellint_intro.html" title="Elliptic Integral Overview"> Elliptic
Integral Overview</a>
</h4></div></div></div>
<p>
The main reference for the elliptic integrals is:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
M. Abramowitz and I. A. Stegun (Eds.) (1964) Handbook of Mathematical
Functions with Formulas, Graphs, and Mathematical Tables, National Bureau
of Standards Applied Mathematics Series, U.S. Government Printing Office,
Washington, D.C.
</p></blockquote></div>
<p>
Mathworld also contain a lot of useful background information:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<a href="http://mathworld.wolfram.com/EllipticIntegral.html" target="_top">Weisstein,
Eric W. "Elliptic Integral." From MathWorld--A Wolfram Web
Resource.</a>
</p></blockquote></div>
<p>
As does <a href="http://en.wikipedia.org/wiki/Elliptic_integral" target="_top">Wikipedia
Elliptic integral</a>.
</p>
<a name="math_toolkit.special.ellint.ellint_intro.notation"></a><h5>
<a name="id1130431"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.notation">Notation</a>
</h5>
<p>
All variables are real numbers unless otherwise noted.
</p>
<a name="ellint_def"></a><a name="math_toolkit.special.ellint.ellint_intro.definition"></a><h5>
<a name="id1130451"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.definition">Definition</a>
</h5>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint1.png"></span>
</p>
<p>
is called elliptic integral if <span class="emphasis"><em>R(t, s)</em></span> is a rational
function of <span class="emphasis"><em>t</em></span> and <span class="emphasis"><em>s</em></span>, and <span class="emphasis"><em>s<sup>2</sup></em></span>
is a cubic or quartic polynomial in <span class="emphasis"><em>t</em></span>.
</p>
<p>
Elliptic integrals generally can not be expressed in terms of elementary
functions. However, Legendre showed that all elliptic integrals can be
reduced to the following three canonical forms:
</p>
<p>
Elliptic Integral of the First Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint2.png"></span>
</p>
<p>
Elliptic Integral of the Second Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint3.png"></span>
</p>
<p>
Elliptic Integral of the Third Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint4.png"></span>
</p>
<p>
where
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint5.png"></span>
</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top">
<p>
<span class="emphasis"><em>&#966;</em></span> is called the amplitude.
</p>
<p>
<span class="emphasis"><em>k</em></span> is called the modulus.
</p>
<p>
<span class="emphasis"><em>&#945;</em></span> is called the modular angle.
</p>
<p>
<span class="emphasis"><em>n</em></span> is called the characteristic.
</p>
</td></tr>
</table></div>
<div class="caution"><table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../../doc/src/images/caution.png"></td>
<th align="left">Caution</th>
</tr>
<tr><td align="left" valign="top">
<p>
Perhaps more than any other special functions the elliptic integrals
are expressed in a variety of different ways. In particular, the final
parameter <span class="emphasis"><em>k</em></span> (the modulus) may be expressed using
a modular angle &#945;, or a parameter <span class="emphasis"><em>m</em></span>. These are related
by:
</p>
<p>
k = sin&#945;
</p>
<p>
m = k<sup>2</sup> = sin<sup>2</sup>&#945;
</p>
<p>
So that the integral of the third kind (for example) may be expressed
as either:
</p>
<p>
&#928;(n, &#966;, k)
</p>
<p>
&#928;(n, &#966; \ &#945;)
</p>
<p>
&#928;(n, &#966;| m)
</p>
<p>
To further complicate matters, some texts refer to the <span class="emphasis"><em>complement
of the parameter m</em></span>, or 1 - m, where:
</p>
<p>
1 - m = 1 - k<sup>2</sup> = cos<sup>2</sup>&#945;
</p>
<p>
This implementation uses <span class="emphasis"><em>k</em></span> throughout: this matches
the requirements of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
Report on C++ Library Extensions</a>. However, you should be extra
careful when using these functions!
</p>
</td></tr>
</table></div>
<p>
When <span class="emphasis"><em>&#966;</em></span> = <span class="emphasis"><em>&#960;</em></span> / 2, the elliptic integrals
are called <span class="emphasis"><em>complete</em></span>.
</p>
<p>
Complete Elliptic Integral of the First Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint6.png"></span>
</p>
<p>
Complete Elliptic Integral of the Second Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint7.png"></span>
</p>
<p>
Complete Elliptic Integral of the Third Kind (Legendre form)
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint8.png"></span>
</p>
<p>
Carlson [<a class="link" href="ellint_intro.html#ellint_ref_carlson77">Carlson77</a>] [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>] gives an alternative definition
of elliptic integral's canonical forms:
</p>
<p>
Carlson's Elliptic Integral of the First Kind
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint9.png"></span>
</p>
<p>
where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>, <span class="emphasis"><em>z</em></span>
are nonnegative and at most one of them may be zero.
</p>
<p>
Carlson's Elliptic Integral of the Second Kind
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint10.png"></span>
</p>
<p>
where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span> are nonnegative, at
most one of them may be zero, and <span class="emphasis"><em>z</em></span> must be positive.
</p>
<p>
Carlson's Elliptic Integral of the Third Kind
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint11.png"></span>
</p>
<p>
where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>, <span class="emphasis"><em>z</em></span>
are nonnegative, at most one of them may be zero, and <span class="emphasis"><em>p</em></span>
must be nonzero.
</p>
<p>
Carlson's Degenerate Elliptic Integral
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint12.png"></span>
</p>
<p>
where <span class="emphasis"><em>x</em></span> is nonnegative and <span class="emphasis"><em>y</em></span>
is nonzero.
</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top">
<p>
<span class="emphasis"><em>R<sub>C</sub>(x, y) = R<sub>F</sub>(x, y, y)</em></span>
</p>
<p>
<span class="emphasis"><em>R<sub>D</sub>(x, y, z) = R<sub>J</sub>(x, y, z, z)</em></span>
</p>
</td></tr>
</table></div>
<a name="ellint_theorem"></a><a name="math_toolkit.special.ellint.ellint_intro.duplication_theorem"></a><h5>
<a name="id1131051"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.duplication_theorem">Duplication
Theorem</a>
</h5>
<p>
Carlson proved in [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>]
that
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint13.png"></span>
</p>
<a name="ellint_formula"></a><a name="math_toolkit.special.ellint.ellint_intro.carlson_s_formulas"></a><h5>
<a name="id1131105"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.carlson_s_formulas">Carlson's
Formulas</a>
</h5>
<p>
The Legendre form and Carlson form of elliptic integrals are related by
equations:
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint14.png"></span>
</p>
<p>
In particular,
</p>
<p>
<span class="inlinemediaobject"><img src="../../../../equations/ellint15.png"></span>
</p>
<a name="math_toolkit.special.ellint.ellint_intro.numerical_algorithms"></a><h5>
<a name="id1131178"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.numerical_algorithms">Numerical
Algorithms</a>
</h5>
<p>
The conventional methods for computing elliptic integrals are Gauss and
Landen transformations, which converge quadratically and work well for
elliptic integrals of the first and second kinds. Unfortunately they suffer
from loss of significant digits for the third kind. Carlson's algorithm
[<a class="link" href="ellint_intro.html#ellint_ref_carlson79">Carlson79</a>] [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>],
by contrast, provides a unified method for all three kinds of elliptic
integrals with satisfactory precisions.
</p>
<a name="ellint_refs"></a><a name="math_toolkit.special.ellint.ellint_intro.references"></a><h5>
<a name="id1131211"></a>
<a class="link" href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.references">References</a>
</h5>
<p>
Special mention goes to:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
A. M. Legendre, <span class="emphasis"><em>Traitd des Fonctions Elliptiques et des Integrales
Euleriennes</em></span>, Vol. 1. Paris (1825).
</p></blockquote></div>
<p>
However the main references are:
</p>
<a name="ellint_ref_AS"></a><a name="ellint_ref_carlson79"></a><a name="ellint_ref_carlson77"></a><a name="ellint_ref_carlson78"></a><a name="ellint_ref_carlson81"></a><div class="orderedlist"><ol type="1">
<li>
M. Abramowitz and I. A. Stegun (Eds.) (1964) Handbook of Mathematical
Functions with Formulas, Graphs, and Mathematical Tables, National
Bureau of Standards Applied Mathematics Series, U.S. Government Printing
Office, Washington, D.C.
</li>
<li>
B.C. Carlson, <span class="emphasis"><em>Computing elliptic integrals by duplication</em></span>,
Numerische Mathematik, vol 33, 1 (1979).
</li>
<li>
B.C. Carlson, <span class="emphasis"><em>Elliptic Integrals of the First Kind</em></span>,
SIAM Journal on Mathematical Analysis, vol 8, 231 (1977).
</li>
<li>
B.C. Carlson, <span class="emphasis"><em>Short Proofs of Three Theorems on Elliptic
Integrals</em></span>, SIAM Journal on Mathematical Analysis, vol 9,
524 (1978).
</li>
<li>
B.C. Carlson and E.M. Notis, <span class="emphasis"><em>ALGORITHM 577: Algorithms for
Incomplete Elliptic Integrals</em></span>, ACM Transactions on Mathematmal
Software, vol 7, 398 (1981).
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>On computing elliptic integrals and functions</em></span>.
J. Math. and Phys., 44 (1965), pp. 36-51.
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals of the second
kind</em></span>. Math. Comp., 49 (1987), pp. 595-606. (Supplement,
ibid., pp. S13-S17.)
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals of the third
kind</em></span>. Math. Comp., 51 (1988), pp. 267-280. (Supplement,
ibid., pp. S1-S5.)
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: cubic cases</em></span>.
Math. Comp., 53 (1989), pp. 327-333.
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: one quadratic
factor</em></span>. Math. Comp., 56 (1991), pp. 267-280.
</li>
<li>
B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: two quadratic
factors</em></span>. Math. Comp., 59 (1992), pp. 165-180.
</li>
<li>
B. C. Carlson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9409227" target="_top">Numerical
computation of real or complex elliptic integrals</a></em></span>.
Numerical Algorithms, Volume 10, Number 1 / March, 1995, p13-26.
</li>
<li>
B. C. Carlson and John L. Gustafson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9310223" target="_top">Asymptotic
Approximations for Symmetric Elliptic Integrals</a></em></span>,
SIAM Journal on Mathematical Analysis, Volume 25, Issue 2 (March 1994),
288-303.
</li>
</ol></div>
<p>
The following references, while not directly relevent to our implementation,
may also be of interest:
</p>
<div class="orderedlist"><ol type="1">
<li>
R. Burlisch, <span class="emphasis"><em>Numerical Compuation of Elliptic Integrals and
Elliptic Functions.</em></span> Numerical Mathematik 7, 78-90.
</li>
<li>
R. Burlisch, <span class="emphasis"><em>An extension of the Bartky Transformation to
Incomplete Elliptic Integrals of the Third Kind</em></span>. Numerical
Mathematik 13, 266-284.
</li>
<li>
R. Burlisch, <span class="emphasis"><em>Numerical Compuation of Elliptic Integrals and
Elliptic Functions. III</em></span>. Numerical Mathematik 13, 305-315.
</li>
<li>
T. Fukushima and H. Ishizaki, <span class="emphasis"><em><a href="http://adsabs.harvard.edu/abs/1994CeMDA..59..237F" target="_top">Numerical
Computation of Incomplete Elliptic Integrals of a General Form.</a></em></span>
Celestial Mechanics and Dynamical Astronomy, Volume 59, Number 3 /
July, 1994, 237-251.
</li>
</ol></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
Thijs van den Berg<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../ellint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_carlson.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>