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() 中的相应参数一致。

支持浮点型、双精度型、复数浮点型和复数双精度型的数据类型作为输入。还支持矩阵的批量处理,如果A是一组矩阵,那么输出将具有相同的批处理维度。

警告

此功能为“试验性”,未来版本的 PyTorch 中可能有所更改。

参数
  • LD (Tensor) – 表示尺寸为 (*, n, n) 矩阵或此类矩阵的批次,其中 * 代表一个或多个批次维度。

  • pivots (Tensor) – 与 LD 的 LDL 分解对应的枢轴。

  • B (Tensor) – 形状为 (*, n, k) 的右侧张量。

关键字参数
  • hermitian (bool, 可选) – 是否将分解后的矩阵视为厄米特矩阵或对称矩阵。对于实值矩阵,此设置没有影响。默认值: False

  • out (元组, 可选) – 输出张量。可以将 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)
本页目录