solve_chol solves a system of equations using the cholesky decomposition of a positive definite matrix A, i.e., using a = chol(A).
solve_chol(a, b,...)## S3 method for class 'chol'solve(a, b,...)
Arguments
a: The cholesky decomposition of a positive definite matrix.
b: A numeric or complex vector or matrix giving the right-hand side(s) of the linear system. If missing, b is taken to be an identity matrix and solve will return the inverse of a.
...: Currently unused.
Details
Note: Unless you have good reason to suspect that the cholesky decomposition of your matrix will be stable, it is recommended that you use solve or perform the solve using the qr
decomposition.
Examples
set.seed(10)# create positive definite matrix aa = crossprod(matrix(rnorm(25^2), nrow =25))# create vector x and matrix b# x can be used to check the stability of the solutionx = matrix(rnorm(25))b = a %*% x
# standard solvex1 = solve(a, b)all.equal(x, x1)# solve using cholesky decompositionchola = chol(a)x2 = solve_chol(chola, b)all.equal(x, x2)# solve using qr decompositionqra = qr(a)x3 = solve.qr(qra, b)all.equal(x, x3)# compare direct inversionai1 = solve(a)ai2 = solve_chol(chola)#using cholesky decompositionall.equal(ai1, ai2)# should be TRUE