Article 5RC4M Connections

Connections

by
John
from John D. Cook on (#5RC4M)

One of my favorite things in math is connecting together things that do not seem related at first. This post will elaborate on a connection between two recent posts.

Gauss's constant

A couple weeks ago I wrote about Gauss's constant

gauss_constant_def1.svg

and several things it was related to. We can calculate g with n iterations of the process defining the AGM (arithmetic-geometric mean) as follows.

 def f(n): a, b = 1, 2**0.5 for _ in range(n): a, b = 0.5*(a+b), (a*b)**0.5 return 1/a

This process converges very quickly, calculating g to full machine precision when n = 4.

Elliptic integrals

Gauss's constant, and the AGM more generally, can be computed in terms of an elliptic integral, and that in turn can be computed in terms of a hypergeometric function.

Elliptic integrals are so named because historically they are related to the problem of finding the perimeter of an ellipse. The particular elliptic integral we're interested here is Legendre's K function

elliptic_k_carlson.svg

(There are several conventions for parameterizing elliptic integrals, so this definition may not match what you see elsewhere. See last section.)

With this definition of K,

amgk2.svg

and by the symmetry of the AGM, you can reverse the order of x and y. It follows that

agmk3.svg

Hypergeometric functions

The previous post briefly introduced hypergeometric functions. The function K is related to Gauss's hypergeometric function by

elliptic_k_carlson_hyper.svg

Expanding F as a series shows the connection to double factorials.

fhalfhalf.svg

This means you could numerically evaluate a power series to compute Gauss's constant, thought that would be inefficient. Because the AGM converges so quickly, you'd want to evaluate elliptic integrals in terms of the AGM, not evaluate the AGM in terms of elliptic integrals.

Conventions

There is some confusing terminology and variation in conventions when defining elliptic integrals. We've defined K here in terms of the elliptic modulus" k. Some software, such as Mathematica and SciPy, define K in terms of the parameter" m = k^2. So to evaluate K above using Mathematica, you'd need to square the argument first.

 g = EllipticK[0.5] Sqrt[2]/Pi

or

 g = 2 EllipticK[-1]/Pi

Similarly, in Python we'd write

 from scipy.special import ellipk from math import pi g = ellipk(0.5)*2**0.5/pi

or

 g = 2*ellipk(-1)/pi
The post Connections first appeared on John D. Cook.ofxM8dpoKHQ
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments