Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Eigenvalues of Matrix Addition

  1. Mar 24, 2012 #1

    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,

  2. jcsd
  3. Mar 24, 2012 #2


    User Avatar
    Science Advisor
    Gold Member

    The eigenvalues of a sum of matrices C=A+B equal the sum of their eigenvalues, that is, c_n = a_n+b_n, only in the most special of cases. A and B diagonal is one such case. In general your proposed approach is invalid.
  4. Apr 11, 2012 #3
    Thank you for your response.

    I knew it wouldn't be as easy as adding them together. I wonder though if there isn't a closed-form solution to this, maybe there are some approximations we can make.
  5. Apr 12, 2012 #4


    User Avatar
    Science Advisor

    IF A and B have the same eigenvector, v, then [itex](A+ B)v= Av+ Bv= \lambda_A v+ \lambda_B v= (\lambda_A+ \lambda_B) v[/itex]
    but that is a very special situation.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook