Solution of the transcendental equation wew = x

Submittal of an algorithm for consideration for publication in Communications of the ACM implies unrestricted use of the algorithm within a computer is permissible. Description Purpose. WEW solves the transcendental equation we ~ = x for w, given x > 0, by an iteration that converges much more rapidly than either Newton's method or fixed-point iteration. The user provides x = X. The routine returns w = WEW and the last relative correction e, = EN. Two versions are described here. Version A produces CDC 6600 machine accuracy (48 bits), and the relative error should be approximately eJ. Version B produces at least six significant figures, and the relative error should be approximately eJ. Iteration. Assuming x > 0, we may rewrite the equation defining w as w + log(w) = log(x). (1) For a given approximation w. to w, let w~+l = w~ + 8, be a much better approximation. Substitution into (1) yields 8. +log(1-k-8,,/w.) = log x-log w.,-w. Using the approximation [1] log (1 + 8/w) ~ (Sw + 1/6 83)/ (w 2 + 2/3 8w) and clearing fractions yields the following quadratic equation for 8, : Solving for the root that tends to zero as z.-~ 0 gives 2ZnWn 8n (1 + w,-2/3 z,) + ((1 + w, + 2/3 z,) 2-2z,) ½ " General permission to republish, but not for profit, an algorithm is granted, provided that reference is made to this publication, to its date of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery. Work performed under the auspices of the U.S. Atomic Energy Commission. This has a continued fraction expansion [3] 2WnZn 8n = 2Zn 2(1 W w,)-2(1 + w, + 2/3 z,) 2z, 2(1 + w.-1-2/3 z.) for which the third convergent yields sufficient accuracy. If we ignore the quantity 2/3 z, in the third term, we obtain the iteration formula Initial guesses. For small values of x, the given equation has a series solution due to L. Euler [2]. A Pad~ rational fraction approximation to this series is 1 +7/3x+ 5/6x 2" As computed from (5), wo(x) < w(x), good to within 5 percent if x = 2.5 and much better for smaller values of x. For larger values of x we may use wo = log(x), (6) which has a maximum relative error no greater than 37 percent for x …