1
$\begingroup$
    function [R, RI , S ] = Matrix_block (A,N)
[U,D]= schur (A);
E=ordeig(D) ;
[R, S]= ordschur (U,D, abs (E) <1000* eps ) ;
RI=R';
 m= max(max(R* RI-eye (2*N) ) ) ;
if m >100* eps;
 sprintf( 'R not unitary , N: %d , Maximum : %d \n ' ,N,m);
 end
C = R*S*RI-A;
m= max(max( abs (C) ) ) ;
if m >10* eps ;
sprintf ('Rtransformeriet , N: %d , Maximum : %d \n', N,m)
end

I am using the above code to get the block diagonal form of a certain antisymmetric matrix with non-zero entries. I am getting the block diagonal form to be always a null matrix. Is this a precision error ?

How do I correct this ? Here is the matrix if needed :- https://drive.google.com/file/d/0BxqrCZfy_mcXLW5PbkVUeHVSODA/edit?usp=sharing Thanks a lot in advance :-)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.