Numerical Fourier transform of an infinite-order polynomial

I was looking to numerically compute the Fourier transform of a function which can formally be represented as the infinite-order polynomial $$\varphi \, (\zeta ) = \sum_{t=0,2,4,\ldots}^\infty (-1)^t\, c_t\, \zeta^t \mbox{ and } c_t>0\, \forall \, t.$$ The coefficients are known to be such that the function $\varphi \, (\xi )$ is oscillatory. As an example, consider the Bessel function, which has the power-series representation: $$J_0 (\zeta) = \sum_{t=0,2,4,\ldots} (-1)^{t/2} \frac{1}{(t/2)!\,\Gamma((t/2)+1)} (\zeta/2)^{t}.$$ In this case, the series can be analytically summed and its Fourier transform $$f (\eta) = \int_{-\infty}^{\infty} \varphi \, (\zeta ) \exp\,(-\mathrm{i}\,\eta\,\zeta)\, \frac{\mathrm{d}\,\zeta}{2\pi}$$ can be calculated exactly. However, in principle, this need not be the case. Hence, I was wondering if there is a way to numerically find the Fourier transform, given a finite number of terms of such a series, without running into the delta function or its derivatives.

For concreteness' sake, returning to the example of the Bessel function, if I knew the coefficients $c_t$ up to, say, $t_{\max}$, could I somehow calculate a function that approximates $1/(\pi\, \sqrt{1-\eta^2})$ (the exact Fourier transform).

• Can you compute a representation of your function in a basis that doesn't blow up at Infinity? For example, could you compute the asymptotic expansion as $ζ \to \infty$? Jun 9 '17 at 0:17

I don't see how to do much with a regular power series. If you can instead generate an asymptotic series, then I think you might be able to do something. For instance, if we use your BesselJ function example:

series[n_] := Series[BesselJ[0,x], {x, Infinity, n}];
approx[n_] := FourierTransform[#, x, t]& /@ Expand @ Normal @ series[n]

It's pretty slow, but here is an approximate FT to asymptotic order 12:

a12 = approx; //Timing

{168.169, Null}

Here is the exact FT:

exact = FourierTransform[BesselJ[0, x], x, t];

Finally, here are plots comparing them:

Plot[{a12, exact}, {t, -5, 5}, PlotLegends->"Expressions"] Plot[a12, {t, -5, 5}] 