Recursive Integration over Piecewise Polynomials: Closed form?

1.7k Views Asked by At

Is there a closed form to the following recursive integration?

$$ f_0(x) = \begin{cases} 1/2 & |x|<1 \\ 0 & |x|\geq1 \end{cases} \\ f_n(x) = 2\int_{-1}^x(f_{n-1}(2t+1)-f_{n-1}(2t-1))\mathrm{d}t $$ It's very clear that this converges against some function and that quite rapidly, as seen in this image, showing the first 8 terms: first 8 functions of the given recursion. Degrees 0 to 7

Furthermore, the derivatives of it have some very special properties.
Note how the (renormalized) derivatives consist of repeated and rescaled functions of the previous degree which is obviously a result of the definition of the recursive integral:
Degree 7 function, along with first and second derivative, each normalized to have same magnitude.

EDIT
I found the following likely Fourier transform of the expression above. I do not have a formal proof but it holds for all terms I tried it with (first 11). $$ \mathcal{F}_x\left[f_n(x)\right](t)=\frac{1}{\sqrt{2\pi}}\frac{2^n \sin \left(2^{-n} t\right)}{t} \prod _{k=1}^n \frac{2^{k} \sin \left(2^{-k} t\right)}{t} $$

Here an image of how that looks like (first 10 terms in Interval $[-8\pi,8\pi]$):

Fourierspectrum of first 10 terms

With this, my question alternatively becomes:
What, if there is one, is the closed form inverse fourier transform of

$\mathcal{F}_x\left[f_n(x)\right](t)=\frac{1}{\sqrt{2\pi}}\frac{2^n \sin \left(2^{-n} t\right)}{t} \prod _{k=1}^n \frac{2^{k} \sin \left(2^{-k} t\right)}{t}$,
especially for the case $n\rightarrow\infty$?


As a side note, it turns out, that this particular product is a particular Browein integral (Wikipedia) using as a sequence $a_k = 2^{-k}$ which exactly sums to 1. The extra term in the front makes this true for the finite sequence as well. In the limit $k \to \infty$, that term just becomes $1$, not changing the product at all. It is therefore just a finite depth correction.

2

There are 2 best solutions below

0
On BEST ANSWER

Here is a formula for $f_n$:

\[ f_n(x) = \sum_{j=0}^{2^n} \left( \frac{c_n(j) - c_n(j-1)}{2}\frac{\left(2^n x + 2^n - 2j\right)^n H\left(2^nx + 2^n - 2j\right)} {n!2^{n(n-1)/2}} \right). \]

Here $H$ is the Heaviside step function, $c_n$ is defined by \[ c_n(j) = \begin{cases} 0 & \text{if $j<0$}\\ (-1)^{s(j)} & \text{if $0\leq j < 2^n$} \\ 0 & \text{if $j\geq 2^n$} \end{cases} \] and $s(j)$ is the sum of the digits of the binary representation of $j$. (For example $s(13) = s(0\text{b}1101) = 3$.)

While the Heaviside function is crucial to deriving the formula, it can be removed from the final result using the floor function (denoted $\lfloor \cdot \rfloor$):

\[ f_n(x) = \sum_{j=0}^{\lfloor2^{n-1}(x+1)\rfloor} \left( \frac{c_n(j) - c_n(j-1)}{2}\frac{\left(2^n x + 2^n - 2j\right)^n} {n!2^{n(n-1)/2}} \right). \]

Here is a plot of $f_{15}$ using this formula:

f15

Deriving the formula

First, separate the definition into two integrals and change variables, $2t+1 \mapsto t$ in the first, and $2t-1\mapsto t$ in the second, giving

\[ f_{n+1}(x) = \int_{-1}^{2x+1} f_n(t)\ dt - \int_{-3}^{2x-1}f_n(t)\ dt \]

Of course, we can change the -3 to -1 and combine these to a single integral:

\[ f_{n+1}(x) = \int_{2x-1}^{2x+1} f_n(t)\ dt \]

Then rewrite $f_0=(1/2)(H(t+1) - H(t-1))$. Note that the integral of $H(t)$ is $tH(t)$, whose integral is $(t^2/2)H(t)$, and so forth. Now we can write $f_n$ as a single iterated integral, for example

\[ f_3(x) = \frac12 \int_{2x-1}^{2x+1} \int_{2y-1}^{2y+1} \int_{2z-1}^{2z+1} (H(t-1) - H(t+1))dt\ dz\ dy \]

Each integration can be done doing several different changes of variables. This gives rise to the powers of 2 in the denominator.

Notes

Each $f_n$ is symmetric. The part from -1 to -0.5 is repeated four times. Due to the way that Heaviside functions work, it is computationally easiest to compute values for $f_n(x)$ for $x$ closer to -1.

Code

Here is some Python code to compute $f_n(x)$.

from __future__ import division
from math import factorial

def c(j, n):
    if j < 0 or j >= 2**n:
        return 0
    else:
        return (-1)**bin(j).count("1")

def f(x, n):
    numerator = 0
    for j in xrange(int(2**(n-1) * (x+1))):
        numerator += (c(j, n) - c(j-1, n)) * (2**n * x + 2**n - 2*j)**n
    denominator = 2 * 2**(n*(n-1)/2) * factorial(n)
    return numerator/denominator

print f(-0.75, 10)
5
On

Suppose $f$ is a fixed point of the iterations. Then $$f(x) = 2\int_{-1}^x\big(f(2t+1)-f(2t-1)\big)\,\mathrm{d}t,$$ which, upon differentiating both sides by $x$, implies that $$f'(x) = 2\big(f(2x+1)-f(2x-1)\big).$$ I'll assume that $f$ vanishes outside $[-1,1]$, which you can presumably prove from the initial conditions. Then we get $$f'(x) = \begin{cases} 2f(2x+1) & \text{if }x\le0, \\ -2f(2x-1) & \text{if }x>0. \end{cases}$$ This is pretty close to the definition of the Fabius function. In fact, your function would be $\frac{\text{Fb}'(\frac{x}{2}+1)}{2}$

The Fabius function is smooth but nowhere analytic, so there isn't going to be a nice closed form for your function.