sechol               package:accuracy               R Documentation

_S_c_h_n_a_b_e_l-_E_s_k_o_w _C_h_o_l_e_k_s_y _D_e_c_o_m_p_o_s_i_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Perform the Schnabel-Eskow Choleksy Matrix Decomposition

_U_s_a_g_e:

     sechol(A, tol=.Machine$double.eps, silent=TRUE)

_A_r_g_u_m_e_n_t_s:

       A: a square matrix object which can be non-singular.

     tol: a tolerance parameter

  silent: print debugging messages

_D_e_t_a_i_l_s:

     The algorithm of Schnabel and Eskow (Schnabel, R. B. and Eskow, E.
     1990. "A New Modified Cholesky Factorization." SIAM Journal of
     Scientific Statistical  Computing 11, 1136-58.) improves the
     Gill/Murray approach of incrementing diagonal values of a singular
     matrix sufficiently that Cholesky steps can be performed.  The
     algorithm is based on applying the Gerschgorin Circle Theorem to
     reduce the  infinity norm of the incrementing matrix. The strategy
     is to calculate delta values that reduce the _overall_ difference
     between the singular matrix and the incremented matrix.

_V_a_l_u_e:

     A Cholesky decomposition of the matrix C+E where C is the original
     non-singular matrix and E is the minimal diagonal increment
     according to the Gerschgorin Circle Theorem.  If the input matrix
     is non-singular, then the Cholesky decomposition of C is returned.

_A_u_t_h_o_r(_s):

     Jeff Gill

_R_e_f_e_r_e_n_c_e_s:

     Schnabel, R. B. and Eskow, E. 1990. "A New Modified Cholesky
     Factorization." SIAM Journal of Scientific Statistical  Computing
     11, 1136-58.

     Altman, M., J. Gill and M. P. McDonald.  2003.  _Numerical Issues
     in Statistical Computing for the Social Scientist_.  John Wiley &
     Sons. <URL: http://www.hmdc.harvard.edu/numerical_issues/>

_S_e_e _A_l_s_o:

     'ginv' 'solve' 'chol' 'svd' 'qr'

_E_x_a_m_p_l_e_s:

     # compare with chol() on a non-singular matrix
     S <- matrix(c(2,0,2.4,0,2,0,2.4,0,3),ncol=3)
     chol(S)
     TS<- sechol(S)
     TS
     t(TS) 

     # an example with a singular matrix
     S <- matrix(c(2,0,2.5,0,2,0,2.5,0,3),ncol=3)
     TS<-sechol(S) 
     TS
     t(TS) 
         
     # another example with a singular matrix
     S <- matrix(c(2,0,10,0,2,0,10,0,3),ncol=3)
     TS <- sechol(S)
     TS
     t(TS) 

