hankel.hankel.SymmetricFourierTransform

class hankel.hankel.SymmetricFourierTransform(ndim=2, a=1, b=1, N=200, h=0.05)[source]

Determine the Fourier Transform of a radially symmetric function in arbitrary dimensions.

Parameters:

ndim : int

Number of dimensions the transform is in.

a, b : float, default 1

This pair of values defines the Fourier convention used (see Notes below for details)

N : int, optional

The number of nodes in the calculation. Generally this must increase for a smaller value of the step-size h.

h : float, optional

The step-size of the integration.

Notes

We allow for arbitrary Fourier convention, according to the scheme in http://mathworld.wolfram.com/FourierTransform.html. That is, we define the forward and inverse n-dimensional transforms respectively as

\[F(k) = \sqrt{\frac{|b|}{(2\pi)^{1-a}}}^n \int f(r) e^{i b\mathbf{k}\cdot\mathbf{r}} d^n\mathbf{r}\]

and

\[f(r) = \sqrt{\frac{|b|}{(2\pi)^{1+a}}}^n \int F(k) e^{-i b\mathbf{k}\cdot\mathbf{r}} d^n \mathbf{k}.\]

By default, we set both a and b to 1, so that the forward transform has a normalisation of unity.

In this general sense, the forward and inverse Hankel transforms are respectively

\[F(k) = \sqrt{\frac{|b|}{(2\pi)^{1-a}}}^n \frac{(2\pi)^{n/2}}{(bk)^{n/2-1}} \int_0^\infty r^{n/2-1} f(r) J_{n/2-1}(bkr) r dr\]

and

\[f(r) = \sqrt{\frac{|b|}{(2\pi)^{1+a}}}^n \frac{(2\pi)^{n/2}}{(br)^{n/2-1}} \int_0^\infty k^{n/2-1} f(k) J_{n/2-1}(bkr) k dk.\]

Methods

G(f, h[, k, ndim]) The absolute value of the non-oscillatory of the summed series’ last term, up to a scaling constant.
__init__([ndim, a, b, N, h])
deltaG(f, h, *args, **kwargs) The slope (up to a constant) of the last term of the series with h
integrate(f[, ret_err, ret_cumsum]) Do the Hankel-type integral of the function f.
transform(f, k, *args, **kwargs) Do the n-symmetric Fourier transform of the function f.
xrange([k]) Tuple giving (min,max) x value evaluated by f(x).
xrange_approx(h, ndim[, k]) Tuple giving approximate (min,max) x value evaluated by f(x/k).