Efficient evaluation of a Fourier-like sum
- From: "John L. Barber" <jlbarber@xxxxxxxx>
- Date: Sun, 18 Jan 2009 10:13:51 EST
Greetings esteemed savants:
Suppose we have some set of known real numbers x_j for
1 <= j <= N, and we wish to evaluate the sum
S(k) = sum_{j=1}^N e^{i k x_j}
for some set of values of k. If the x_j are equispaced,
then it is well-known that this sum can be efficiently
evaluated using fast Fourier transform techniques such
that the total time needed to evaluate S(k) for all of
the desired k values scales as N_k log N, where N_k is
the number of k values to be considered.
I have a problem (which stems from the computer
simulation of scattering patterns due to x-ray scattering
from a set of atoms, if anyone is interested) in which I
have no choice in the values of the x_j. They are fixed
and, in general, not evenly spaced. I do have some
freedom in choosing k values. (There are particular k
values at which I am interested in evaluating S(k), but I
can simply evaluate S(k) on a grid and interpolate to get
the k values I want.)
Obviously by brute force I can evaluate the above sum
using O(N N_k) operations, but this is too slow for large
N.
Any hints? Does anyone know of a efficient algorithm for
evaluating this sum? Feel free to massage the set of k
values to make things "nice", if necessary.
Extra points for hints as to a scheme that can be
generalized to the case where k and x_j become 3D
vectors, and the product k x_j in the above sum is
replaced by a dot product.
Thanks very much for any and all help, hints and advice!
.
- Follow-Ups:
- Re: Efficient evaluation of a Fourier-like sum
- From: John L. Barber
- Re: Efficient evaluation of a Fourier-like sum
- From: junoexpress
- Re: Efficient evaluation of a Fourier-like sum
- Prev by Date: Re: English term for divisor
- Next by Date: Re: beginners question. converting radical with fraction to value
- Previous by thread: Re: Interesting limit problem
- Next by thread: Re: Efficient evaluation of a Fourier-like sum
- Index(es):
Relevant Pages
|