Schur package:Matrix R Documentation _S_c_h_u_r _D_e_c_o_m_p_o_s_i_t_i_o_n _o_f _a _M_a_t_r_i_x _D_e_s_c_r_i_p_t_i_o_n: Computes the Schur decomposition and eigenvalues of a square matrix; see the BACKGROUND information below. _U_s_a_g_e: Schur(x, vectors, ...) _A_r_g_u_m_e_n_t_s: x: numeric (or complex, in future) square Matrix (inheriting from class '"Matrix"'). Missing values (NAs) are not allowed. vectors: logical. When 'TRUE' (the default), the Schur vectors are computed, and the result is a proper 'MatrixFactorization' of class 'Schur'. ...: further arguments passed to or from other methods. _D_e_t_a_i_l_s: Based on the Lapack subroutine 'dgees'. _V_a_l_u_e: If 'vectors' are 'TRUE', as per default, an object of class 'Schur'. If 'vectors' are 'FALSE', a list with components T: the upper quasi-triangular (square) matrix of the Schur decomposition. EValues: the vector of 'numeric' or 'complex' eigen values of T or A. _B_A_C_K_G_R_O_U_N_D: If 'A' is a square matrix, then 'A = Q T t(Q)', where 'Q' is orthogonal, and 'T' is upper block-triangular (nearly triangular with either 1 by 1 or 2 by 2 blocks on the diagonal) where the 2 by 2 blocks correspond to (non-real) complex eigenvalues. The eigenvalues of 'A' are the same as those of 'T', which are easy to compute. The Schur form is used most often for computing non-symmetric eigenvalue decompositions, and for computing functions of matrices such as matrix exponentials. _R_e_f_e_r_e_n_c_e_s: Anderson, E., et al. (1994). _LAPACK User's Guide,_ 2nd edition, SIAM, Philadelphia. _E_x_a_m_p_l_e_s: Schur(Hilbert(9)) # Schur factorization (real eigenvalues) (A <- Matrix(round(rnorm(5*5, sd = 100)), nrow = 5)) (Sch.A <- Schur(A)) eTA <- eigen(Sch.A@T) str(SchA <- Schur(A, vectors=FALSE))# no 'T' ==> simple list stopifnot(all.equal(eTA$values, eigen(A)$values, tol = 1e-13), all.equal(eTA$values, local({z <- Sch.A@EValues z[order(Mod(z), decreasing=TRUE)]}), tol = 1e-13), identical(SchA$T, Sch.A@T), identical(SchA$EValues, Sch.A@EValues))