tf.linalg.experimental.conjugate_gradient
Conjugate gradient solver.
tf.linalg.experimental.conjugate_gradient(
operator, rhs, preconditioner=None, x=None, tol=1e-05, max_iter=20,
name='conjugate_gradient'
)
Solves a linear system of equations A*x = rhs for self-adjoint, positive definite matrix A and right-hand side vector rhs, using an iterative, matrix-free algorithm where the action of the matrix A is represented by operator. The iteration terminates when either the number of iterations exceeds max_iter or when the residual norm has been reduced to tol times its initial value, i.e. \(||rhs - A x_k|| <= tol ||rhs||\).
| Args | |
|---|---|
operator | A LinearOperator that is self-adjoint and positive definite. |
rhs | A possibly batched vector of shape [..., N] containing the right-hand size vector. |
preconditioner | A LinearOperator that approximates the inverse of A. An efficient preconditioner could dramatically improve the rate of convergence. If preconditioner represents matrix M(M approximates A^{-1}), the algorithm uses preconditioner.apply(x) to estimate A^{-1}x. For this to be useful, the cost of applying M should be much lower than computing A^{-1} directly. |
x | A possibly batched vector of shape [..., N] containing the initial guess for the solution. |
tol | A float scalar convergence tolerance. |
max_iter | An integer giving the maximum number of iterations. |
name | A name scope for the operation. |
| Returns | |
|---|---|
output | A namedtuple representing the final state with fields:
|
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/linalg/experimental/conjugate_gradient