Spectral method
In applied mathematics, Spectral methods are algorithms to solve certain kinds of partial differential equations numerically using some sort of fast fourier transform.
Partial differential equations (PDEs) describe a wide array of physical processes such has heat conduction and sound propagation. In many such equations, there are underlying "basic waves" that can be used to give efficient algorithms for computing solutions to these PDEs.
In all cases, one is provided with input data (such as a description of the medium and initial condition for a sound propagation experiment) and a specific PDE governing the physical process. One then writes the input data as a superposition of the basic waves of the PDE. In this form, the solution of the PDE is easily calculated.
A concrete example
Here we presume a basic understanding of basic multivariate calculus and Fourier series. If g(x,y) is a complex-valued function of two real variables, and g is periodic in x and y (that is, g(x,y)=g(x+2π,y)=g(x,y+2π)) then we are interested in finding a function f(x,y) so that
- fxx(x,y)+fyy(x,y)=g(x,y) for all x,y
where fxx and fyy denote the second partial derivatives of f in x and y, respectively.
If we write f and g in Fourier series:
- f=∑aj,kexp(ijx)exp(ijy)
- g=∑bj,kexp(ijx)exp(ijy)
and substitute into the differential equation, we obtain this equation:
- ∑aj,k(-(j2+k2))exp(ijx)exp(ijy)=∑bj,kexp(ijx)exp(ijy)
By the uniqueness theorem for Fourier expansions, we must then equate the Fourier coefficients term by term, giving
(*) aj,k=-bj,k/(j2+k2)
which is an explicit formula for the Fourier coefficients aj,k.
To turn this into an algorithm, only finitely many frequencies are solved for.
Algorithm
- Compute the Fourier transform (bj,k) of g.
- Computer the Fourier transform (aj,k) of f via the formula (*) and the Fourier transform of g.
- Compute f by taking an inverse Fourier transform of (aj,k).
Since we're only interested in a finite window of frequencies (of size n, say) this can be done using a Fast Fourier Transform algorithm. Therefore, globally the algorithm runs in time O(nlogn).