JordanReal: Jordan canonical decomposition of a real-valued matrix over...

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/IdentAnalysis.R

Description

This function computes the Jordan canonical form of a a real-valued matrix A over the field of real numbers.

Usage

1
JordanReal(A,tol=1e-6)

Arguments

A

A dxd-dimensional real-valued matrix.

tol

The numerical tolerance level. Due to inevitable limitations of numerical computations, it is possible that all eigenvalues computed by eigen(A) have some small imaginary component even if some of them are clearly real. In JordanReal, if the absolute value of the imaginary part of an eigenvalue is less than tol, we treat it as a real eigenvalue.

Details

this is a convenient function that computes the Jordan canonical form (JCF) of a real-valued matrix A over the field of real numbers. Please note that this function is not numerically stable for all matrices (esp. large matrices). It assumes that there is no nilpotent cells in the J.C.F. Returned values: K1 is the number of real eigenvalues; K2 is the number of pairs of complex eigenvalues. J is the pxp semi-diagonal matrix of Jordan blocks; Qmat is the matrix of generalized eigenvectors. Note that J is always organized in such way: the first K1 diagonal elements are real eigenvalues; the rest are 2x2 rotational matrices correspond with pairs of complex eigenvalues.

Value

J

The block-diagonal matrix that represents real (1x1 blocks) and complex eigenvalues (2x2 blocks) of A.

Qmat

The matrix of eigenvectors and semi-eigenvectors (for complex eigenvalues).

Qinv

The inverse of Qmat.

K1

Number of real eigenvalues.

K2

Number of pairs of complex eigenvalues. So d=K1+2*K2.

Author(s)

Xing Qiu

References

https://en.wikipedia.org/wiki/Jordan_normal_form

See Also

eigen

Examples

1
2
3
4
5
A1  <- matrix(c(0, 1, -1,
                2, 0, 0,
                3, 1, 0), 3, byrow=TRUE)
jcf1 <- JordanReal(A1)
jcf1

qiuxing/ode.ident documentation built on Sept. 30, 2020, 11:17 a.m.