Cholesky Decomposition
## function (M)
## {
## n = dim(M)[1]
## M2 = matrix(rep(0, n * n), nrow = n, ncol = n)
## for (i in 1:n) {
## for (j in 1:i) {
## v = M[i, j]
## for (k in 1:max(1, (j - 1))) v = v - M2[i, k] * M2[j,
## k]
## if (j < i) {
## M2[i, j] = v/M2[j, j]
## }
## else {
## if (v < 0)
## return(NULL)
## M2[j, j] = sqrt(v)
## }
## }
## }
## return(M2)
## }
## <bytecode: 0x000001e2b3328a20>
## <environment: namespace:math>
M = matrix(c(4,3,2,1,0.5, 3,4,3,2,1, 2,3,4,3,2, 1,2,3,4,3, 0.5,1, 2,3,4), ncol=5) ; M
## [,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
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2.00 0.0000 0.0000 0.000 0.000
## [2,] 1.50 1.3229 0.0000 0.000 0.000
## [3,] 1.00 1.1339 1.3093 0.000 0.000
## [4,] 0.50 0.9449 1.0911 1.291 0.000
## [5,] 0.25 0.4725 0.9274 1.097 1.285
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 1.500 1.000 0.5000 0.2500
## [2,] 0 1.323 1.134 0.9449 0.4725
## [3,] 0 0.000 1.309 1.0911 0.9274
## [4,] 0 0.000 0.000 1.2910 1.0973
## [5,] 0 0.000 0.000 0.0000 1.2845