# Chebyshev spectral differentiation via FFT

I am using the Chebyshev spectral differentiation technique that is described concisely under "details" here. The idea is to take the initial data $v_0,v_1\,...,v_N$ and store it in union with itself as the vector $$V = [v_0\,v_1\,...\,v_{N-1}\,v_N\,v_{N-1}\,v_{N-2}\,...\,v_1]^\top$$

From there, the Fourier transform of this vector $V$ is taken. However, for the Fourier transform to provide a good interpolation of the data in $V$, $V$ should be smooth and periodic. Although $V$ is continous and periodic, there is (generally) a discontinuity in its first derivative (around the entries $v_{N-1},v_N,v_{N-1}$). Why, then, is this method of differentiation still so effective?

• The way they arranged the array confused you. It's just packing the data to be able to use U=Re(FFT(V)) later. The more effective would be to use Discrete Cosine Transform. They just followed the recipe from Trefethen, ch. 8. since this is what they can implement in Mathematica easily. May 9, 2013 at 12:16
• Thanks Johntra. I think I may have asked the question too unclearly - I figured out the answer though, and documented it below. May 9, 2013 at 13:14

It is important to recognize that the initial data $v_0,...,v_N$ is not stored on a uniform grid, but rather at the Chebyshev points $$x_j = \cos\frac{\pi j}{N},\qquad j=0,...,N.$$
Now as long as the initial data has a decent polynomial interpolation, then \begin{align} v_j = p(x_j) &= a_0 + a_1x_j + \cdots + a_Nx_j^N \\ &=a_0 + a_1\cos\frac{\pi j}{N} + \cdots + a_N\cos^N\frac{\pi j}{N} \\ &=a_0 + a_1\cos\theta_j + \cdots + a_N\cos^N\theta_j = f(\theta_j) \end{align} where $\theta_j = \pi j/N\in[0,\pi]$ is a uniform grid. Therefore, on the new uniform grid the data is an even function (hence the powers of cosine), and in particular $df/d\theta|_{\theta=0} = 0$. Thus the function can easily be extended to $[-\pi,\pi]$, giving a smooth, even, periodic function with data at uniformly-spaced gridpoints: ripe for the Fourier transform.