# Is there a way to block diagonalize a matrix?

I am trying to block diagonalize a four by four symbolic matrix in to two matrices of dimension two by two matrices. Is there a simple way to do it in sage?

edit retag close merge delete

Sort by ยป oldest newest most voted

How do you know that this is possible to do?

Some 4x4 matrices are not block diagonalizable into 2x2 blocks. For example a nilpotent matrix with a singe Jordan block. If you know for some reason that your symbolic matrix is diagonalizable into 2x2 blocks then probably there is a way to do this, but I don't think possible to write an algorithm that can decide if a symbolic matrix is block diagonalizable.

more

I know that my matrix block diagonalizable from physics arguments. So can you recommend some place where I can read about it?

( 2011-11-30 19:57:23 -0500 )edit

Can you give me an example of a symbolic matrix that is block diagonalizable? Unless the matrix is of a very special form it must depend heavily on assumptions about the domain of the symbolic entries.

( 2011-12-11 09:05:13 -0500 )edit

The matrix I am trying to block diagonalise is [[Cos(theta),Sin(theta),0,mu],[-Sin(theta),Cos(theta),mu,0],[0,mu,Cos(theta),Sin(theta)],[mu,0,-Sin(theta),Cos(theta)]]. And I am trying to get rid of the mu in the off-diagonal block. I know it is possible because it is a Hamiltonian and I can always go to a basis in which the two systems decouple.

( 2011-12-12 05:35:31 -0500 )edit

The inverse of a matrix isn't guaranteed to exists, but there is a function for it anyway.

You can use SciLab's bdiag (numeric). http://help.scilab.org/docs/5.3.2/en_...

more

@chicago is asking about symbolic methods, not numerical.

( 2011-12-11 09:03:00 -0500 )edit