mc_chains_triangulate: Triangulate a system of 0eigenvectors

View source: R/mcompanion.R

mc_chains_triangulateR Documentation

Triangulate a system of 0eigenvectors

Description

Triangulate a system of 0eigenchains.

Usage

mc_chains_triangulate(chains, mo, mo.col)

Arguments

chains

chains, see details

mo

mc order

mo.col

mc column order

Details

mc_chains_triangulate triangulates a set of chains to make it easier to extend 0chains.

chains is a list of chains for the 0 eigenvalue of an mcmatrix. Each chain is represented by a matrix with the eigenvector in the first column.

For a multi-companion matrix the maximum number of chains for an eigenvalue is mo.

Only the last mo elements of eigenvectors of mc matrices corresponding to the zero eigenvalue may be non-zero.

mc_chains_triangulate triangulates the eigenvectors in the following sense. Let i_1 be the first non-zero element of the first eigenvector. Then the elements in position i_1 of the remaining eigenvectors are made equal to zero by adding to them a multiple of the first eigenvector. The corresponding transformation is done on the remaining elements of the chains so that they remain proper chains. Then the position, i_2, of the first non-zero element of the second eigenvector is found and the elements of the third and the following eigenvectors at that position are made zero by adding to them a multiple of the second eigenvector. The process is repeated until the last eigenvector is reached.

If mo is 4 and there are 4 chains, for example, then the above procedure will typically transform the bottom 4\times4 block of the matrix obtained from the 4 eigenvectors into a lower triangular matrix. If there are zero elements in the original bottom 4\times4 block, then the result will not be a lower triangular matrix but the shape will be equivalent for the purposes of extending the eigenvectors.

todo: describe the above precisely in a separate document, vzh. rakopisnite belezhki za izpolzvaniya algoritam.

todo: it is probably worth to do this somewhat more elaborately for numerical stability.

todo: This function is not specific to zero eigenchains. It can be used to put in canonic order any other eigenchain (but check). Change the name?

todo: strictly speaking, for canonical order more is needed when there are chains with the same heights.

Value

the modified chains, a list

Author(s)

Georgi N. Boshnakov

See Also

mc_0chains which call this function.


mcompanion documentation built on Sept. 22, 2023, 5:12 p.m.