Solving the Second Auxiliary Real Exponential Equation Using Lambert's W function

(The analysis that follows is a light introduction. For more austere results, consult Paper 2).

We begin with some standard notation:

f(x) = cx, c > 0, x in R.

f(n)(x) = {f(x), iff n = 1, f(f(n-1)(x)) iff n > 1}.

g(x) = f(x) - x.

dg/dx = f(x)*ln(c) - 1.

h(x) = f(2)(x) - x.

dh/dx = f(2)(x)*f(x)*ln(c)2 - 1.

d2h/dx2 = f(2)(x)*(f(x))2*ln(c)4 + f(2)(x)*f(x)*ln(c)3.

W(k, x) denotes the Lambert's W function branch corresponding to k.

Lemma 1:

If c > e(1/e), h(x) = 0 admits no real roots.

Lemma 2:

If c = e(1/e), h(x) = 0 admits exactly one real root xr = e.

Lemma 3:

If 1 < c < e(1/e), h(x) = 0 admits exactly two real roots {xr1, xr2}, given by: xrj = e-W(j-2,-ln(c)), j in {1,2}.

Lemma 4:

If e-e < c < 1, h(x) = 0 admits exactly one real root xr = e-W(-ln(c)).

Lemma 5:

If c = e-e, h(x) = 0 admits exactly one real root xr = 1/e.

Lemma 6:

If 0 < c < e-e, h(x) = 0 admits exactly three real roots {xr, xr1, xr2}, with xr = e-W(-ln(c)), and xr1 < xr < xr2.

Lemmas 1-6 depend on the following lemmas:

Lemma 7:

If c > 1, then dh/dx = 0 admits exactly one real root: xcrit = ln(1/ln(c)*W(1/ln(c)))/ln(c).

Lemma 8:

If e-e < c < 1, then dh/dx = 0 admits no real roots.

Lemma 9:

If c = e-e, then dh/dx = 0 admits exactly one real root: xcrit = 1/e.

Lemma 10:

If 0 < c < e-e, then dh/dx = 0 admits exactly two real roots {xcrit1, xcrit2}: xcritj = ln(1/ln(c)*W(j-2,1/ln(c)))/ln(c), for j in {1,2}, with xcrit1 < xcrit2.

Lemma 10 depends on the following lemma:

Lemma 11:

W(-1,x) <= W(x) for all x in [-1/e, 0).

We begin with Lemma 11:

Proof of Lemma 11:

Follows from lemma 9 and lemma10 in a previous article, along with the fact that W(-1/e) = W(-1,-1/e) = -1. Here, we just exhibit the two graphs for x in [-1/e, 0):

>plot({W(x),W(-1,x)},x=-exp(-1)..0);

lambert w 01

Lemma 7.1:

If c > 1, then dh/dx = 0 admits at most one real root.

Proof:

It suffices to show that dh/dx is strictly increasing throughout R.

c > 1, => ln(c) > 0. x1 < x2, => ln(c)*x1 < ln(c)*x2, => f(x1) < f(x2), => ln(c)*f(x1) < ln(c)*f(x2). Similarly: ln(c)*f(2)(x1) < ln(c)*f(2)(x2). Thus: f(x1)*f(2)(x1)*ln(c)2 < f(x2)*f(2)(x2)*ln(c)2, => f(x1)*f(2)(x1)*ln(c)2 - 1 < f(x2)*f(2)(x2)*ln(c)2 - 1, => dh/dx|x1 < dh/dx|x2, and the lemma follows.

Proof of Lemma 7:

c > 1, xcrit = ln(1/ln(c)*W(1/ln(c)))/ln(c), and verify that: xcrit is in R, dh/dx|x_crit = 0, => dh/dx = 0 admits at least one real root, xcrit. By Lemma 7.1, dh/dx = 0 admits at most one real root. Thus: dh/dx = 0 admits exactly one real root: xcrit, and the lemma follows.

Lemma 8.1:

If 0 < c < 1 and ycrit = ln(-1/ln(c))/ln(c), then if x < ycrit, dh/dx is strictly increasing and if x > ycrit, dh/dx is strictly decreasing.

Proof:

0 < c < 1, => ln(c) < 0, and verify that ycrit is in R. x < ycrit => ln(c)*x > ln(-1/ln(c)), => f(x) > -1/ln(c). d2h/dx2 = f(2)(x)*f(x)*[f(x)*ln(c)4+ln(c)3] > f(2)(x)*(-1/ln(c))*[(-1/ln(c)*ln(c)4+ln(c)3] = 0. Similarly, x > ycrit => d2h/dx2  <  0, and the lemma follows.

Corollary:

If 0 < c < 1, then dh/dx possesses a global maximum M at ycrit.

Proof:

0 < c < 1 => ycrit is in R as before, and verify that: dh/dx|y_crit = M = -ln(c)/e - 1, d2h/dx2|y_crit = 0, d3h/dx3|y_crit = ln(c)3/e = N < 0. and the lemma follows from the above and lemma 8.1.

Proof of Lemma 8:

It suffices to show that for the M of the above corollary, M < 0.

If e-e < c < 1, verify that: M = -ln(c)/e - 1 < 0, and the lemma follows from the corollary.

Proof of Lemma 9:

It suffices to show that dh/dx < 0, for all x in R - {1/e}. Apply the proof of lemma 8, with c = e-e, ycrit = 1/e, M = 0 and N = -e2, and the lemma follows from lemma 8.1.

Proof of Lemma 10:

If 0 < c < e-e, verify that: M = -ln(c)/e - 1 > 0, limx->-oodh/dx = -1, limx->+oodh/dx = -1. Note that 1/ln(c) is in (-1/e, 0), so by Lemma 9 and Lemma 10, both W(-1,1/ln(c)) and W(1/ln(c)) are in R, => xcritj = ln(1/ln(c)*W(j-2,1/ln(c)))/ln(c), for j in {1,2}, are in R and satisfy: dh/dx|x_critj = 0. and the lemma follows the above and lemma 8.1.

Lemma 1.1:

If c > 1 and xcrit = ln(W(1/ln(c))/ln(c))/ln(c), then if x > xcrit, h(x) is strictly increasing and if x < xcrit, h(x) is strictly decreasing.

Proof:

If c > 1, verify that xcrit is in R. x > xcrit => x*ln(c) > ln(W(1/ln(c))/ln(c)), => f(x) > W(1/ln(c))/ln(c), => ln(c)*f(x) > W(1/ln(c)), => f(2)(x) > eW(1/ln(c)). dh/dx = f(2)(x)*f(x)*ln(c)2 - 1 > eW(1/ln(c))*W(1/ln(c))/ln(c)*ln(c)2 - 1 = 1/ln(c)*1/ln(c)*ln(c)2 - 1 = 0. Similarly: x < xcrit => dh/dx  < 0, and the lemma follows.

Corollary:

If c > 1, then h(x) possesses a global minimum m at xcrit.

Proof:

c > 1 => xcrit is in R, and verify that: h(xcrit) = m = f(2)(xcrit) - xcrit, dh/dx|x_crit = 0, d2h/dx2|x_crit = ln(c)*[W(1/ln(c)) + 1] = N > 0, and the lemma follows from lemma 1.1.

Proof of Lemma 1:

h1

It suffices to show that if c > e(1/e), m > 0. We will show: xcrit = ln(W(1/ln(c))/ln(c))/ln(c) < -ln(ln(c))/ln(c), <=> ln(W(1/ln(c))/ln(c)) < -ln(ln(c)), <=> W(1/ln(c))/ln(c) < 1/ln(c), <=> W(1/ln(c)) < 1, which holds by virtue of: c > e(1/e), <=> ln(c) > 1/e, <=> 1/ln(c) < e, <=> W(1/ln(c)) < W(e) = 1, so: g(xcrit) > 0, from Lemma 11 in the previous article, and therefore: f(xcrit) - xcrit > 0, => f(xcrit) > xcrit, => f(2)(xcrit) > f(xcrit) > xcrit, => f(2)(xcrit) > xcrit, => f(2)(xcrit) - xcrit = m > 0, => and the lemma follows.

Proof of Lemma 2:

h2

It suffices to show that if c = e(1/e), m = 0. c = e(1/e), => xcrit = e, h(xcrit) = m = 0, N = 2/e, and the lemma follows from lemma 1.1.

Proof of Lemma 3:

h3

Similar to the proof of lemma 1, and note that in this case: xcrit = ln(W(1/ln(c))/ln(c))/ln(c) > -ln(ln(c))/ln(c), and verify that: and limx->-∞h(x) = +∞ and limx->+∞h(x) = +∞, the aforementioned expressions are roots, and the lemma follows from lemma 1.1.

Proof of Lemma 4:

h4

It suffices to show that dh/dx < 0, for all x, limx->-∞h(x) = +∞, and limx->+∞h(x) = -∞. e-e < c < 1, => -e < ln(c) < 0, => -ln(c) < e, => -ln(c)/e < 1. dh/dx = f(2)(x)*f(x)*ln(c)2 - 1. Now verify that the point: ycrit = ln(-1/ln(c))/ln(c) is a critical point of the function dh/dx and furthermore: d3h/dx3|y_crit = ln(c)3/e < 0, so ycrit is a maximum of dh/dx. Furthermore: x < ycrit, => x < ln(-1/ln(c))/ln(c), => x*ln(c) > ln(-1/ln(c)), => f(x) > -1/ln(c), => f(x)*ln(c) < -1, => f(2)(x) < 1/e, => f(2)(x)*ln(c) < ln(c)/e, => dh/dx = f(2)(x)*f(x)*ln(c)2 - 1 < -ln(c)/e - 1 < 0. Similarly, x > ycrit, => dh/dx < 0. Next verify that xr is a root. The last two limits follow easily, and the lemma follows.

Proof of Lemma 5:

h5

if c = e-e, verify that: xcrit = ln(W(1/ln(c))/ln(c))/ln(c) = ln(W(-1, 1/ln(c))/ln(c))/ln(c) = 1/e satisfies: dh/dx|x_crit = 0, h(xcrit) = 0. One then verifies that dh/dx < 0, for all x in R - {1/e}, which is similar to the proof of lemma 4, and the lemma follows.

Lemma 6.1:

Let ycrit = ln(-1/ln(c))/ln(c). Then dh/dx is strictly increasing in (xcrit1, ycrit] and strictly decreasing in [ycrit, xcrit2).

Proof:

if x in (xcrit, ycrit] then x < ycrit, => x < ln(-1/ln(c))/ln(c), => x*ln(c) > ln(-1/ln(c)), => f(x) > -1/ln(c), => f(x)*ln(c) < -1, => f(2)(x) < 1/e, => f(2)(x)*ln(c) > ln(c)/e, => d2h/dx2 = f(2)(x)*f(x)*[f(x)*ln(c)3+ln(c)4] =
f(2)(x)*ln(c)*f(x)*[f(x)*ln(c)2+ln(c)3] > ln(c)/e*(-1/ln(c))*[(-1/ln(c)*ln(c)2+ln(c)3] = ln(c)2/e - ln(c)3/e > 0. Similarly: x > ycrit, => d2h/dx2 < 0, and the lemma follows.

Lemma 6.2:

dh/dx is strictly positive in (xcrit1, xcrit2).

Proof:

d2h/dx2 = 0, => ycrit = ln(-1/ln(c))/ln(c), and verify: d3h/dx3|y_crit = ln(c)3/e < 0, so ycrit gives rise to a (global) maximum for dh/dx. If dh/dx|x' = 0 for some x' not in {xcrit1, xcrit2}, x' in (xcrit1, xcrit2), then either x' in (xcrit1, ycrit) or x' in (ycrit, xcrit2). But then, since dh/dx|x_crit1 = dh/dx|x_crit2 = 0, dh/dx would have to be both increasing and decreasing in that corresponding interval. This would mean that either dh/dx is a constant in that interval or that lemma 6.1 is violated in that interval. Both are contradictions, and the lemma follows.

Proof of Lemma 6:

h6

If 0 < c < e-e, => ln(c) < -e, => 1/ln(c) > -1/e, => W(1/ln(c)) > -1, and W(-1,1/ln(c)) < -1, by Lemma 11. Now verify that: xr is a root. xcrit1 = ln(W(-1, 1/ln(c))/ln(c))/ln(c), and xcrit2 = ln(W(1/ln(c))/ln(c))/ln(c), satisfy: dh/dx|x_critj = 0, j in {1, 2}, and furthermore: d2h/dx2|xcrit1 = eW(-1,1/ln(c))*W(-1,1/ln(c))*ln(c)2*(W(-1,1/ln(c))+1) > 0,
d2h/dx2|xcrit2 = eW(1/ln(c))*W(1/ln(c))*ln(c)2*(W(1/ln(c))+1) < 0, so xcrit1 gives rise to a (local) minimum and xcrit2 gives rise to a (local) maximum. It suffices to show that h(x) is strictly decreasing if x < xcrit1 and if x > xcrit2, limx->-∞h(x) = +∞, limx->+∞h(x) = -∞, and that there is exactly one root between xcrit1 and xcrit2. x < xcrit1, => x < ln(W(-1,1/ln(c))/ln(c))/ln(c), => x*ln(c) > ln(W(-1,1/ln(c))/ln(c)), => f(x) > W(-1,1/ln(c))/ln(c), => f(x)*ln(c) < W(-1, 1/ln(c)) < -1, and f(2)(x) < eW(-1, 1/ln(c)) < 1/e, dh/dx = f(2)(x)*f(x)*ln(c)2 - 1 < -ln(c)/e - 1 < -(-e)/e - 1 = 0. Similarly: x > xcrit2, => dh/dx < 0. Next, the two limits: c < 1, so limx->+∞f(2)(x) = 0, => limx->+∞h(x) = -∞. limx->-∞f(2)(x) = limx->+∞f(2)(-x) = limx->+∞c(1/c^x) = c0 = 1, => limx->-∞h(x) = +∞. Next verify that: h(xcrit1) < 0 and h(xcrit2) > 0: For this it suffices to show that: xcrit1 < r < xcrit2, where r is the single root of g(x) = 0 (in the range 0 < c < e-e), for then, since by Lemma 11 in a previous article g(x) is strictly decreasing everywhere: g(xcrit1) > 0 and g(xcrit2) < 0, and therefore: f(2)(xcrit1) > f(xcrit1) > xcrit1, and f(2)(xcrit2) < f(xcrit2) < xcrit2, and the desired result follows.

Indeed: xr < xcrit2, <=> -W(-ln(c))/ln(c) < ln(W(1/ln(c))/ln(c))/ln(c), <=> -W(-ln(c)) > ln(W(1/ln(c))/ln(c)), <=> e-W(-ln(c)) > W(1/ln(c))/ln(c), <=> -W(-ln(c))/ln(c) > W(1/ln(c)), <=> -W(-ln(c)) < W(1/ln(c)), <=> W(-ln(c)) > -W(1/ln(c)). But: ln(c) < -e, => -ln(c) > e, => W(-ln(c)) > 1, and ln(c) < -e, => 1/ln(c) > -1/e, => W(1/ln(c)) > -1, => -W(1/ln(c)) < 1, and the inequality above holds.

Similar for: xcrit1 < xr and the desired result follows. It follows that h(x) has at least two roots. By the Mean Value Theorem and the following two inequalities: h(xcrit1) < 0 and h(xcrit2) > 0, h(x) has at least three roots, (one more between xcrit1 and xcrit2). If h(x) had more than three roots, the fourth root would have to lie in (xcrit1, xcrit2). But this is impossible, for then: dh/dx would have to be negative somewhere inside (xcrit1, xcrit2) and this contradicts lemma 6.2.

To order the roots, it suffices to show that xcrit1 < xr < xcrit2. But this has been shown already above (since xr = r = e-W(-ln(c))), and the lemma follows.

We can now modify our Maple code for "solveAuxR", to take care of this case as well:

> solveAux2R:=proc(c)
> local fc,fb1,fb2,xcf1,xcf2,r1,r2,r3;
> fc:=evalf(c);   #Turn c into a float
> fb1:=evalf(exp(exp(-1)));fb2:=evalf(exp(-exp(1)));   #Turn e^(1/e) into a float.
> if fb1=fc then   #If c is equal to e^(1/e) then
>  r1:= evalf(exp(1)); #one real root=e.
>  RETURN(r1);
> elif fc>1 and fc<fb1 then #If c is in (1,e^(1/e)), then calculate real roots.
>  r1:=evalf(exp(-W(-log(fc))));   #First root always given by W.
>  r2:=evalf(exp(-W(-1,-log(fc)))); #Second root given by W(-1,x)
>  RETURN({r1,r2});
> elif c=1 then #If c=1, then equation is degenerate: h(1,x) = 1-x
>  r1:=1;
>  RETURN(r1);
> elif fc>=fb2 and fc<1 then
>  r1:= evalf(exp(-W(-log(fc))));
>  RETURN(r1);
> elif fc>0 and fc<fb2 then
>  xcf1:=evalf(log(1/log(fc)*W(-1,1/log(fc)))/log(fc));
>  xcf2:=evalf(log(1/log(fc)*W(1/log(fc)))/log(fc));
>  r1:=evalf(exp(-W(-log(fc))));
>  r2:=fsolve(fc^x=log(x)/log(fc),x,x=0..xcf1);
>  r3:=fsolve(fc^x=log(x)/log(fc),x,x=xcf2..infinity);
>  RETURN({r1,r2,r3});
> elif c=0 then
>  r1:=1;
>  RETURN(r1);
> else
>  RETURN(`No Real Roots.`);
> fi;
> end:

Let's now try our code:
> c:=1.4;
> solveAux2R(c);
{1.886663306, 4.410292793}
> c:=0.0142;
> solveAux2R(c);
{.2905280101, .9178938293, .2013709754e-1}