matlab *.m files to solve PDEs using spectral methods.
If these programs strike you as slightly slow, they are. They would
run more quickly if they were coded up in C or fortran. As matlab
programs, would run more quickly if they were compiled using the
matlab compiler and then run within matlab.
Here's a script from the March 31 class discussing power spectra of
various functions
class_mar31a.m It uses the script
find_spec.m .
Here's a script comparing finite difference
approximations of derivatives to spectral approximations of derivatives.
class_mar31b.m It uses the script
d_mid.m,
f.m,
and
fdiff.m and
All of the following codes are on [0,2 pi] and assume periodic boundary
conditions.
Here's a script from the March 31 class comparing different
spectral approaches to solving the heat equation.
class_mar31c.m It uses the scripts
heat4.m, heat5.m, heat6.m, and heat7.m.
This solves the heat equation by treating the linear term explicitly
heat4.m
This solves the heat equation by treating the linear term implicitly
heat5.m
This solves the heat equation by Crank-Nicolson
heat6.m
This solves the heat equation exactly
heat7.m
Here's a script from the April 7 class comparing different
spectral approaches to Burger's equation
compare_burgers.m .
It uses the scripts
burgers_ab.m, burgers_ee.m, burgers_ie, and burgers_if.m.
This solves Burger's equation by treating both the linear term and the
nonlinear term explicitly
burgers_ee.m .
Here's a
tester script.
This solves Burger's equation by treating the linear term implicitly
and the
nonlinear term explicitly
burgers_ie.m
Here's a
tester script.
This solves Burger's equation using second-order Adams-Bashforth
burgers_ab.m
Here's a
tester script.
This solves Burger's equation using a first-order integrating factor
method
burgers_if.m
Here's a
tester script.
Here's the script where we looked at the effect of diffusion for initial
data which results in a finite-time shock when there's no diffusion
class_Apr7.m
Here's a script from the April 9 class comparing different
spectral approaches to the Nonlinear Schroedinger equation
class_Apr9.m .
It uses the scripts
split_schroedinger1.m,
split_schroedinger2.m, and
split_schroedinger3.m.
This solves the NLS using an O(k) splitting method:
split_schroedinger1.m .
This solves the NLS using the O(k^2) Strang splitting method:
split_schroedinger2.m .
This solves the NLS using an O(k^4) method which is Strang splitting
accelerated via Richardson extrapolation:
split_schroedinger3.m .