Learn R Programming

SolveLS (version 1.0)

lsolve.cheby: Chebyshev Method

Description

Chebyshev method - also known as Chebyshev iteration - avoids computation of inner product, enabling distributed-memory computation to be more efficient at the cost of requiring a priori knowledge on the range of spectrum for matrix A.

Usage

lsolve.cheby(A, B, xinit = NA, reltol = 1e-05, maxiter = 10000,
  preconditioner = diag(ncol(A)), adjsym = TRUE, verbose = TRUE)

Arguments

A

an \((m\times n)\) dense or sparse matrix. See also sparseMatrix.

B

a vector of length \(m\) or an \((m\times k)\) matrix (dense or sparse) for solving \(k\) systems simultaneously.

xinit

a length-\(n\) vector for initial starting point. NA to start from a random initial point near 0.

reltol

tolerance level for stopping iterations.

maxiter

maximum number of iterations allowed.

preconditioner

an \((n\times n)\) preconditioning matrix; default is an identity matrix.

adjsym

a logical; TRUE to symmetrize the system by transforming the system into normal equation, FALSE otherwise.

verbose

a logical; TRUE to show progress of computation.

Value

a named list containing

x

solution; a vector of length \(n\) or a matrix of size \((n\times k)\).

iter

the number of iterations required.

errors

a vector of errors for stopping criterion.

References

gutknecht_chebyshev_2002SolveLS

Examples

Run this code
# NOT RUN {
## Overdetermined System
A = matrix(rnorm(10*5),nrow=10)
x = rnorm(5)
b = A%*%x

out1 = lsolve.sor(A,b,w=0.5)
out2 = lsolve.cheby(A,b)
matout = cbind(x, out1$x, out2$x);
colnames(matout) = c("original x","SOR result", "Chebyshev result")
print(matout)

# }

Run the code above in your browser using DataLab