PyTorch torch.orgqr 函数
torch.orgqr 是 PyTorch 中用于从 QR 分解中重构正交矩阵 Q 的函数。它使用 QR 分解得到的 Householder 反射器来计算 Q 矩阵。
函数定义
torch.orgqr(input)
参数:
input(Tensor): 输入张量,包含 Householder 反射器。
返回值:
torch.Tensor: 返回正交矩阵 Q。
使用示例
实例
import torch
# 创建矩阵
A = torch.tensor([[12.0, -51.0, 4.0],
[6.0, 167.0, -68.0],
[-4.0, 24.0, -41.0]], dtype=torch.float64)
# QR 分解
Q, R = torch.linalg.qr(A)
print("矩阵 A:")
print(A)
print("n正交矩阵 Q:")
print(Q)
print("n验证 Q.T @ Q = I:")
print(Q.T @ Q)
# 创建矩阵
A = torch.tensor([[12.0, -51.0, 4.0],
[6.0, 167.0, -68.0],
[-4.0, 24.0, -41.0]], dtype=torch.float64)
# QR 分解
Q, R = torch.linalg.qr(A)
print("矩阵 A:")
print(A)
print("n正交矩阵 Q:")
print(Q)
print("n验证 Q.T @ Q = I:")
print(Q.T @ Q)
输出结果为:
矩阵 A:
tensor([[ 12., -51., 4.],
[ 6., 167., -68.],
[ -4., 24., -41.]], dtype=torch.float64)
正交矩阵 Q:
tensor([[-0.8571, 0.3943, 0.3314],
[-0.4286, -0.9029, -0.0343],
[ 0.2857, -0.1714, 0.9428]], dtype=torch.float64)
验证 Q.T @ Q = I:
tensor([[ 1.0000e+00, -1.4895e-16, 2.2204e-16],
[-1.4895e-16, 1.0000e+00, 9.8601e-32],
[ 2.2204e-16, 9.8601e-32, 1.0000e+00]], dtype=torch.float64)

Pytorch torch 参考手册