Homework #4: "Look ma! I computed my first eigenvalue all on my very own"

Posted 3/5; Due 3/24


We've been talking about methods for computing eigenvalues and eigenvectors of symmetric matrices. As an interesting application, we noticed that we could compute the vibrational modes of a thin plate as an eigenproblem. See, for example, the Wikipedia article on the Helmholtz equation.

An interesting question comes from the following observation: if I know the shape of the plate, I can compute the eigenvalues of the associated Helmholtz equation (the frequencies of the vibrations). So, if I know the eigenvalues, can I compute the shape? That is, a violin sounds different than a guitar sounds different than a piano even if they're all playing middle "C". Are there any two distinct instrument shapes that sound the same? (See also the Wikipedia article, "Hearing the shape of a drum".)

We're going to discretize the Helmholtz equation, and find the eigenvalues and eigenvectors of that discrete problem instead. The discrete problem will be a fair representative of the continuum only for the lowest frequency eigenmodes. Since these also have the smallest wave number (the longest wavelength), and the eigenvalue goes as the square of the wave number, these modes have the smallest eigenvalues. (The square of the wave number is non-negative, and there are no zero modes, so these are all positive and "smallest" means "closest to zero".)

See also:

The software used in this homework consists of:


The basics

Things I'd like to see you do if you have time

More challenging places to explore


As before, the first thing I'm gonna do is test your code. If it doesn't work, you better already know that and have told me in advance. In that case, you should at least:

Note that the last two are often different things.


Ins and outs of the code

For each leaf directory in the tree (for each shape at a given mesh resolution):

Test cases

Check your results using "eig" (dense) or "eigs" (sparse) in Matlab. When you make your plots, visually check that they jibe with your physical intuition.

All the meshes are in the "plates" directory. There's a gzipped tarball for each shape. Each leaf directory in the tree contains a copy of each of the necessary files (so you don't need to go copying the scripts all around).