Jump to content

vkillion

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by vkillion

  1. Thank you for your response. I apologize for not seeing this sooner. My spam filter ate the notification email of a post so I didn't think to check. Since I made that original post, I have done some more research on the topic and have a bit of different information that changes some of the aspects of the problem. I'll post my modified information below. 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 - the addition of H_constant and 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 Let me know if this information helps.
  2. 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
  3. Hello, I have an interesting problem I need help with. I am trying to develop an optimization for a process that requires eigenvalue calculations on several (sometimes thousands) of matrices. These matrices have some special properties. 1. The matrices are Hamiltonian. 2. The matrices are symmetric about the main diagonal. 3. The matrices are mostly sparse. 4. All off-diagonal elements are either 0 or 0.05. 5. The 0.05 elements come in bands. 6. Between iterations, all off-diagonal elements stay the same. That is, only the diagonal changes between iterations. What I am wondering is, if I find the eigenvalues of the first matrix, can I use these results to calculate the others, knowing that only the diagonal has changed? Currently, I am just brute force calling an eigenvalue function on every single matrix, but that is very slow (especially because I eventually want to solve 7776x7776 matrices). I have attached an example of the matrices I am using. Elements are comma delimited and rows are new line delimited. Take a look and let me know what you think. Thank you, Vincent matrix1.txt
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.