Jump to content

Spectral method

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Loisel (talk | contribs) at 04:22, 10 June 2003 (this is the spectral method). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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

  1. Compute the Fourier transform (bj,k) of g.
  2. Computer the Fourier transform (aj,k) of f via the formula (*) and the Fourier transform of g.
  3. 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).