Parameterise Jordan chains of multi-companion matrices
spec_core.Rd
Parameterise 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
ubasis
w.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
#>