評價此頁

torch.linalg.ldl_solve#

torch.linalg.ldl_solve(LD, pivots, B, *, hermitian=False, out=None) Tensor#

使用 LDL 分解計算線性方程組的解。

LDpivots 是 LDL 分解的緊湊表示,它們應該由 torch.linalg.ldl_factor_ex() 計算得出。此函式中的 hermitian 引數應與 torch.linalg.ldl_factor_ex() 中的相應引數相同。

支援浮點 (float)、雙精度浮點 (double)、複數浮點 (cfloat) 和複數雙精度浮點 (cdouble) 資料型別。還支援矩陣批處理,如果 `A` 是一個矩陣批處理,則輸出具有相同的批處理維度。

警告

此函式是“實驗性的”,未來 PyTorch 版本中可能會發生變化。

引數
  • LD (Tensor) – 尺寸為 n x n 的矩陣,或此類矩陣的批次,大小為 (*, n, n),其中 * 表示一個或多個批次維度。

  • pivots (Tensor) – 與 LD 的 LDL 分解相關的樞軸。

  • B (Tensor) – 右側的張量,形狀為 (*, n, k)

關鍵字引數
  • hermitian (bool, optional) – 是否將分解的矩陣視為厄米(Hermitian)或對稱(symmetric)。對於實值矩陣,此開關無效。預設值:False

  • out (tuple, optional) – 輸出張量。可以將 B 作為 out 傳遞,結果將在 B 上就地計算。如果為 None,則忽略。預設值:None

示例

>>> A = torch.randn(2, 3, 3)
>>> A = A @ A.mT # make symmetric
>>> LD, pivots, info = torch.linalg.ldl_factor_ex(A)
>>> B = torch.randn(2, 3, 4)
>>> X = torch.linalg.ldl_solve(LD, pivots, B)
>>> torch.linalg.norm(A @ X - B)
>>> tensor(0.0001)