Solving the First Auxiliary Real Exponential Equation: cx = x.

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

(Lambert's W function in these articles will be denoted as W).

Preliminaries:

We have seen how the W function readily solves the (complex) exponential equation:

cz=z,

providing all the solutions (which are infinite, since the W is multi-valued), as:

z = -W(k,-log(c))/log(c), for k in Z. (1) (where k denotes the appropriate W branch, and where k=0 denotes the principal branch).

(In effect, the points z above, are all the fixed points of the function f(z) = cz. For details on this, please consult the two articles on infinite exponentials).

We have also seen in the analysis of the complex case, that the iterates of f(z) = cz often become a p-cycle, when we perturb z away from the function's fixed points.

Whenever such p-cycles are formed, we are interested in solving what some authors have denoted as the auxiliary exponential equations f(n)(z) = z, n >= 1. (Please check the references). For example, the first auxiliary exponential equation, is: cz=z. The second auxiliary exponential equation, is: ccz = z. The third auxiliary exponential equation is: cccz = z, and so on. In practice, this amounts to figuring the fixed points of iterates of f(n)(z), for n >=1. In this article, we will address the problem of solving the first auxiliary real exponential equation: cx = x, for c > 0, x in R.



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.
d2g/dx2 = f(x)*ln(c)2.
W(k, x) denotes Lambert's W branch corresponding to k.



Continuity follows from the above definitions and basic analysis, so it is implicitly assumed throughout this article. Note that for c > 0 all the involved functions are analytic everywhere, and derivatives of all orders exist everywhere. The continuity of the LW(-1,x) for x in [-1/e,0), will be addressed in a separate article.
We will approach the problem, using the following 6 lemmas:


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


Lemma 2:
If c = e(1/e), g(x) = 0 admits exactly one real root, xr = e.


Lemma 3:
If 1 < c < e(1/e), g(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, g(x) = 0 admits exactly one real root, xr = e-W(-ln(c)).


Lemma 5:
If c = e-e, g(x) = 0 admits exactly one real root xr = 1/e.


Lemma 6:
If 0 < c < e-e, g(x) = 0 admits exactly one real root, xr = e-W(-ln(c)).


Lemmas 1-6 depend on the following lemmas:


Lemma 7:
If c > 1, then dg/dx = 0 admits exactly one real root:
xcrit = -ln(ln(c))/ln(c).


Lemma 8:
If c < 1, then dg/dx = 0 admits no real roots.


Lemma 3 depends on the following lemmas:


Lemma 9:
The function W(x) is real valued, continuous and strictly increasing for x in [-1/e, +oo).


Lemma 10:
The function W(-1,x) is real valued, continuous and strictly decreasing for x in [-1/e, 0).


We begin with Lemmas 9 and 10:


Proof of Lemma 9:
Please see lemmas on previous articles on the Lambert's W function, particularly the infinite exponentials article, the complex case, W's expansion and approximating the principal branch of the W or check the references particularly [31].


Proof of Lemma 10:
We will take this up in another article, which will be devoted to calculating the W branch corresponding to -1.


Proof of lemmas 7 & 8:
dg/dx = 0, =>
f(x)*ln(c) - 1 = 0, =>
cx*ln(x) - 1 = 0, =>
e(ln(c)*x)*ln(x) = 1, =>
e(ln(c)*x) = 1/ln(c), =>
ln(c)*x = ln(1/ln(c)), =>
xcrit = -ln(ln(c))/ln(c).

Note that if c > 1, => ln(c) > 0, => ln(ln(c)) in R, => xcrit in R, while if c < 1, => ln(c) < 0, => ln(ln(c)) not in R, and Lemmas 7 and 8 follow.



Lemma 11:
If c > 1, then: if x < xcrit, then g(x) is strictly decreasing and if x > xcrit, then g(x) is strictly increasing.
Proof:
It suffices to show that dg/dx > 0, if x > xcrit, and dg/dx < 0, if x < xcrit.
c > 1, => ln(c) > 0.
x < xcrit, => x < -ln(ln(c))/ln(c), => x*ln(c) < -ln(ln(c)), => f(x) < 1/ln(c), => f(x)*ln(c) < 1, => f(x)*ln(c) - 1 < 0, => dg/dx < 0.
Similarly, x > xcrit, => dg/dx > 0,
and the lemma follows.


Lemma 12:
If c < 1, then g(x) is strictly decreasing everywhere.
Proof:
It suffices to show dg/dx  < 0, everywhere.
c < 1, => ln(c) < 0, and f(x) is strictly increasing everywhere.
x < xcrit, => x < -ln(ln(c))/ln(c), => x*ln(c) > -ln(ln(c)), => f(x) > 1/ln(c), => f(x)*ln(x) < 1, => f(x)*ln(x) - 1 < 0, => dg/dx < 0.
x > xcrit, => x > -ln(ln(c))/ln(c), => x*ln(c) < -ln(ln(c)), => f(x) < 1/ln(c), => f(x)*ln(x) < 1, => f(x)*ln(x) - 1 < 0, => dg/dx < 0,
and the lemma follows.


Lemma 13:
If c > 1, then limx->+oog(x)=+oo, and limx->-oog(x)=+oo.
Proof:
The first limit follows trivially from the fact that for sufficiently large positive x, f(x) > x.
The second limit follows trivially from the fact that for sufficiently large negative x, -x > f(-x).


Proof of Lemma 1:

g1.GIF
If c > 1 then, =>
d2g/dx2|x_crit = ln(c) > 0, => m = g(xcrit) is a minimum.
It suffices to show that m > 0, for all x in R.
Note:
g(xcrit) = 1/ln(c)+ln(ln(c))/ln(c).
But c > e(1/e), => ln(c) > 1/e => ln(ln(c)) > -1, => g(xcrit) > 0, and the lemma follows from lemma 11.


Proof of Lemma 2:

g2.GIF

As above, c = e(1/e), => g(xcrit) = 0, and note that xcrit = xr = e, and the lemma follows from lemma 11.



Proof of Lemma 3:

g3.GIF

As above, 1 < c < e(1/e), => g(xcrit) < 0, verify that the aforementioned expressions are roots, and the lemma follows from lemmas 11 and 13.



Proof of Lemma 4:

g4.GIF

e-e < c < 1, => ln(c) < 0.
dg/dx = f(x)*ln(c) - 1 = e(ln(c)*x)*ln(c) - 1. No matter what x is, e(ln(c)*x) > 0, and ln(c) is always < 0, so dg/dx < 0, and g(x) is strictly decreasing everywhere. => It has at most one real root. But (1) gives a real root, so it has at least one real root, => g(x) has exactly one root, that given by (1).



Proof of Lemma 5:

g5.GIF

Similar to the proof of Lemma 4 and note that:
g(1/e) = 0.



Proof of Lemma 6:

g6.GIF

Similar to the proof of Lemma 4.



Now we are ready for some Maple code to solve our equation:

> solveAux1R:=proc(c)
> local fc,fb1,fb2,r1,r2;
> fc:=evalf(c);   #turn c into a float
> fb1:=evalf(exp(exp(-1)));fb2:=evalf(exp(-exp(1)));
> if fc>fb1 then
>  RETURN(`Ro Real Roots`);
> elif fc=fb1 then
>  r1:=evalf(exp(1));
>  RETURN(r1);
> elif 1<fc and fc<fb1 then
>  r1:=evalf(exp(-W(-1,-ln(c))));
>  r2:=evalf(exp(-W(0,-ln(c))));
>  RETURN({r1,r2});
> elif c=1 then #If c=1, then equation is degenerate: h(1,x) = 1-x
>  r1:=1;
>  RETURN(r1);
> elif fb2<fc and fc<1 then
>  r1:=evalf(exp(-W(-ln(c))));
>  RETURN(r1);
> elif fc=fb2 then
>  r1:=evalf(exp(-1));
>  RETURN(r1);
> elif 0<fc and fc<fb2 then
>  r1:=evalf(exp(-W(-ln(c))));
>  RETURN(r1);
> elif c=0 then
>  r1:=1;
>  RETURN(r1);
> else
>  RETURN(`No Real Roots`);
> fi;
> end:

Let's now try our code:
> c:=1.4;
> solveAux1R(c);
{1.886663306, 4.410292792}
> c:=1.142;
> solveAux1R(c);
{1.167717277, 23.90450718}

etc.

Back to Mathematics

web stats

Valid HTML 4.01 Transitional