Computation of a simultaneous block-diagonalization
Let n be a positive integer and consider of finite set S⊂Mn(C) such that S∗=S (i.e. if M∈S then M∗∈S). The algebra generated by S is a finite dimensional ∗-algebra over C, so is isomorphic to a direct sum of matrix algebras, i.e. there are n1≤n2≤⋯≤nr such that:
⟨S⟩≃r⨁i=1Mni(C)
I know how to get ⟨S⟩ by using FiniteDimensionalAlgebra(CC,[M for M in S])
.
Question: How to compute with SageMath the change of basis P such that for all M∈S, we have P−1MP block-diagonal as for the above decomposition?
Remark: When the matrices commute over each other, it is called a simultaneous diagonalization, and I know how to compute it using jordan_form(transformation=True)
several times.
In some sense, what I am looking for in general is how to compute a simultaneous block-diagonalization
As this question seems to be not "really" about SageMath, I just posted it on MathOverflow: https://mathoverflow.net/q/341793/34538