(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.
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.
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.
As above, c = e(1/e), => g(xcrit) = 0, and
note
that xcrit = xr = e, and the lemma follows from
lemma
11.
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.
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).
Similar to the proof of Lemma 4 and note that:
g(1/e) = 0.
Similar to the proof of Lemma 4.
> 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.