xDLARFB中计算块反射器的算法是什么

计算科学 矩阵 参考请求
2021-12-22 00:45:26

Golub 和 Van Loan 在 Matrix Computations 中很好地描述了计算单个 Householder 反射器以将矩阵列的一部分归零的理论。但是,Lapack 的 xDLARFB 例程中的阻塞算法与矩阵计算中的描述不匹配。这本书描述了形式的非对称反射器的计算,其中 Lapack 计算了形式的东西。Lapack 中实现的算法在哪里描述?或者,任何人都可以提供正在发生的事情的高级图片吗?IWYTIVTVT

2个回答

杰克是对的,AFAIK,LAPACK 使用的是“紧凑的形式:” 其中是三角形。它等于基本反射器的乘积。并且反射器的产品通常不是反射器。是它自己的逆,是反射器不是,即使是。)但是即使紧凑的形式不是反射器,它也可以有效地完成通常的工作.WYIτVTVHT
RR
R1R2R1R2IR1R1R2R2WY

形式的真正(正交、对称)块反射器的理论 (例如,可用于制作矩阵块上三角形)包含在 Parlett 和我的一篇论文中,该论文发表在SINUM 25:1 (1988), p. 189-205IτVVH

我想我应该给出一个实际的答案,而不仅仅是评论。考虑到两个 Householder 变换的乘积,比如I - \ tau_1I(如果是单位向量,则,但通常有用的是缩放向量以使其第一个条目为 1,然后将剩余条目直接存储在正在修改的矩阵中) . 我们看到TIVTVHIτ1v1v1HIτ2v2v2Hv1v2τ1=τ2=2

(Iτ1v1v1H)(Iτ2v2v2H)=Iτ1v1v1Hτ2v2v2H+τ1τ2(v1Hv2)v1v2H,

作为读者练习,可以将其重新排列为

I(v1v2)(τ1τ1τ2v1Hv20τ2)(v1v2)H.
这种见解实际上可以推广到 Householder 反射的任意产物,我建议阅读Accumulating Householder transformations, revisited以及Schreiber 提到的论文