# Solving a 2D Poisson equation with Neumann boundary conditions through discrete Fourier cosine transform

by JARNO ELONEN (elonen@iki.fi), 21.12.2004

The book NUMERICAL RECIPIES IN C, 2ND EDITION (by PRESS, TEUKOLSKY, VETTERLING & FLANNERY) presents a recipe for solving a discretization of 2D Poisson equation numerically by Fourier transform ("rapid solver"). While it shows the explicit solution for the problem with several other boundary conditions, Neumann condition is handled quite briefly. The following demonstrates in detail how to derive an equation for using the definition of the inverse Fourier cosine transform. The solution turns out, perhaps not very surprisingly, to be exacly the same as for the sine transform.

The finite difference equation is:   ...from which we need to solve . First, some abbreviations:      Now, the inverse 2D discrete cosine transform is:   Substitute this to both sides of the above finite difference equation and remove the summation to obtain:   Using the following lemmas...                ...we simplify and solve for :                         Hence, to solve the Poisson equation, first compute the 2D cosine transform , then calculate... ...and finally do an inverse cosine transform to obtain . In practice, when the denominator becomes 0, substitute it with some small to avoid division by zero.