smile.math.matrix
Class BiconjugateGradient
- java.lang.Object
-
- smile.math.matrix.BiconjugateGradient
-
public class BiconjugateGradient extends java.lang.ObjectThe biconjugate gradient method is an algorithm to solve systems of linear equations.
-
-
Constructor Summary
Constructors Constructor and Description BiconjugateGradient()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static doublesolve(Matrix A, double[] b, double[] x)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, double[] b, double[] x, double tol)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, double[] b, double[] x, double tol, int itol)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, double[] b, double[] x, double tol, int itol, int maxIter)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, Preconditioner Ap, double[] b, double[] x)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol, int itol)Solves A * x = b by iterative biconjugate gradient method.static doublesolve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol, int itol, int maxIter)Solves A * x = b by iterative biconjugate gradient method.
-
-
-
Method Detail
-
solve
public static double solve(Matrix A, double[] b, double[] x)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, Preconditioner Ap, double[] b, double[] x)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
Ap- the preconditioned matrix of A.b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, double[] b, double[] x, double tol)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.tol- the desired convergence tolerance.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
Ap- the preconditioned matrix of A.b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.tol- the desired convergence tolerance.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, double[] b, double[] x, double tol, int itol)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.itol- specify which convergence test is applied. If itol = 1, iteration stops when |Ax - b| / |b| is less than the parameter tolerance. If itol = 2, the stop criterion is |A-1 (Ax - b)| / |A-1b| is less than tolerance. If tol = 3, |xk+1 - xk|2 is less than tolerance. The setting of tol = 4 is same as tol = 3 except that the L∞ norm instead of L2.tol- the desired convergence tolerance.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol, int itol)
Solves A * x = b by iterative biconjugate gradient method.- Parameters:
Ap- the preconditioned matrix of A.b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.itol- specify which convergence test is applied. If itol = 1, iteration stops when |Ax - b| / |b| is less than the parameter tolerance. If itol = 2, the stop criterion is |A-1 (Ax - b)| / |A-1b| is less than tolerance. If tol = 3, |xk+1 - xk|2 is less than tolerance. The setting of tol = 4 is same as tol = 3 except that the L∞ norm instead of L2.tol- the desired convergence tolerance.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, double[] b, double[] x, double tol, int itol, int maxIter)
Solves A * x = b by iterative biconjugate gradient method. This method can be called repeatedly, with maxIter < n, to monitor how error decreases.- Parameters:
b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.itol- specify which convergence test is applied. If itol = 1, iteration stops when |Ax - b| / |b| is less than the parameter tolerance. If itol = 2, the stop criterion is |A-1 (Ax - b)| / |A-1b| is less than tolerance. If tol = 3, |xk+1 - xk|2 is less than tolerance. The setting of tol = 4 is same as tol = 3 except that the L∞ norm instead of L2.tol- the desired convergence tolerance.maxIter- the maximum number of allowed iterations.- Returns:
- the estimated error.
-
solve
public static double solve(Matrix A, Preconditioner Ap, double[] b, double[] x, double tol, int itol, int maxIter)
Solves A * x = b by iterative biconjugate gradient method. This method can be called repeatedly, with maxIter < n, to monitor how error decreases.- Parameters:
Ap- the preconditioned matrix of A.b- the right hand side of linear equations.x- on input, x should be set to an initial guess of the solution (or all zeros). On output, x is reset to the improved solution.itol- specify which convergence test is applied. If itol = 1, iteration stops when |Ax - b| / |b| is less than the parameter tolerance. If itol = 2, the stop criterion is |A-1 (Ax - b)| / |A-1b| is less than tolerance. If tol = 3, |xk+1 - xk|2 is less than tolerance. The setting of tol = 4 is same as tol = 3 except that the L∞ norm instead of L2.tol- the desired convergence tolerance.maxIter- the maximum number of allowed iterations.- Returns:
- the estimated error.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG