and
Both of these 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).
(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
|
Search Encyclopedia
|
Featured Article
|