MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

Block diagonalisation of matrices




Hello everybody,

I was wondering whether there exists a function which performs the
so-called  block diagonalisation. (For example a fucntion which returns
the permutation  vector for the basis transformation.)


To illustrate this, consider the following matrix:

                    0    0    0    0    -I   0

                    0    0    0    I    0    -I

                    0    0    0    0    I    0

                    0    -I   0    0    0    0

                    I    0    -I   0    0    0

                    0    I    0    0    0    0


which should be converted to:

                     0    -I   0    0    0    0

                     I    0    -I   0    0    0

                     0    I    0    0    0    0

                     0    0    0    0    I    -I

                     0    0    0    -I   0    0

                     0    0    0    I    0    0


The permutation vector for the basis transformation is:

{1,5,3,2,4,6}

Just searched through mathsource, but couldn't find the feature I was
looking for. Does anyone know whether such a function has already been
implemented? Or, in case this code doesn't exist yet, does anyone have
any ideas how to  implement this (time)efficiently?

Thanks in advance for any help!


Marlies Brinksma




  • Prev by Date: My own sum
  • Next by Date: Sorting of Data Lists
  • Prev by thread: Re: My own sum
  • Next by thread: Sorting of Data Lists