Matrix diagonalization Hi, guys! I've graduated some time ago, and by now have completely fogotten all those matrix rules. Could you please advise me. The problem is following: I have a large square matrix (like 1000x1000) and I have to rise this matrix to a large power, like 1000. The matrix is quite a sparse one. It looks like this: x0x00000000000000000 0x000000000000000000 000x00x0x0x0x0x0x0x0x 0xx0xx00000000000000 00x00000000000000000 000000x0000000000000 00x00000000000000000 00000000x00000000000 00x00000000000000000 0000000000x000000000 00x00000000000000000 000000000000x0000000 00x00000000000000000 00000000000000x00000 all x's are different, all zero's are just zero's. So, my first quess would be that I have to diagonalize the matrix somehow. But I don't remember how to do this. I want to try manually first. Then if it fails - numerically (I prefer fortran). Any suggestions on how to diagonalized? The right bottom part of the matrix looks like it is already diagonal (although the elements are not on the main diagonal). Any help will be greatly appreciated.