Parameterise Jordan chains of multi-companion matrices
spec_core.RdParameterise the Jordan chains corresponding to a given eigenvalue of a multi-companion matrix.
Arguments
- mo
- multi-companion order, a positive integer. 
- evalue
- eigenvalue, a real or complex number. 
- heights
- dimensions of Jordan blocks of - evalue, a vector of positive integers.
- ubasis
- basis of the universe, a matrix. 
- uorth
- orthogonal complement of - ubasisw.r.t. the full core basis, see Details.
- evspace
- The space spanned by the eigenvectors, see Details. 
Details
spec_core prepares a canonical representation of the parameters
  of a multi-companion matrix coresponding to an eigenvalue. Roughly
  speaking, free parameters are represented by NA's in the returned
  object. For no-repeated eigenvalues the parameterisation consists of
  the eigenvalue and the seed parameters of the eigenvector. Even then,
  for uniqueness some convention needs to be adopted.
So, in general the parameterisation is effectively in terms of subspaces.
TODO: Currently this is not documented and is work in progress, there are only some working notes (rakopis: "Some technical details about the parameterisation of mc-matrices").
Value
a list representing the parameterised chains corresponding to the eigenvalue. Currently it contains the following elements:
- evalue
- heights
- co
- core.vectors
- param.tall
- param.hang
- generators
Examples
spec_core(4, 1, c(1,1,1,1))
#> $evalue
#> [1] 1
#> 
#> $heights
#> [1] 1 1 1 1
#> 
#> $co
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    0    0    0
#> [2,]    0    1    0    0
#> [3,]    0    0    1    0
#> [4,]    0    0    0    1
#> 
#> $core.vectors
#> $core.vectors[[1]]
#> $core.vectors[[1]]$tall
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    0    0    0
#> [2,]    0    1    0    0
#> [3,]    0    0    1    0
#> [4,]    0    0    0    1
#> 
#> $core.vectors[[1]]$hang
#>      [,1] [,2] [,3] [,4]
#> [1,]   NA   NA   NA   NA
#> [2,]   NA   NA   NA   NA
#> [3,]   NA   NA   NA   NA
#> [4,]   NA   NA   NA   NA
#> 
#> $core.vectors[[1]]$both
#>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#> [1,]    1    0    0    0   NA   NA   NA   NA
#> [2,]    0    1    0    0   NA   NA   NA   NA
#> [3,]    0    0    1    0   NA   NA   NA   NA
#> [4,]    0    0    0    1   NA   NA   NA   NA
#> 
#> 
#> 
#> $param.tall
#> $param.tall[[1]]
#> [1] NA
#> 
#> 
#> $param.hang
#> $param.hang[[1]]
#>      [,1] [,2] [,3] [,4]
#> [1,]   NA   NA   NA   NA
#> [2,]   NA   NA   NA   NA
#> [3,]   NA   NA   NA   NA
#> [4,]   NA   NA   NA   NA
#> 
#> 
#> $generators
#> $generators[[1]]
#> NULL
#> 
#> 
spec_core(4, 1, c(2,1,1,1))
#> $evalue
#> [1] 1
#> 
#> $heights
#> [1] 2 1 1 1
#> 
#> $co
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,] -Inf    0  Inf  Inf  Inf
#> [2,] -Inf    0  Inf  Inf  Inf
#> [3,] -Inf    0  Inf  Inf  Inf
#> [4,] -Inf    0  Inf  Inf  Inf
#> 
#> $core.vectors
#> $core.vectors[[1]]
#> $core.vectors[[1]]$tall
#>      [,1]
#> [1,] -Inf
#> [2,] -Inf
#> [3,] -Inf
#> [4,] -Inf
#> 
#> $core.vectors[[1]]$hang
#>      [,1] [,2] [,3]
#> [1,]  Inf  Inf  Inf
#> [2,]  Inf  Inf  Inf
#> [3,]  Inf  Inf  Inf
#> [4,]  Inf  Inf  Inf
#> 
#> $core.vectors[[1]]$both
#>      [,1] [,2] [,3] [,4]
#> [1,] -Inf  Inf  Inf  Inf
#> [2,] -Inf  Inf  Inf  Inf
#> [3,] -Inf  Inf  Inf  Inf
#> [4,] -Inf  Inf  Inf  Inf
#> 
#> 
#> $core.vectors[[2]]
#> $core.vectors[[2]]$tall
#> [1] NA
#> 
#> $core.vectors[[2]]$hang
#>      [,1]
#> [1,]    0
#> [2,]    0
#> [3,]    0
#> [4,]    0
#> 
#> $core.vectors[[2]]$both
#>      [,1]
#> [1,]    0
#> [2,]    0
#> [3,]    0
#> [4,]    0
#> 
#> 
#> 
#> $param.tall
#> $param.tall[[1]]
#>      [,1]
#> [1,]   NA
#> [2,]   NA
#> [3,]   NA
#> [4,]   NA
#> 
#> $param.tall[[2]]
#> [1] NA
#> 
#> 
#> $param.hang
#> $param.hang[[1]]
#>      [,1] [,2] [,3]
#> [1,]   NA   NA   NA
#> [2,]   NA   NA   NA
#> [3,]   NA   NA   NA
#> 
#> $param.hang[[2]]
#>      [,1]
#> 
#> 
#> $generators
#> $generators[[1]]
#> $generators[[1]]$param
#> [1] "tall"
#> 
#> $generators[[1]]$tall
#>      [,1]
#> [1,] -Inf
#> [2,] -Inf
#> [3,] -Inf
#> [4,] -Inf
#> 
#> $generators[[1]]$hang
#>      [,1] [,2] [,3]
#> [1,]  Inf  Inf  Inf
#> [2,]  Inf  Inf  Inf
#> [3,]  Inf  Inf  Inf
#> [4,]  Inf  Inf  Inf
#> 
#> $generators[[1]]$universe
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    0    0    0
#> [2,]    0    1    0    0
#> [3,]    0    0    1    0
#> [4,]    0    0    0    1
#> 
#> $generators[[1]]$method
#> [1] "complement"
#> 
#> 
#> $generators[[2]]
#> NULL
#> 
#> 
spec_seeds1(c(2,2,2,2), 4)
#>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#> [1,]    1    0    0    0    0    0    0    0
#> [2,]    0    0    1    0    0    0    0    0
#> [3,]    0    0    0    0    1    0    0    0
#> [4,]    0    0    0    0    0    0    1    0
spec_seeds1(c(2,1,1,1), 4)
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,] -Inf    0  Inf  Inf  Inf
#> [2,] -Inf    0  Inf  Inf  Inf
#> [3,] -Inf    0  Inf  Inf  Inf
#> [4,] -Inf    0  Inf  Inf  Inf
spec_core(4, 1, c(2,1,1,1))$co
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,] -Inf    0  Inf  Inf  Inf
#> [2,] -Inf    0  Inf  Inf  Inf
#> [3,] -Inf    0  Inf  Inf  Inf
#> [4,] -Inf    0  Inf  Inf  Inf
spec_core(4, 1, c(2,1,1,1))$generators
#> [[1]]
#> [[1]]$param
#> [1] "tall"
#> 
#> [[1]]$tall
#>      [,1]
#> [1,] -Inf
#> [2,] -Inf
#> [3,] -Inf
#> [4,] -Inf
#> 
#> [[1]]$hang
#>      [,1] [,2] [,3]
#> [1,]  Inf  Inf  Inf
#> [2,]  Inf  Inf  Inf
#> [3,]  Inf  Inf  Inf
#> [4,]  Inf  Inf  Inf
#> 
#> [[1]]$universe
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    0    0    0
#> [2,]    0    1    0    0
#> [3,]    0    0    1    0
#> [4,]    0    0    0    1
#> 
#> [[1]]$method
#> [1] "complement"
#> 
#> 
#> [[2]]
#> NULL
#>