Let $f(x)$ be a function of $x\in(0,1)$ that I can compute numerically. I expect that there exists a convergent decomposition of the type $$ f(x) = \sum_{n=0}^\infty a_n x^{\Delta_n} $$ for some real numbers $a_n$ and $\Delta_0 < \Delta_1 < \Delta_2 < \cdots$. How can I numerically determine $\Delta_0,\cdots,\Delta_N$?
-
$\begingroup$ Can you explain why you are interested in this problem? $\endgroup$– user35593Commented Aug 25, 2016 at 9:45
-
$\begingroup$ A sketch of an approach: For small $x$ we have $f(x)\approx a_0 x^{\Delta_0}$. So you can take the logarithm and polyfit. Then you can consider $f(x)-a_0x^{\Delta_0}$ and iterate the process. $\endgroup$– user35593Commented Aug 25, 2016 at 9:47
-
$\begingroup$ The problem is interesting in conformal field theory, where four-point correlation functions behave as my function $f(x)$. The values $\{\Delta_n\}$ essentially determine the space of states of the theory. In my case I can compute $f(x)$ by summing an expansion in powers of $1-x$, and I need to decompose it into powers of $x$. $\endgroup$– Sylvain RibaultCommented Aug 25, 2016 at 9:50
-
1$\begingroup$ In my experience the small $x$ behaviour does not give a good precision for $\Delta_0$, let alone higher $\Delta_n$. This may be because my numerical determination of $f(x)$ becomes less precise near $x=0$. $\endgroup$– Sylvain RibaultCommented Aug 25, 2016 at 9:52
-
$\begingroup$ Can you post that "expansion in powers of $(1-x)$"? If it is good enough, there is a chance that the answer may be given in terms of its coefficients directly without passing through any computations of $f(x)$, which would be certainly better from any standpoint. $\endgroup$– fedjaCommented Aug 25, 2016 at 12:27
1 Answer
I'm not 100% on this (forget where I read it) but fractional calculus can deal with this problem. This is too long to post as a comment but I think it might help.
If we take the Riemann-Liouville operator $D^{a}$ that satisfies $D^a x^b = \frac{\Gamma(b+1)}{\Gamma(b-a+1)}x^{b-a}$ it gives $D^{\Delta_0}f(x)\Big{|}_{x=0} = \Gamma(\Delta_0 + 1)a_0$. To solve $a_1$ just take $D^{\Delta_1}(f(x) - a_0x^{\Delta_0}) \Big{|}_{x=0}$, and iterating
$$\Gamma(\Delta_n + 1)a_n = D^{\Delta_n} (f(x) - \sum_{j=0}^{n-1} a_jx^{\Delta_j})\Big{|}_{x=0}$$
Now you have to know $\Delta_n$, and that the expansion exists, but this solution should work. To find the operator $D^a$ just google Riemann-Liouville Differintegral.
-
$\begingroup$ If I knew $\Delta_n$ I could find $a_n$ by solving the linear system $f(x_i) = \sum_{n=0}^{N-1} a_n x_i^{\Delta_n}$ for $N$ randomly chosen positions $x_i$. The difficult part is to find $\Delta_n$. $\endgroup$ Commented Aug 26, 2016 at 9:27