Spherical harmonics and Fourier series
During classical electrodynamics I had a bit of a hard time to understand what spherical harmonics are in a graphic way. If you have some intuition for Fourier series, I can give you a graphic way to understand the purpose of spherical harmonics.
Any square integrable function that is defined on a compact interval can be expanded into a Fourier series. That means that it can be written as a sum of various sine and cosine functions. If you just look at the $\cos(nx)$ and $\sin(nx)$ (where $n \in \mathbb N$) you see that they are higher frequencies or overtones.
You can also do this with functions of two dimensions. Say you have $f(x, y)$ defined on a square. Then you can express this as a Fourier series in $x$ and in $y$ by forming $\cos(nx) \cos(my)$, $\cos(nx) \sin(my)$ and so on. I have plotted the first few $\cos$ terms here:
That was created in Mathematica 9 with:
GraphicsGrid[ Table[DensityPlot[Cos[a x] Cos[b y], {x, -Pi, Pi}, {y, -Pi, Pi}, PlotRange -> Full], {a, 0, 3}, {b, 0, 3} ] ]
These functions of $x$ and $y$ that are plotted above serve as a basis of the Hilbert space of square integrable functions $L^2$. You will need to include the terms with $\sin$ and the mixed ones as well.
You could also extend this and replace $\cos$ and $\sin$ with $\exp(\mathrm i x)$ and $\exp(- \mathrm i x)$ to get complex valued functions. The principle stays the same, except that you can now expand a complex function into such a series.
Spherical harmonics are the same idea, just on a sphere! Think of a function that is defined on a sphere, like the temperature on the surface of the earth. Then you can expand this temperature into a sort of Fourier series. The simple $\cos(nx)$ and $\sin(mx)$ now become the $Y_{l,m}(\theta, \phi)$ functions where $l$ and $m$ take the role of $n$ and $m$ before.
Since they are complex functions, one can plot the absolute value, the real or imaginary part. Here is the absolute value
That was generated with:
GraphicsGrid[ Table[ SphericalPlot3D[ Abs[SphericalHarmonicY[l, m, theta, phi]], {theta, 0, Pi}, {phi, 0, 2 Pi}, PlotRange -> Full ], {l, 0, 3}, {m, -l, l} ] ]
The real part:
Generated with:
GraphicsGrid[ Table[ SphericalPlot3D[ Re[SphericalHarmonicY[l, m, theta, phi]], {theta, 0, Pi}, {phi, 0, 2 Pi}, PlotRange -> Full ], {l, 0, 3}, {m, -l, l} ] ]
And the imaginary part last:
Generated with:
GraphicsGrid[ Table[ SphericalPlot3D[ Im[SphericalHarmonicY[l, m, theta, phi]], {theta, 0, Pi}, {phi, 0, 2 Pi}, PlotRange -> Full ], {l, 0, 3}, {m, -l, l} ] ]