mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	
		
			
	
	
		
			250 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			250 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [/ | ||
|  | Copyright (c) 2006 Xiaogang Zhang | ||
|  | Use, modification and distribution are subject to the | ||
|  | Boost Software License, Version 1.0. (See accompanying file | ||
|  | LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|  | ] | ||
|  | 
 | ||
|  | [section:ellint_intro Elliptic Integral Overview] | ||
|  | 
 | ||
|  | The main reference for the elliptic integrals is: | ||
|  | 
 | ||
|  | [: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.] | ||
|  | 
 | ||
|  | Mathworld also contain a lot of useful background information: | ||
|  | 
 | ||
|  | [:[@http://mathworld.wolfram.com/EllipticIntegral.html Weisstein, Eric W.  | ||
|  | "Elliptic Integral." From MathWorld--A Wolfram Web Resource.]] | ||
|  | 
 | ||
|  | As does [@http://en.wikipedia.org/wiki/Elliptic_integral Wikipedia Elliptic integral]. | ||
|  | 
 | ||
|  | [h4 Notation] | ||
|  | 
 | ||
|  | All variables are real numbers unless otherwise noted. | ||
|  | 
 | ||
|  | [h4 Definition] | ||
|  | 
 | ||
|  | [equation ellint1] | ||
|  | 
 | ||
|  | is called elliptic integral if ['R(t, s)] is a rational function | ||
|  | of ['t] and ['s], and ['s[super 2]] is a cubic or quartic polynomial | ||
|  | in ['t]. | ||
|  | 
 | ||
|  | 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: | ||
|  | 
 | ||
|  | Elliptic Integral of the First Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint2] | ||
|  | 
 | ||
|  | Elliptic Integral of the Second Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint3] | ||
|  | 
 | ||
|  | Elliptic Integral of the Third Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint4] | ||
|  | 
 | ||
|  | where | ||
|  | 
 | ||
|  | [equation ellint5] | ||
|  | 
 | ||
|  | [note ['[phi]] is called the amplitude. | ||
|  | 
 | ||
|  | ['k] is called the modulus.  | ||
|  | 
 | ||
|  | ['[alpha]] is called the modular angle.  | ||
|  | 
 | ||
|  | ['n] is called the characteristic.] | ||
|  |        | ||
|  | [caution Perhaps more than any other special functions the elliptic | ||
|  | integrals are expressed in a variety of different ways.  In particular, | ||
|  | the final parameter /k/ (the modulus) may be expressed using a modular | ||
|  | angle [alpha], or a parameter /m/.  These are related by: | ||
|  | 
 | ||
|  | k = sin[alpha] | ||
|  | 
 | ||
|  | m = k[super 2] = sin[super 2][alpha] | ||
|  | 
 | ||
|  | So that the integral of the third kind (for example) may be expressed as | ||
|  | either: | ||
|  | 
 | ||
|  | [Pi](n, [phi], k) | ||
|  | 
 | ||
|  | [Pi](n, [phi] \\ [alpha]) | ||
|  | 
 | ||
|  | [Pi](n, [phi]| m) | ||
|  | 
 | ||
|  | To further complicate matters, some texts refer to the ['complement | ||
|  | of the parameter m], or 1 - m, where: | ||
|  | 
 | ||
|  | 1 - m = 1 - k[super 2] = cos[super 2][alpha] | ||
|  | 
 | ||
|  | This implementation uses /k/ throughout: this matches the requirements | ||
|  | of the [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf | ||
|  | Technical Report on C++ Library Extensions].  However, you should | ||
|  | be extra careful when using these functions!] | ||
|  | 
 | ||
|  | When ['[phi]] = ['[pi]] / 2, the elliptic integrals are called ['complete]. | ||
|  | 
 | ||
|  | Complete Elliptic Integral of the First Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint6] | ||
|  | 
 | ||
|  | Complete Elliptic Integral of the Second Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint7] | ||
|  | 
 | ||
|  | Complete Elliptic Integral of the Third Kind (Legendre form) | ||
|  | 
 | ||
|  | [equation ellint8] | ||
|  | 
 | ||
|  | Legendre also defined a forth integral D([phi],k) which is a combination of the other three: | ||
|  | 
 | ||
|  | [equation ellint_d] | ||
|  | 
 | ||
|  | Like the other Legendre integrals this comes in both complete and incomplete forms. | ||
|  | 
 | ||
|  | [h4 Carlson Elliptic Integrals] | ||
|  | 
 | ||
|  | Carlson [[link ellint_ref_carlson77 Carlson77]] [[link ellint_ref_carlson78  Carlson78]] gives an alternative definition of | ||
|  | elliptic integral's canonical forms: | ||
|  | 
 | ||
|  | Carlson's Elliptic Integral of the First Kind | ||
|  | 
 | ||
|  | [equation ellint9] | ||
|  | 
 | ||
|  | where ['x], ['y], ['z] are nonnegative and at most one of them | ||
|  | may be zero. | ||
|  | 
 | ||
|  | Carlson's Elliptic Integral of the Second Kind | ||
|  | 
 | ||
|  | [equation ellint10] | ||
|  | 
 | ||
|  | where ['x], ['y] are nonnegative, at most one of them may be zero, | ||
|  | and ['z] must be positive. | ||
|  | 
 | ||
|  | Carlson's Elliptic Integral of the Third Kind | ||
|  | 
 | ||
|  | [equation ellint11] | ||
|  | 
 | ||
|  | where ['x], ['y], ['z] are nonnegative, at most one of them may be | ||
|  | zero, and ['p] must be nonzero. | ||
|  | 
 | ||
|  | Carlson's Degenerate Elliptic Integral | ||
|  | 
 | ||
|  | [equation ellint12] | ||
|  | 
 | ||
|  | where ['x] is nonnegative and ['y] is nonzero. | ||
|  | 
 | ||
|  | [note ['R[sub C](x, y) = R[sub F](x, y, y)]  | ||
|  | 
 | ||
|  | ['R[sub D](x, y, z) = R[sub J](x, y, z, z)]] | ||
|  | 
 | ||
|  | Carlson's Symmetric Integral | ||
|  | 
 | ||
|  | [equation ellint27] | ||
|  | 
 | ||
|  | [h4 Duplication Theorem] | ||
|  | 
 | ||
|  | Carlson proved in [[link ellint_ref_carlson78  Carlson78]] that | ||
|  | 
 | ||
|  | [equation ellint13] | ||
|  | 
 | ||
|  | [h4 Carlson's Formulas] | ||
|  | 
 | ||
|  | The Legendre form and Carlson form of elliptic integrals are related | ||
|  | by equations: | ||
|  | 
 | ||
|  | [equation ellint14] | ||
|  | 
 | ||
|  | In particular, | ||
|  | 
 | ||
|  | [equation ellint15] | ||
|  | 
 | ||
|  | [h4 Miscellaneous Elliptic Integrals] | ||
|  | 
 | ||
|  | There are two functions related to the elliptic integrals which otherwise | ||
|  | defy categorisation, these are the Jacobi Zeta function: | ||
|  | 
 | ||
|  | [equation jacobi_zeta] | ||
|  | 
 | ||
|  | and the Heuman Lambda function: | ||
|  | 
 | ||
|  | [equation heuman_lambda] | ||
|  | 
 | ||
|  | Both of these functions are easily implemented in terms of Carlson's integrals, and are | ||
|  | provided in this library as __jacobi_zeta and __heuman_lambda. | ||
|  | 
 | ||
|  | [h4 Numerical Algorithms] | ||
|  | 
 | ||
|  | 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 [[link ellint_ref_carlson79  Carlson79]] [[link ellint_ref_carlson78  Carlson78]], by contrast, | ||
|  | provides a unified method for all three kinds of elliptic integrals | ||
|  | with satisfactory precisions. | ||
|  | 
 | ||
|  | [h4 References] | ||
|  | 
 | ||
|  | Special mention goes to: | ||
|  | 
 | ||
|  | [:A. M. Legendre, ['Traitd des Fonctions Elliptiques et des Integrales  | ||
|  | Euleriennes], Vol. 1. Paris (1825).] | ||
|  | 
 | ||
|  | However the main references are: | ||
|  | 
 | ||
|  | # [#ellint_ref_AS]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. | ||
|  | # [#ellint_ref_carlson79]B.C. Carlson, ['Computing elliptic integrals by duplication], | ||
|  |     Numerische Mathematik, vol 33, 1 (1979). | ||
|  | # [#ellint_ref_carlson77]B.C. Carlson, ['Elliptic Integrals of the First Kind], | ||
|  |     SIAM Journal on Mathematical Analysis, vol 8, 231 (1977). | ||
|  | # [#ellint_ref_carlson78]B.C. Carlson, ['Short Proofs of Three Theorems on Elliptic Integrals], | ||
|  |     SIAM Journal on Mathematical Analysis, vol 9, 524 (1978). | ||
|  | # [#ellint_ref_carlson81]B.C. Carlson and E.M. Notis, ['ALGORITHM 577: Algorithms for Incomplete | ||
|  |     Elliptic Integrals], ACM Transactions on Mathematmal Software, | ||
|  |     vol 7, 398 (1981). | ||
|  | # B. C. Carlson, ['On computing elliptic integrals and functions]. J. Math. and | ||
|  | Phys., 44 (1965), pp. 36-51. | ||
|  | # B. C. Carlson, ['A table of elliptic integrals of the second kind]. Math. Comp., 49 | ||
|  | (1987), pp. 595-606. (Supplement, ibid., pp. S13-S17.) | ||
|  | # B. C. Carlson, ['A table of elliptic integrals of the third kind]. Math. Comp., 51 (1988), | ||
|  | pp. 267-280. (Supplement, ibid., pp. S1-S5.) | ||
|  | # B. C. Carlson, ['A table of elliptic integrals: cubic cases]. Math. Comp., 53 (1989), pp. | ||
|  | 327-333. | ||
|  | # B. C. Carlson, ['A table of elliptic integrals: one quadratic factor]. Math. Comp., 56 (1991), | ||
|  | pp. 267-280. | ||
|  | # B. C. Carlson, ['A table of elliptic integrals: two quadratic factors]. Math. Comp., 59 | ||
|  | (1992), pp. 165-180. | ||
|  | # B. C. Carlson, ['[@http://arxiv.org/abs/math.CA/9409227  | ||
|  | Numerical computation of real or complex elliptic integrals]]. Numerical Algorithms, | ||
|  | Volume 10, Number 1 / March, 1995, p13-26. | ||
|  | # B. C. Carlson and John L. Gustafson, ['[@http://arxiv.org/abs/math.CA/9310223 | ||
|  | Asymptotic Approximations for Symmetric Elliptic Integrals]],  | ||
|  | SIAM Journal on Mathematical Analysis, Volume 25, Issue 2 (March 1994), 288-303. | ||
|  | 
 | ||
|  | 
 | ||
|  | The following references, while not directly relevent to our implementation, | ||
|  | may also be of interest: | ||
|  | 
 | ||
|  | # R. Burlisch, ['Numerical Compuation of Elliptic Integrals and Elliptic Functions.] | ||
|  | Numerical Mathematik 7, 78-90. | ||
|  | # R. Burlisch, ['An extension of the Bartky Transformation to Incomplete | ||
|  | Elliptic Integrals of the Third Kind]. Numerical Mathematik 13, 266-284. | ||
|  | # R. Burlisch, ['Numerical Compuation of Elliptic Integrals and Elliptic Functions. III].  | ||
|  | Numerical Mathematik 13, 305-315. | ||
|  | # T. Fukushima and H. Ishizaki, ['[@http://adsabs.harvard.edu/abs/1994CeMDA..59..237F  | ||
|  | Numerical Computation of Incomplete Elliptic Integrals of a General Form.]] | ||
|  | Celestial Mechanics and Dynamical Astronomy, Volume 59, Number 3 / July, 1994, | ||
|  | 237-251. | ||
|  | 
 | ||
|  | [endsect] |