mc.0chain.struct {mcompanion} | R Documentation |
Compute structural Jordan chains for zero eigenvalues
Description
Compute structural Jordan chains for zero eigenvalues,
Usage
mc.0chain.struct(dim, mo, mo.col, chains = list(), sort = TRUE)
Arguments
dim |
dimension of the mc-matrix, a positive integer |
mo |
multi-companion order |
mo.col |
top order |
chains |
a list of Jordan chains for zero eigenvalues |
sort |
if TRUE sort the chains in descending order of their lengths. |
Details
Structural Jordan chains for 0 eigenvalues are present when
mo.col < dim
.
If chains
is empty, then this function assumes that the
structural chains span the space corresponding to 0 eigenvalues
(equivalently, the mo.col x mo.col
principal submatrix is of
full rank).
Otherwise, the chains given by chains
are amended with the
structural chains. The given chains are usually changed in the
process. (Actually, mc.0chain.struct
doesn't change existing
chains. It only adds new ones if needed, since it assumes that
triangulation has already been done.)
Note that a multi-companion matrix cannot have more than mo
chains corresponding to an eigenvalue. In particular, it is not
appropriate to ignore the possibility for chains of length larger than
1, as is normal in numerical computations, see the references for
details.
Value
a list with with the following components:
eigval |
the eigenvalues (all 0 here), one for each chain |
len.block |
the lengths of the chains |
chains |
a list with one element (a matrix) for each Jordan chain |
Note
The more obscure particular cases need testing.
Author(s)
Georgi N. Boshnakov
See Also
mc_0chains
which calls this function.
Examples
y742t <- mc.0chain.struct(7, 4, 2) # sort = TRUE is default
y742f<- mc.0chain.struct(7, 4, 2, sort = FALSE)
o <- order(y742f[[2]], decreasing = TRUE)
y742fa <- lapply(y742f, function(x) x[o])
stopifnot(identical(y742t, y742fa))