[Date Index]
[Thread Index]
[Author Index]
RE: Functional decomposition (solving f[f[x]] = g[x] for given g)
*To*: mathgroup at smc.vnet.net
*Subject*: [mg71839] RE: [mg71764] Functional decomposition (solving f[f[x]] = g[x] for given g)
*From*: "Ingolf Dahl" <ingolf.dahl at telia.com>
*Date*: Thu, 30 Nov 2006 06:05:45 -0500 (EST)
*Reply-to*: <ingolf.dahl at telia.com>
Hi Kelly,
Here is a rapid amateur answer (but without scary rhymes, as in my last
answer). If you are satisfied with the numerical values of the function, you
can investigate
g[x_]:=1+x^2;
ginv[x_]:=Sqrt[x-1];
f[x_Real]:=Nest[ginv,Power[Nest[g,x,9],Sqrt[2]],9]
f[x_Real] appears to be a good solution to f[f[x]] == g[x] to approximate
machine precision. The solution is based on two observations:
1) Nest[g,x,9] is equivalent to Nest[f,x,18], and we reach very large values
when this is calculated. There g[x] is approximately equal to x^2 (to
machine precision), and f[x] can be approximated by x^Sqrt[2]. Thus we might
reach a good approximation of Nest[f,x,19] by Power[Nest[g,x,9],Sqrt[2]].
2) We can then apply the inverse function ginv of g 9 times to reach f[x].
The relative error is reduced by the application of the inverse function.
We can note that f[0.] is 0.6420945043908285` which do not appear to be a
known mathematical constant. But now it is. (If someone can check... I
cannot reach the "The Inverse Symbolic Calculator" at CESM. Is it down?)
Generalize and write f[x] as DecompositionPower[x,1/2] and the solution to
f[f[f[x]]]\[Equal]g[x] as DecompositionPower[x,1/3] For the given function g
then we can try
DecompositionPower[x_,p_]:=Nest[ginv,Power[Nest[g,x,9],Power[2,p]],9]
and we might for instance plot
Plot[DecompositionPower[0.,p],{p,0,1}]
The function DecompositionPower[x_,p_] should be quite easy to generalize to
a large set of polynomial functions g. Maybe it then should have the name
FractionalNest?
Best regards
Ingolf Dahl
-----Original Message-----
From: Kelly Jones [mailto:kelly.terry.jones at gmail.com]
Sent: 28 November 2006 12:04
To: mathgroup at smc.vnet.net
Subject: [mg71839] [mg71764] Functional decomposition (solving f[f[x]] = g[x] for
given g)
Given a function g[x], is there a standard methodology to find a
function f[x] such that:
f[f[x]] == g[x]
A "simple" example (that doesn't appear to have a closed form solution):
f[f[x]] == x^2+1
There are probably several (approximable? power-series-expressible?)
answers, but the most natural answer would be everywhere positive and
monotone increasing for x>0.
For x^2, there are at least two continuous solutions: x^Sqrt[2] and
x^-Sqrt[2], the former being more "natural". It's somewhat amazing
that x^2+1 is so much harder.
Of course, the next step would be to find f[x] such that:
f[f[f[x]]] == g[x]
for given g[x], and so on.
Thought: is there any operator that converts functional composition to
multiplication or something similar? That would reduce this problem to
find nth roots and applying the inverse operator?
Other thought: For some reason, taking the geometric average of the
identity function and g, and then iterating, seems like a good
idea. EG, Sqrt[x*g[x]], Sqrt[x*Sqrt[x*g[x]]], and so on.
--
We're just a Bunch Of Regular Guys, a collective group that's trying
to understand and assimilate technology. We feel that resistance to
new ideas and technology is unwise and ultimately futile.
Prev by Date:
**Re: funny question**
Next by Date:
**subscript question**
Previous by thread:
**Re: Functional decomposition (solving f[f[x]] = g[x] for given g)**
Next by thread:
**Using Select within Map**
| |