# Functional square root of $f(x)=x^2-1$???

What I'm looking for is a function $\phi(x)$ such that $\phi(\phi(x))=f(x)$, where $f(x)=x^2-1$.

I am aware of this stack exchange post: Square root of a function (in the sense of composition)

and furthermore, the post that was mentioned within that post: https://mathoverflow.net/questions/17605/how-to-solve-ffx-cosx/44727#44727

However, using the resources in the latter link, I'm not sure how to start to come to a conclusion. In the top answer in the latter link, two criteria must be met (quoted straight from the answer):

1) The superfunction(flow) of f(x) grows not faster than an exponent

2) Runge phenomenon does not appear.

I have no idea how to test #1; that lies beyond the scope of my mathematical knowledge, and looking at the link for the Runge Phenomenon in #2 seems understandable enough, and testing with the analytic solution provided, it seems to lead to that phenomenon, but I have no idea how to come to that conclusion for sure. The answer also mentions that there are ways to combat Runge Phenomenon, but that also lies beyond the scope of my mathematical knowledge.

• If you're interested, the functional square root of the similar function $$g(x)=2x^2-1$$ is $$g^{1/2}(x)=\cos(\sqrt{2}\arccos(x))$$ – Frpzzd Sep 19 '17 at 23:44

In General: Suppose we have $f(\alpha) = \alpha,$ while $f'(\alpha) = s$ with $0 < s < 1,$ also $f'(x) > 0$ and $f(x) \neq x$ for $x \neq \alpha,$ $C < x < D,$ for constants $C < \alpha < D.$ The first thing we do is move the fixpoint to the origin, with $$g(x) = f(x + \alpha) - \alpha.$$ Then $g'(0) = s.$ As a result, pages 122-123 in KCG or pages 46-47 in Alexander or pages 77-79 in Milnor, we can solve Schroeder's equation $$\psi(g(x)) = s \psi(x)$$ with $$\psi'(0) = 1$$
by $$\psi(x) = \lim_{n \rightarrow \infty} \frac{g^n(x)}{s^n},$$ where $g^1(x) = g(x)$ and then $$g^n(x) = g \left( g^{n-1}(x) \right)$$ From above, $$s \psi(x) = \psi(g(x))$$ so $$\psi^{-1} (s \psi(x)) = g(x ) = f(x+\alpha) - \alpha.$$ Substitute $x \mapsto x - \alpha$ to get $$\psi^{-1} (s \psi(x - \alpha)) = f(x) - \alpha.$$ At this point, we can use $\sqrt s$ to define the half-iterate, $$h(x) = \alpha + \psi^{-1} \left( \sqrt s \; \psi(x - \alpha) \right)$$ We will need the evident $$\psi \left( h(x) - \alpha \right) = \sqrt s \; \psi(x - \alpha)$$ We may now simply calculate $$h(h(x)) = \alpha + \psi^{-1} \left( \sqrt s \; \psi(h(x) - \alpha) \right)$$ $$h(h(x)) = \alpha + \psi^{-1} \left( \sqrt s \; \psi( \alpha + \psi^{-1} \left( \sqrt s \; \psi(x - \alpha) \right) - \alpha) \right)$$ $$h(h(x)) = \alpha + \psi^{-1} \left( \sqrt s \; \psi( \psi^{-1} \left( \sqrt s \; \psi(x - \alpha) \right) ) \right)$$ $$h(h(x)) = \alpha + \psi^{-1} \left( \sqrt s \; \left( \sqrt s \; \psi(x - \alpha) \right) \right)$$ $$h(h(x)) = \alpha + \psi^{-1} \left( s \; \psi(x - \alpha) \right)$$ $$h(h(x)) = \alpha + f(x) - \alpha = f(x).$$

==========================================================================

This one has the advantage that the fixpoint at $\phi = \frac{1 + \sqrt 5}{2}$ has the function's derivative greater than one. This means that there is a real analytic half iterate for, at least, $x > 0.$ All you need to do is solve the Schroeder equation around $\phi.$ I will need to look up some things, but the references you want are Alexander and KCG.

Oh: it is not difficult to prove that there can be no answer for this that extends to the entire complex plane, or even extends to the entire real line. That is, however, not the end of the story.

Alright, pages 46 and 47 in Alexander, A History of Complex Dynamics. We need to use the inverse function to get derivative below $1,$ so we define $$h(x) = \sqrt {1+x}.$$ Or pages 122-123 in Kuczma, Choczewski, and Ger, Iterative Functional Equations.

I need some more time to make an actual computer program. I have done the more difficult case with derivative $1,$ including program, http://mathoverflow.net/questions/45608/formal-power-series-convergence/46765#46765 and later http://math.stackexchange.com/questions/911818/how-to-obtain-fx-if-it-is-known-that-ffx-x2x/912324#912324

Anyway, as I said, your problem is conceptually far simpler.

It is necessary to move the fixpoint to the origin, so $$g(x) = \sqrt {\phi^2 + x \;} - \phi.$$ We will then get the Schroeder function $$\psi(x) = \lim_{n \rightarrow \infty} (2 \phi)^n g^n(x),$$ where $g^1 (x) = g(x)$ and then $$g^n(x) = g (g^{n-1}(x))$$ Here is an example with $x=1,$ showing $\psi(1) \approx 0.88523$

1    0.2840790438404122    0.9192990968507166
2    0.08552494260243937    0.8956288264762806
3    0.02621627545939931    0.888431399703
4    0.008081094572713665    0.8862183392045823
5    0.002495271498931473    0.8855355193262247
6    0.0007708976551425994    0.8853246168742123
7    0.0002382029425400667    0.8852594540251384
8    7.360708310000241e-05    0.8852393185124893
9    2.274567970927954e-05    0.8852330963800049
10    7.028786312091029e-06    0.8852311736375063
11    2.172012962375902e-06    0.8852305794564203
12    6.711887781118975e-07    0.8852303957800051
13    2.074087255277135e-07    0.8852303388330724
14    6.40928197181978e-08    0.8852303215475368
15    1.98057703570953e-08    0.8852303146984961
16    6.120319584468348e-09    0.8852303085424645
17    1.891282686017348e-09    0.885230272694271
18    5.844384975972616e-10    0.8852302824650963
19    1.806013116834038e-10    0.8852297127013157
20    5.580891304646229e-11    0.8852303238549764


===========================================================

int main()
{

double phi = ( 1 + sqrt(5) ) / 2;
double phi2 = 1 + phi;
cout.precision(16);
cout << endl << phi << "  "  << phi2 << endl;

double x = 1.0;
double mult = 1;
for(int n = 1; n <= 20; ++n)
{
mult *= 2 * phi;
x = sqrt( phi2 + x) - phi;
cout << n << "    " << x <<  "    "  << mult * x << endl;
}

return 0;
}


==========================================================

Your function has a fixpoint in the positive numbers where also the tangent (derivative of $f(x)$) is positive, although it is not attracting but repelling. Anyway, a recentering of the polynomial on $f(x)$ allows a polynomial in $g(x)$ without constant term.
From this a powerseries $g_{05}(x)$ representing the halfiterate of $g(x)$ can be constructed.

In this situation of asking only for the functional squareroot (and not for the full fractional iteration to any noninteger iteration-height) the extremely simple "Newton-algorithm" for finding the squareroot of a number can be involved - of course after adaption for finding the squareroot of a formal powerseries. This looks quick&dirty, but gives a correct solution.

I used the software Pari/GP for this.
Definition of the function:

f(x)  = x^2 - 1
fi(x) = sqrt(1+x)   \\ the inverse (not needed here)


Define a new function whose power series is centered around the attracting fixpoint (this is $t_0$ here):

     t0=(1+sqrt(5))/2  \\ fixpoint t0  at 1.61... (repelling)
t1=(1-sqrt(5))/2  \\ fixpoint t1  at -0.61... (attracting) not needed here

g(x) = x^2+2*t0*x       \\ = f(x+t0)-t0  function f() recentered around t0
gi(x)= sqrt(x+t0^2)-t0  \\ inverse of g(x), not needed here


Iterative Newton-algorithm for finding the squareroot of a number, here adapted for formal powerseries:

\\ initializing newton-algo for finding (functional-) squareroot
\ps 64            \\ precision of involved powerseries (64 terms)
g05= x + O(x^64)  \\ initalizing the power series for halfiterate of g(x)

for(k=1,40,g05=(g(serreverse(g05))+g05)/2) \\ iterate(40 times for precis.)
\\ in g05 is now a well approximated formal powerseries


Make a proper functional expression out of it for Pari/GP-calls:

hg(w) = subst(Pol(g05),x,w)  \\ halfiterate of g(x)
hf(x) = hg(x-t0)+t0          \\ halfiterate of f(x) by recentring hg(x)


Testing:

\\ test some values
x0 = 0.2
x05= hf(x0)
x1 = hf(x05)

\\ show comparision
[x0,x05,x1;x0,x0,f(x0)]

\\ output:
\\  x0            x05              x1
[0.200000000000 -0.459584198682 -0.960000001849]  by hg() resp hf()
[0.200000000000 --------------- -0.960000000000]  by f(x)


Make a plot:

ploth(x=-1,3,[x,hf(x),f(x)])


(Plot edited using excel for labeling)