A class for spectral specifications of multi-companion matrices
mcSpec-class.Rd
A class for spectral specifications of multi-companion matrices.
Objects from the Class
Objects can be created by calls of one of the following equivalent forms:
mcSpec(dim, mo, root1, iorder, siorder, order, evtypes, ...)
,new("mcSpec", dim, mo, root1, iorder, siorder, order, evtypes, ...)
.
An object of class "mcSpec" holds a spectral specification of a square
multi-companion matrix. The specification may be only partial. In that
case unspecified components are set to NA
.
Eigenvalues are represented by their modulus and complex argument. The argument is in cycles per unit time. So, a negative real number has argument 0.5.
The complex eigenvalues come in pairs and only one needs to be specified. If an eigenvalue is not simple, it should not be repeated. Rather, the size of the corresponding Jordan block should be specified.
The types of the eigenvalues may be "r" (real) or "cp" (complex pair).
See mcSpec
for full details about the initialization
function for class mcSpec
.
Slots
dim
:dimension of the matrix, a positive integer.
mo
:multi-companion order, a positive integer.
ev.type
:Types of eigenvalues, "r" or "cp", a character vector.
co.type
:Types of the
co
parameters, a character vector.order
:orders of the factors, the default is
rep(dim,mo)
.n.root
:number of nonzero roots.
ev.abs
:absolute values (moduli) of the roots.
ev.arg
:complex arguments of the roots (cycles per unit time). In particular, zero for positive reals, 0.5 for negative reals. (TODO: check that functions that use this specification know that!)
block.length
:sizes of Jordan blocks corresponding to the eigenvalues, a vector of positive integers. By default the eigenvalues are simple.
co.abs
:moduli of the
co
parameters, a matrix.co.arg
:arguments of the
co
parameters, a matrix.mo.col
:Object of class
"numeric"
.F0bot
:Object of class
"optionalMatrix"
.
Methods
- initialize
signature(.Object = "mcSpec")
: seemcSpec
.
Note
The initialization function for mcSpec
class is incomplete, in
the sense that it does not cover all cases.
Examples
mcSpec(dim = 5, mo = 4, root1 = c(1,1), order = rep(3,4))
#> An object of class "mcSpec"
#> Slot "dim":
#> [1] 5
#>
#> Slot "mo":
#> [1] 4
#>
#> Slot "ev.type":
#> [1] "r" "r" "r" "r" "r"
#>
#> Slot "co.type":
#> character(0)
#>
#> Slot "order":
#> [1] 3 3 3 3
#>
#> Slot "n.root":
#> [1] 3
#>
#> Slot "ev.abs":
#> [1] 1 1 0 0 NA
#>
#> Slot "ev.arg":
#> [1] 0 0 0 0 NA
#>
#> Slot "block.length":
#> [1] 1 1 1 1 1
#>
#> Slot "co.abs":
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] NA NA 0 0 NA
#> [2,] NA NA 0 0 NA
#> [3,] NA NA 1 0 NA
#> [4,] NA NA 0 1 NA
#>
#> Slot "co.arg":
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] NA NA 0 0 NA
#> [2,] NA NA 0 0 NA
#> [3,] NA NA 0 0 NA
#> [4,] NA NA 0 0 NA
#>
#> Slot "mo.col":
#> [1] 3
#>
#> Slot "F0bot":
#> NULL
#>
mcSpec(dim = 5, mo = 4, root1 = c(1,1,1), order = rep(5,4))
#> An object of class "mcSpec"
#> Slot "dim":
#> [1] 5
#>
#> Slot "mo":
#> [1] 4
#>
#> Slot "ev.type":
#> [1] "r" "r" "r" "cp"
#>
#> Slot "co.type":
#> character(0)
#>
#> Slot "order":
#> [1] 5 5 5 5
#>
#> Slot "n.root":
#> [1] 5
#>
#> Slot "ev.abs":
#> [1] 1 1 1 NA
#>
#> Slot "ev.arg":
#> [1] 0 0 0 NA
#>
#> Slot "block.length":
#> [1] 1 1 1 1
#>
#> Slot "co.abs":
#> [,1] [,2] [,3] [,4]
#> [1,] NA NA NA NA
#> [2,] NA NA NA NA
#> [3,] NA NA NA NA
#> [4,] NA NA NA NA
#>
#> Slot "co.arg":
#> [,1] [,2] [,3] [,4]
#> [1,] NA NA NA NA
#> [2,] NA NA NA NA
#> [3,] NA NA NA NA
#> [4,] NA NA NA NA
#>
#> Slot "mo.col":
#> [1] 5
#>
#> Slot "F0bot":
#> NULL
#>
mcSpec(dim = 5, mo = 4, root1 = c(1,1,1,1), order = rep(5,4))
#> An object of class "mcSpec"
#> Slot "dim":
#> [1] 5
#>
#> Slot "mo":
#> [1] 4
#>
#> Slot "ev.type":
#> [1] "r" "r" "r" "r" "r"
#>
#> Slot "co.type":
#> character(0)
#>
#> Slot "order":
#> [1] 5 5 5 5
#>
#> Slot "n.root":
#> [1] 5
#>
#> Slot "ev.abs":
#> [1] 1 1 1 1 NA
#>
#> Slot "ev.arg":
#> [1] 0 0 0 0 NA
#>
#> Slot "block.length":
#> [1] 1 1 1 1 1
#>
#> Slot "co.abs":
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 0 0 0 NA
#> [2,] 0 1 0 0 NA
#> [3,] 0 0 1 0 NA
#> [4,] 0 0 0 1 NA
#>
#> Slot "co.arg":
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0 0 0 0 NA
#> [2,] 0 0 0 0 NA
#> [3,] 0 0 0 0 NA
#> [4,] 0 0 0 0 NA
#>
#> Slot "mo.col":
#> [1] 5
#>
#> Slot "F0bot":
#> NULL
#>