began implementation of spectral method:
helper function basis() calculates the value of any basis function at a particular location
spectral() returns a function of position and time corresponding to the sum of basis functions represented by the Fourier coefficients f. Current time dependence for each basis function is placeholder. the func() returned by spectral() currently acts as the reverse FFT of the function at time (j) 0.
Tasks: Figure out how to force boundary conditions to be satisfied for all time, perhaps selecting basis functions more carefully and altering their directions of travel.