## Solving the Heat and Wave Equations with the (Fast)
Discrete Fourier Transform

Alkiviadis G. Akritas*,
Jerry Uhl**, and
Panos S. Vigklas*

*Department of Computer and Communication Engineering

University of Thessaly

GR-38221, Volos, Greece

**Department of Mathematics

University of Illinois at Urbana-Champaign

Urbana, IL 61801, USA

**Abstract.**
In this paper we present a very readable derivation of the heat (and
wave) equations. This is achieved by first using the Fast Fourier
Transform (FFT) to implement, in Mathematica, the Fast Fourier Fit (FFF)
- a procedure that helps us approximate periodic functions with sines
and cosines. The FFF program described in this paper is easy to follow
and we demonstrate its use with an example.

The heat equation problem can be stated as follows: Start with a heated
wire L units long with the temperature allowed to vary from position to
position on the wire. The function startertemp(x) gives the temperature
at the point x, for 0 <= x <= L, of the wire at the start of the
experiment. Without loss of generality, we take startertemp(0) =
startertemp(L) = 0. (That way we can easily obtain a pure sine
approximation.)
Think of the wire as the interval 0 <= x <= L. At the start of the
experiment, we instantly cool the ends at x = 0 and x = L and maintain
these ends at temperature 0; we also take pains to guarantee that the
rest of the wire is perfectly insulated.
The problem is to find a formula for temp(x, t), so that we can tell the
temperature at a given point x, at time t after the start of the
experiment.

With the FFF program in place, we can easily obtain the formula for the
solution temp(x, t)
of the heat equation problem as follows:
a. Adjust the function startertemp(x) (that is, make startertemp(x) an
odd function) and using the fast Fourier fit obtain a sines only
approximation of it, for a given accuracy n. Given the original
assumptions startertemp(0) = startertemp(L) = 0, this step is easily done.
b. Pick off the coefficients A(k) of the sin(k Pi x/L) terms of the sines
only approximation of the adjusted startertemp(x), and
c. Write down the formula for temp(x, t) as:

temp(x, t) = Sum[A(k) e^{-(k Pi/L)^2 t} sin(k Pi x/L), {k,1,n}]

We conclude with a detailed explanation and an example.