求解一下hessenberg的逆变换怎么用代码实现

对一个矩阵进行hessenberg变换后得到H,Q矩阵,现在怎么利用H,Q矩阵逆变换得到原矩阵?

可以利用H和Q矩阵逆变换得到原矩阵的步骤如下:
对H矩阵进行QR分解,得到新的Q矩阵和R矩阵。
将新的Q矩阵和R矩阵带入公式A = QR,得到新的矩阵A。
将新的矩阵A和Q矩阵带入公式A = QHQ-1,得到原矩阵。
import numpy as np

假设我们已经得到了H和Q矩阵

H = np.array([[3, 2, 1], [0, 4, 2], [0, 0, 5]])
Q = np.array([[0, 0, 1], [1, 0, 0], [0, 1, 0]])

对H矩阵进行QR分解

_, R = np.linalg.qr(H)

计算新的矩阵A

A = Q @ R

计算原矩阵

original_matrix = A @ np.linalg.inv(Q)