📅  最后修改于: 2023-12-03 15:09:39.005000             🧑  作者: Mango
Hessenberg 矩阵是一种具有特殊结构的方阵,其下三角元素都为零(或可忽略不计)。它在数值计算中有广泛的应用,例如求特征值、解线性方程组等。本文将介绍将给定矩阵转换为上 Hessenberg 矩阵的方法,以及如何通过最小步骤数实现该转换。
对于一个 $n\times n$ 的矩阵 $A$,我们可以通过 Householder 变换将其转换为上 Hessenberg 形式。Householder 变换是一个反射变换,可用于将向量投影到某个平面上。我们可以通过 Householder 变换将 $A$ 中的每一列对应的下三角元素变为零,逐步将矩阵转换为上 Hessenberg 形式。
具体来说,我们可以进行 $n-2$ 次 Householder 变换:首先考虑将第一列向量除第一个元素以外的部分投影到第一个坐标轴上,然后应用得到的反射变换到矩阵的其余部分,使得第一列下的元素都变为零。接着,我们考虑将第二列矢量除前两个元素外的部分,投影到另一个平面上,这个新平面与第一个 Householder 投影平面正交。重复上述过程,可以逐步将矩阵中的下三角部分变为零,最终得到上 Hessenberg 形式的矩阵。
由于 Householder 变换与牛顿迭代法等一些算法存在相似之处,因此我们可以使用迭代方式实现该算法。我们可以在每一步中计算出一次 Householder 变换,并将它应用到矩阵的其余部分。为了使算法尽可能地高效,我们可以利用矩阵乘法的结合律和交换律,将多个 Householder 变换合并为一个矩阵,从而减少计算总次数。
具体来说,我们可以按照以下步骤进行计算:
初始化矩阵 $P=A$,并令 $Q=I$,其中 $I$ 是单位矩阵。$P$ 的下三角部分应该为零。
对于 $i=1,2,\ldots,n-2$,计算反射向量 $v_i$ 和变换矩阵 $H_i$,并将其应用到 $P$ 中。
计算反射向量 $v_i$,使得 $H_i=I-2v_iv_i^T$ 为 $i+1$ 列及以下部分的 Householder 变换矩阵。
计算变换矩阵 $H_i$ 后,将其应用到 $P$ 中,即计算 $P'=H_iPH_i$。
将变换矩阵的乘积保存到 $Q$ 中,即计算 $Q'=QH_i$。
将变换后的矩阵和变换矩阵的乘积返回。
最终得到的矩阵是上 Hessenberg 形式,且通过迭代方式计算的步骤数最小。