當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python tf.linalg.triangular_solve用法及代碼示例

求解具有上三角矩陣或下三角矩陣的線性方程組。

用法

tf.linalg.triangular_solve(
    matrix, rhs, lower=True, adjoint=False, name=None
)

參數

  • matrix 一個Tensor。必須是以下類型之一:float64 , float32 , half , complex64 , complex128。形狀是 [..., M, M]
  • rhs 一個Tensor。必須與 matrix 具有相同的類型。形狀是 [..., M, N]
  • lower 可選的 bool 。默認為 True 。布爾值,指示矩陣中最內層的矩陣是下三角矩陣還是上三角矩陣。
  • adjoint 可選的 bool 。默認為 False 。布爾值,指示是否使用矩陣或其 (block-wise) 伴隨求解。
  • name 操作的名稱(可選)。

返回

  • 一個Tensor。具有與矩陣相同的類型,形狀為 [..., M, N]

matrix 是形狀為 [..., M, M] 的張量,其 inner-most 2 維形成方陣。如果lowerTrue,則假定每個inner-most 矩陣的嚴格上三角部分為零且未被訪問。如果lowerFalse,則假定每個inner-most 矩陣的嚴格下三角部分為零且未被訪問。 rhs 是一個形狀為 [..., M, N] 的張量。

輸出是一個形狀為 [..., M, N] 的張量。如果 adjointTrue 則輸出中最內層的矩陣滿足矩陣方程 sum_k matrix[..., i, k] * output[..., k, j] = rhs[..., i, j] 。如果 adjointFalse 則輸出中最內層的矩陣滿足矩陣方程 sum_k 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)>
tf.matmul(a, x)
<tf.Tensor:shape=(4, 1), dtype=float32, numpy=
array([[4.],
       [2.],
       [4.],
       [2.]], dtype=float32)>

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.linalg.triangular_solve。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。