[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [FUN] CodeGolf: solve equation x^x=C
- From: Dirk Laurie <dirk.laurie@...>
- Date: Fri, 28 Jun 2019 17:37:01 +0200
Op Vr. 28 Jun. 2019 om 15:24 het Albert Chan <albertmcchan@yahoo.com> geskryf:
>
> On Jun 28, 2019, at 8:37 AM, Albert Chan <albertmcchan@yahoo.com> wrote:
> > x^x = c
> > x ln(x) = ln(c)
> > x = ln(c)/ln(x) = log(c,x)
> >
> > Above iterated solution converge only if denominator ln(x) > 1
> > x > e
> > c = x^x > e^e ~ 15.155 < 15.5
>
> I made a mistake about the constant 15.5
> It had nothing to do with e^e, but with the initial guess of x
>
> With initial guess of 3, and actual x<3, we have
> x0 = 3, x1 = log(c,3), x2 = log(c, log(c,3)) ...
> Solving x2<3, we get c > 15.21708982
>
> Had we use a higher guess, say 4, we would have c > 16
You were right the first time round. For the iteration to converge, we
need (a) that the equation x^x = C has a unique solution (b) that the
iteration function has derivative absolutely less than 1 in a
neighborhood of that solution (c) the initial value lies in that
neighborhood.
(a) is no problem in this case.
Iteration function f(x) = log(C)/log(x)
Derivative: f'(x) = -log(C)/(log(x))^2/x
Hence the neighborhood is x*log(x)^2 > log(C)
The initial value (taking x=nil) is log(C).
Thus C must satisfy log(log(C))^2 > 1, giving C>e^e.