I saw a question some time ago, asking about the eigenvalues of the matrix $$A=\begin{pmatrix}5&-3&0\\-3&5&0\\0&0&2\end{pmatrix}$$ which were then shown to be $\lambda=\left\{8,2,2\right\}$; and I thought, what a nice feature, we have a symmetric matrix and the eigenvalues seem to be $\lambda=\left\{5-(-3),5+(-3),2\right\}$. So I tried to show that it was indeed a property of the more general matrix $$M=\begin{pmatrix}a&b&0\\b&a&0\\0&0&c\end{pmatrix}$$ and sure enough, I found $\lambda=\left\{a+b,a-b,c\right\}$.
And I remembered that in fact, I had seen a few of these matrices in a Quantum Mechanics course, in the context of perturbation theory, where an Hamiltonian $\hat{H_0}=\text{diag}(a,a,c)$ was said to be degenerate as its eigenvalues were $\lambda=\left\{a,a,c\right\}$, but it was possible to lift the degeneracy by applying a perturbation $\hat{H_p}=\begin{pmatrix}0&b&0\\b&0&0\\0&0&0\end{pmatrix}$, leading to an overall Hamiltonian described by the matrix $M$ above, with distinct eigenvalues.
But I digress. My question is: knowing the eigenvalues, can we build a corresponding matrix? This question (or something close to it) has probably already been asked, but I'm not only interested in building one matrix from a set of eigenvalues, but all possible matrices.
Going back to perturbation theory, my question is directly motivated by trying to find perturbation matrices $\hat{H_p}$ that do not modify the eigenvalues of the unperturbed system $\hat{H_0}$. An (almost trivial) example is $$\hat{H}=\begin{pmatrix}a&0&b\\0&a&0\\0&0&c\end{pmatrix},\quad\hat{H_0}=\begin{pmatrix}a&0&0\\0&a&0\\0&0&c\end{pmatrix},\quad\hat{H_p}=\begin{pmatrix}0&0&b\\0&0&0\\0&0&0\end{pmatrix}$$ where $\hat{H}$ and $\hat{H_0}$ obviously have the same eigenvalues.
Thus, given a set of eigenvalues, is there a way of determining the set of matrices to which they belong?
Depending what you mean by "find", this is straightforward if all eigenvalues are distinct, because then any matrix having those eigenvalues is diagonalizable http://en.wikipedia.org/wiki/Diagonalizable_matrix . In that case every invertible matrix P gives rise to a matrix
using MATLAB notation (i.e., middle matrix is diagonal with eigenvalues on the diagonal). Matrix_with_those_eigenvalues has those eigenvalues. If you do this for all invertiibe matrices P, you will have all possible matrices having those eigenvalues.
The case when eigenvalues are not distinct is left to you as an exercise.