通過反向代換求解具有上三角矩陣或下三角矩陣的線性方程組。
用法
tf.raw_ops.MatrixTriangularSolve(
matrix, rhs, lower=True, adjoint=False, name=None
)
參數
-
matrix
一個Tensor
。必須是以下類型之一:bfloat16
,float64
,float32
,half
,complex64
,complex128
。形狀是[..., M, M]
。 -
rhs
一個Tensor
。必須與matrix
具有相同的類型。形狀是[..., M, K]
。 -
lower
可選的bool
。默認為True
。布爾值,指示matrix
中最裏麵的矩陣是下三角形還是上三角形。 -
adjoint
可選的bool
。默認為False
。布爾值,指示是否使用matrix
或其 (block-wise) 伴隨求解。 -
name
操作的名稱(可選)。
返回
-
一個
Tensor
。具有與matrix
相同的類型。
matrix
是形狀為 [..., M, M]
的張量,其 inner-most 2 維形成方陣。如果lower
是True
,則假定每個inner-most 矩陣的嚴格上三角部分為零且未被訪問。如果 lower
為 False,則假定每個 inner-most 矩陣的嚴格下三角部分為零且未被訪問。 rhs
是形狀為 [..., M, N]
的張量。
輸出是一個形狀為 [..., M, N]
的張量。如果 adjoint
是 True
則 output
中最內層的矩陣滿足矩陣方程 matrix[...,:,:] * output[...,:,:] = rhs[...,:,:]
。如果 adjoint
是 False
則嚴格來說 output
中最內層的矩陣滿足矩陣方程 adjoint(matrix[..., i, k]) * output[..., k, j] = rhs[..., i, j]
。
請注意,輸入的批次形狀隻需要廣播。
例子:
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)>
# in python3 one can use `a@x`
tf.matmul(a, x)
# <tf.Tensor:shape=(4, 1), dtype=float32, numpy=
# array([[4. ],
# [2. ],
# [4. ],
# [1.9999999]], dtype=float32)>
numpy 兼容性
相當於 scipy.linalg.solve_triangular
相關用法
- Python tf.raw_ops.MatrixDiagPart用法及代碼示例
- Python tf.raw_ops.MatrixDiag用法及代碼示例
- Python tf.raw_ops.MatrixSetDiagV2用法及代碼示例
- Python tf.raw_ops.MatrixDiagV2用法及代碼示例
- Python tf.raw_ops.MatrixDiagV3用法及代碼示例
- Python tf.raw_ops.MatrixSetDiagV3用法及代碼示例
- Python tf.raw_ops.MatrixDiagPartV3用法及代碼示例
- Python tf.raw_ops.MatrixDiagPartV2用法及代碼示例
- Python tf.raw_ops.MatrixBandPart用法及代碼示例
- Python tf.raw_ops.Maximum用法及代碼示例
- Python tf.raw_ops.MutexLock用法及代碼示例
- Python tf.raw_ops.Minimum用法及代碼示例
- Python tf.raw_ops.MirrorPadGrad用法及代碼示例
- Python tf.raw_ops.MirrorPad用法及代碼示例
- Python tf.raw_ops.TPUReplicatedInput用法及代碼示例
- Python tf.raw_ops.Bitcast用法及代碼示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代碼示例
- Python tf.raw_ops.BatchMatMul用法及代碼示例
- Python tf.raw_ops.OneHot用法及代碼示例
- Python tf.raw_ops.ResourceScatterNdSub用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.MatrixTriangularSolve。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。