[R] Schur decomposition? (was: matrix of eigenvalues)

Spencer Graves spencer.graves at pdf.com
Tue Oct 19 19:41:58 CEST 2004


      Does R have a function for the Schur decomposition?  The 
documentation for library(Matrix) describes a function "Schur", but it 
seems to be missing from the Windows version 0.8-14 (2004-09-14) and 
0.8-15 (2004-10-02). 

      The R 2.0.0 pat documentation for "eigen" refers to 
"http://www.netlib.org/lapack/lug/lapack_lug.html", and the description 
there for eigen analysis of a non-symmetric matrix says, "This problem 
can be solved via the Schur factorization of A, defined in the real case as
A = ZTZT,

where Z is an orthogonal matrix and T is an upper quasi-triangular 
matrix with 1-by-1 and 2-by-2 diagonal blocks, the 2-by-2 blocks 
corresponding to complex conjugate pairs of eigenvalues of A." 

      Thanks,
      Spencer Graves

Douglas Bates wrote:

> Christian Jost wrote:
>
>> I thought that the function
>> eigen(A)
>> will return a matrix with eigenvectors that are independent of each 
>> other (thus forming a base and the matrix being invertible). This 
>> seems not to be the case in the following example
>> A=matrix(c(1,2,0,1),nrow=2,byrow=T)
>> eigen(A) ->ev
>> solve(ev$vectors)
>>
>> note that I try to get the upper triangular form with eigenvalues on 
>> the diagonal and (possibly) 1 just atop the eigenvalues to be used to 
>> solve a linear differential equation
>> x' = Ax, x(0)=x0
>> x(t) = P exp(D t) P^-1 x0
>> where D is this upper triangular form and P is the "passage matrix" 
>> (not sure about the correct english name) given by a base of 
>> eigenvectors. So the test would be
>> solve(ev$vectors) %*% A %*% ev$vectors - D
>> should be 0
>>
>> Thanks for any help, Christian.
>>
>> ps: please copy reply also to my address, my subscription to the 
>> R-help list seems to have delays
>
>
> That particular matrix has repeated eigenvalues and a degenerate 
> eigenspace.
>
> > A <- matrix(c(1,0,2,1),nc=2)
> > A
>      [,1] [,2]
> [1,]    1    2
> [2,]    0    1
> > eigen(A)
> $values
> [1] 1 1
>
> $vectors
>      [,1]          [,2]
> [1,]    1 -1.000000e+00
> [2,]    0  1.110223e-16
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html


-- 
Spencer Graves, PhD, Senior Development Engineer
O:  (408)938-4420;  mobile:  (408)655-4567




More information about the R-help mailing list