View source on GitHub
|
Solve systems of linear equations with upper or lower triangular matrices.
tf.linalg.triangular_solve(
matrix, rhs, lower=True, adjoint=False, name=None
)
matrix is a tensor of shape [..., M, M] whose inner-most 2 dimensions form
square matrices. If lower is True then the strictly upper triangular part
of each inner-most matrix is assumed to be zero and not accessed. If lower
is False then the strictly lower triangular part of each inner-most matrix
is assumed to be zero and not accessed. rhs is a tensor of shape
[..., M, N].
The output is a tensor of shape [..., M, N]. If adjoint is True then the
innermost matrices in output satisfy matrix equations sum_k matrix[..., i, k] * output[..., k, j] = rhs[..., i, j].
If adjoint is False then the
innermost matrices in output satisfy matrix equations
sum_k adjoint(matrix[..., i, k]) * output[..., k, j] = rhs[..., i, j].
Example:
a = tf.constant([[3, 0, 0, 0],[2, 1, 0, 0],[1, 0, 1, 0],[1, 1, 1, 1]], dtype=tf.float32)
b = tf.constant([[4], [2], [4], [2]], dtype=tf.float32)x = tf.linalg.triangular_solve(a, b, lower=True)x<tf.Tensor: shape=(4, 1), dtype=float32, numpy=array([[ 1.3333334 ],[-0.66666675],[ 2.6666665 ],[-1.3333331 ]], dtype=float32)>tf.matmul(a, x)<tf.Tensor: shape=(4, 1), dtype=float32, numpy=array([[4.],[2.],[4.],[2.]], dtype=float32)>
Returns | |
|---|---|
A Tensor. Has the same type as matrix, and shape is [..., M, N].
|
View source on GitHub