How does MATLAB compute the real Schur decomposition?

645 Views Asked by At

Let matrix A be defined as

A = [ 1     1     1     3
      1     2     1     1
      1     1     3     1
     -2     1     1     4 ];

The eigenvalues of A result from eig(A) as

   4.8121 + 0.0000i
   1.9202 + 1.4742i
   1.9202 - 1.4742i
   1.3474 + 0.0000i

Contrary to eig(A), real Schur decomposition [V,T]=schur(A) results

T =

    4.8121    1.1972   -2.2273   -1.0067
         0    1.9202   -3.0485   -1.8381
         0    0.7129    1.9202    0.2566
         0         0         0    1.3474

whereas MATLAB documentation states that "T has the real eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks on the diagonal" which does not hold for the complex eigenvalues apparently. Is this an incorrect result? If not, then how it could be transformed to the form described in the documentation?

1

There are 1 best solutions below

1
On

The central block of T defines a matrix that gives the complex eigenvalues of A

eig(T(2:3,2:3))
ans =

1.9202 + 1.4742i
1.9202 - 1.4742i