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) 

