The difficulty with the given program is that it doesn't work for all
possible numerical values of .You can see that when
is too large (when
is
too small)
the solution in the interior region of the data table
contains growing oscillations.
What is happening is that the low-frequency part of the solution
is OK (for a while), but the high-frequency part is diverging.
The precise reason the divergence occurs is the subject of
some mathematical analysis that will be postponed
till page
.
At wavelengths long compared
to
or
, we
expect the difference approximation to agree with the true
heat-flow equation, smoothing out irregularities in temperature.
At short wavelengths the wild oscillation shows that the difference
equation can behave in a way almost opposite to the way the
differential equation behaves.
The short wavelength discrepancy arises because difference operators
become equal to differential operators only at long wavelengths.
The divergence of the solution is a fatal problem because the subsequent
round-off error will eventually destroy the low frequencies too.
By supposing that the instability arises because the time derivative is centered at a slightly different time t+1/2 than the second x-derivative at time t, we are led to the so-called leapfrog method, in which the time derivative is taken as a difference between t-1 and t+1:
![]() |
(33) |
3rx | ||||
3c | ||||
1c| | 1|c | |||
1c| | -1 | 1|c | ||
1c| | 1|c | |||
1|c| | ||||
1|c| ![]() |
4![]() |
![]() |
||
1|c| | ||||
1c| | 1|c | |||
1c| | +1 | 1|c | ||
1c| | 1|c | |||
t | 4c |
To avoid all these problems (and get more accurate answers as well), we now turn to some slightly more complicated solution methods known as implicit methods.