This is the mail archive of the
gsl-discuss@sourceware.org
mailing list for the GSL project.
Does anybody know how to use FFT to compute numerical integration?
- From: Michael <comtech dot usa at gmail dot com>
- To: help-gsl at gnu dot org, gsl-discuss at sources dot redhat dot com
- Date: Wed, 27 Jun 2007 20:41:16 -0700
- Subject: Does anybody know how to use FFT to compute numerical integration?
The FFT used for numerical integral has the problem of non-adaptive sample
points, which is inefficient.
However I have to use it in my 2D integration problem, for the following
reason:
My 2D integration is:
Integrate( F(v) * FourierTransform[g(t)] (v), v from -infinity to
+infinity ).
------------
g(t)'s evaluation is costly. So I plan to fix the parameter for g(t), and
compute the Fourier Transform of g(t) only once, and store in memroy. And
then in calibration loop, I only vary the parameters for F(v). And each time
for each different set of parameters of F(v), I compute the dot-product of
F(v) sample points and the FT[g(t)] sample points to obtain approximation to
the integral.
My question is: how to improve the accuracy of FFT-based integration? I know
it's inefficient, but is there any remedy at least?
Moreover, is there a better adaptive quadature based "smart" integration
method that can help me deal with the above situation efficiently? I am
thinking of doing a cache for the Fourier Transform of g(t), which is
FT[g(t)](v), since adaptive quadature based integration may sample different
point of FT[g(t)](v) each time... but perhaps the overhead introduced in the
cache may outweigh the smart adaptive integration itself...
Any suggestions? Thanks a lot!