In mathematics, the arithmetic-geometric mean M(x, y) of two positive real numbers x and y is defined as follows: we first form the arithmetic mean of x and y and call it a1, i.e. a1 = (x + y) / 2. We then form the geometric mean of x and y and call it g1, i.e. g1 is the square root of xy.
Now we can iterate this operation with a1 taking the place of x and g1 taking the place of y. In this way, two sequences (an) and (gn) are defined:
and
These two sequences converge to the same number, which we call the arithmetic-geometric mean M(x, y) of x and y.
M(x, y) is a number between the geometric and arithmetic mean of x and y; in particular it is between x and y. If r > 0, then M(rx, ry) = r M(x, y).
M(x, y) is sometimes denoted agm(x, y).
Implementation
The following example code in the Scheme programming language computes the arithmetic-geometric mean of two positive real numbers:
(define agmean
(lambda (a b epsilon)
(letrec ((ratio-diff ; determine whether two numbers
(lambda (a b) ; are already very close together
(abs (/ (- a b) b))))
(loop ; actually do the computation
(lambda (a b)
;; if they're already really close together,
;; just return the arithmetic mean
(if (< (ratio-diff a b) epsilon)
(/ (+ a b) 2)
;; otherwise, do another step
(loop (sqrt (* a b)) (/ (+ a b) 2))))))
;; error checking
(if (or (not (real? a))
(not (real? b))
(<= a 0)
(<= b 0))
(error 'agmean "~s and ~s must both be positive real numbers" a b)
(loop a b)))))
One can show that
where K(x) is the complete elliptic integral of the first kind.
The geometric-harmonic mean can be calculated by an analogous method, using sequences of geometric and harmonic means. The arithmetic-harmonic mean is none other than the geometric mean.
See also: generalized mean