solve_chol function

Solve using cholesky decomposition

Solve using cholesky decomposition

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 a a = crossprod(matrix(rnorm(25^2), nrow = 25)) # create vector x and matrix b # x can be used to check the stability of the solution x = matrix(rnorm(25)) b = a %*% x # standard solve x1 = solve(a, b) all.equal(x, x1) # solve using cholesky decomposition chola = chol(a) x2 = solve_chol(chola, b) all.equal(x, x2) # solve using qr decomposition qra = qr(a) x3 = solve.qr(qra, b) all.equal(x, x3) # compare direct inversion ai1 = solve(a) ai2 = solve_chol(chola) #using cholesky decomposition all.equal(ai1, ai2) # should be TRUE

See Also

solve, chol, qr, solve.qr

Author(s)

Joshua French

  • Maintainer: Joshua French
  • License: GPL (>= 2)
  • Last published: 2020-04-10

Useful links