LDL’ Transformation
## function (SymMat)
## {
## n = dim(SymMat)[1]
## L = SymMat
## for (i in 1:n) {
## for (j in 1:i) {
## if (j > 1)
## for (k in 1:(j - 1)) L[i, j] = L[i, j] - L[i,
## k] * L[j, k] * L[k, k]
## if (j < i)
## L[i, j] = L[i, j]/L[j, j]
## }
## }
## D = diag(L)
## for (i in 1:(n - 1)) {
## L[i, i] = 1
## for (j in (i + 1):n) L[i, j] = 0
## }
## L[n, n] = 1
## Res = list(L, D)
## names(Res) = c("L", "D")
## return(Res)
## }
## <bytecode: 0x000001e2b3699f20>
## <environment: namespace:math>
## $L
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.000 0.0000 0.0000 0.00 0
## [2,] 0.750 1.0000 0.0000 0.00 0
## [3,] 0.500 0.8571 1.0000 0.00 0
## [4,] 0.250 0.7143 0.8333 1.00 0
## [5,] 0.125 0.3571 0.7083 0.85 1
##
## $D
## [1] 4.000 1.750 1.714 1.667 1.650
Res$L %*% diag(Res$D) %*% t(Res$L)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 4.0 3 2 1 0.5
## [2,] 3.0 4 3 2 1.0
## [3,] 2.0 3 4 3 2.0
## [4,] 1.0 2 3 4 3.0
## [5,] 0.5 1 2 3 4.0