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>
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
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. Thus we might
reach a good approximation of Nest[f,x,19] by Power[Nest[g,x,9],Sqrt].
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
and we might for instance plot
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
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 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 and
x^-Sqrt, 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:
Previous by thread:
Re: Functional decomposition (solving f[f[x]] = g[x] for given g)
Next by thread:
Using Select within Map