Creating a matrix by setting eigenvalues

Is it possiable to create a matrix be setting the eigenvalues you wish to end up with?

I am trying to create a 3X3 random matrix with a set of repeated eigenvalues and was wondering is it's possible to set the eigenvalues and then generate  matrices for them.

John Fredsted's picture

Transformations

A tip: Let D be a diagonal matrix consisting of your eigenvalues. Then, the matrix

U . D . HermitianTranspose(U);

where U is any unitary matrix will have the very same eigenvalues. If your eigenvalues are all real and you want to use only real-valued transformation, then you can replace the above by

Q . D . Transpose(Q);

where Q is any orthogonal matrix.

another transformation

If you don't care whether or not your matrix is symmetric or Hermitian, then you can use any nonsingular matrix, R to transform your diagonal matrix of eigenvalues.

R.D.R^(-1);

So you can generate R using RandomMatrix, but you should check that it is nonsingular. This is still not the most general way, but is useful for most purposes (the matrices generated are diagonalizable, with diagonal Jordon forms).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
}