vkillion Posted March 24, 2012 Share Posted March 24, 2012 Hello, I have a linear algebra problem that I need help with. Basically, I need to get the eigenvalues and eigenvectors of several (sometimes tens of thousands) very large matrices (6^n x 6^n, where n>= 3, to be specific). Currently, we are just using MATLAB's eig() function to get them. I am trying to find optimizations for the simulations to cut down on computing time. There are three matrices that we use. H_constant - generated before the loop. Real and symmetric about the diagonal. Does not change after initial calculation. H_location - generated during each iteration. Diagonal. H_final - H_constant + H_location. Therefore, it is also real and symmetric about the diagonal. It is H_final that we need the eigenvalues and eigenvectors of. My theory is that we calculate the eigenvalues and eigenvectors of H_constant (which won't change after the initial calculation) once. We use this result with the eigenvalues of H_location (the diagonal), to get the eigenvalues and eigenvectors of H_final1. This would reduce our computation from tens of thousands of eig() calls to 1 eig() call and tens of thousands of very simple operations. I don't remember enough of my linear algebra to prove such a theory. I hope I was able to explain the problem well enough. I hope someone is able to help me with this problem. Thank you, Vincent Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now