torch.linalg.ldl_solve¶
- torch.linalg.ldl_solve(LD, pivots, B, *, hermitian=False, out=None) Tensor ¶
使用 LDL 分解求解线性方程组的解。
LD
和pivots
是 LDL 分解的紧凑表示,预期由torch.linalg.ldl_factor_ex()
计算。此函数的hermitian
参数应与torch.linalg.ldl_factor_ex()
中的相应参数相同。支持输入 float、double、cfloat 和 cdouble 数据类型。也支持矩阵批处理,如果
A
是矩阵批,则输出具有相同的批维度。警告
此函数为“实验性”的,它可能在未来的 PyTorch 版本中发生变化。
- 参数:
LD(张量)- n×n 矩阵或大小为 (*, n, n) 的此类矩阵批处理,其中 * 是一个或多个批处理维度。
pivots(张量)- 对应于
LD
的 LDL 分解的置换。B(张量)- 形状为 (*, n, k) 的右侧张量。
- 关键字参数:
hermitian(布尔值,可选)- 是否将分解矩阵视为厄米矩阵或对称矩阵。对于实值矩阵,此开关无影响。默认: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)