I have a problem where I have $n$ commuting matrices $M\_1,\dots,M\_n$. It is a well-known fact that commuting matrices are simultaneously diagonalizable/triangularizable. I need to find the eigenvalues of these matrices, but I need to know the eigenvalues grouped up by the common eigenspaces.


In exact arithmetic, this would be as easy as Schur-factorizing $M\_1 = UT\_1U^\*$, and then computing $T\_i = U^\*M\_iU$. However, in floating-point arithmetic, it is my understanding that U may be computed inaccurately when the eigenspaces are poorly conditioned (i.e. when the eigenvalues are clustered).


Is there a stable numerical method for performing this computation?



Numerical method for simultaneous computation of eigenvalues of a family of commuting matrices
For small Hermitian (or real symmetric) matrices, yes, but really this is a hard problem not fully solved. See [1,2] for algorithms. The Cardoso paper [2] looks at the non-commuting case, but in the commuting case should minimize the off diagonal errors with respect to the Frobeneius norm.


I don't know about about getting matrices simultaneously into upper triangular form. I would look at papers that cite these two papers.


[1] Bunse-Gerstner, Angelika, Ralph Byers, and Volker Mehrmann. "Numerical methods for simultaneous diagonalization." SIAM journal on matrix analysis and applications 14.4 (1993): 927-949.


[2] Cardoso, Jean-François, and Antoine Souloumiac. "Jacobi angles for simultaneous diagonalization." SIAM journal on matrix analysis and applications 17.1 (1996): 161-164.


