House holder reflections and Givens rotations

House holder reflections and Givens rotations

Householder反射和Givens旋转是两种常见的线性代数方法,用于将一个矩阵分解为正交矩阵(Q)和上三角矩阵®,即QR分解。它们在数值线性代数中非常重要,特别是在求解线性方程组和特征值问题中。以下是这两种方法的原理及它们与QR分解的关系:

Householder反射 (Householder Reflection)

Householder反射是一种利用反射将一个向量转换为另一个向量的方法。具体来说,Householder反射可以用于将一个向量变成一个特定方向的向量,比如将一个向量变成与标准基向量平行的向量。这种方法的主要特点是,它可以在很少的运算步骤中完成这一操作,因此在数值计算中非常高效。

原理

  1. 给定一个向量 x x x,我们希望将其转换为与标准基向量 e 1 e_1 e1 平行的向量。为此,我们构造一个Householder矩阵 H H H
  2. Householder矩阵 H H H 的形式为:
    H = I − 2 v v T v T v H = I - 2 \frac{vv^T}{v^Tv} H=I2vTvvvT
    其中, v v v 是一个特定构造的向量,使得 H x Hx Hx e 1 e_1 e1 平行。

步骤

  1. 选择 v = x + sign ( x 1 ) ∥ x ∥ 2 e 1 v = x + \text{sign}(x_1) \|x\|_2 e_1 v=x+sign(x1)x2e1,其中 ∥ x ∥ 2 \|x\|_2 x2 x x x 的2-范数, sign ( x 1 ) \text{sign}(x_1) sign(x1) x 1 x_1 x1 的符号。
  2. 计算 H H H 并使用 H H H 对原矩阵 A A A 进行反射,得到一个新的矩阵 A ′ A' A ,其中v对应的列被转换为与标准基向量平行,即列中对应行的元素不为0,其余元素均为0。

通过多次应用Householder反射,我们可以将矩阵 A A A 转换为一个上三角矩阵 R R R,同时累积这些反射矩阵以形成正交矩阵 Q Q Q

Givens旋转 (Givens Rotation)

Givens旋转是一种通过旋转将一个向量的某个分量置零的方法。这种方法非常适合用于稀疏矩阵,因为它可以有选择地仅对矩阵的某些元素进行操作。

原理

  1. Givens旋转通过构造一个旋转矩阵 G G G 来对两个元素进行旋转,使得其中一个元素变为零。
  2. Givens旋转矩阵 G ( i , j , θ ) G(i,j,\theta) G(i,j,θ) 的形式为:
    G = [ 1 ⋱ c s 1 − s c ⋱ 1 ] G = \begin{bmatrix} 1 & & & & & \\ & \ddots & & & & \\ & & c & & s & \\ & & & 1 & & \\ & & -s & & c & \\ & & & & & \ddots \\ & & & & & & 1 \\ \end{bmatrix} G= 1cs1sc1
    其中, c = cos ⁡ ( θ ) c = \cos(\theta) c=cos(θ) s = sin ⁡ ( θ ) s = \sin(\theta) s=sin(θ)

步骤

  1. 选择 θ \theta θ 使得 c = a a 2 + b 2 c = \frac{a}{\sqrt{a^2 + b^2}} c=a2+b2 a s = b a 2 + b 2 s = \frac{b}{\sqrt{a^2 + b^2}} s=a2+b2 b,其中 a a a b b b 是矩阵中要被操作的两个元素。
  2. 通过旋转矩阵 G G G 对矩阵进行操作,将其中一个元素置零。

eg:
G = [ c s − s c ] , v = [ a b ] G= \begin{bmatrix} c & s\\ -s & c \end{bmatrix}, v=\begin{bmatrix} a\\b\end{bmatrix} G=[cssc],v=[ab]
则可得:
G v = [ c o s θ ∗ a + s i n θ ∗ b − s i n θ ∗ a + c o s θ ∗ b ] = [ a + b 0 ] Gv=\begin{bmatrix} cos\theta *a+sin\theta *b\\-sin\theta *a+cos\theta *b\end{bmatrix} =\begin{bmatrix} a+b\\0\end{bmatrix} Gv=[cosθa+sinθbsinθa+cosθb]=[a+b0]

通过多次应用Givens旋转,可以将矩阵 A A A 转换为上三角矩阵 R R R,同时累积这些旋转矩阵以形成正交矩阵 Q Q Q

Householder反射和Givens旋转与QR分解的关系

这两种方法都可以用于QR分解,但它们有各自的优缺点:

  • Householder反射通常在处理密集矩阵时更有效,因为它每次操作可以消去一个向量中的多个元素,从而减少总的运算次数。
  • Givens旋转在处理稀疏矩阵时更有效,因为它可以有选择地仅对矩阵的某些元素进行操作,从而保持矩阵的稀疏性。

总体来说,QR分解的目标是通过一系列的正交变换(Householder反射或Givens旋转)将原矩阵 A A A 分解为一个正交矩阵 Q Q Q 和一个上三角矩阵 R R R
A = Q R A = QR A=QR
其中, Q Q Q 是一个正交矩阵, R R R 是一个上三角矩阵。Householder反射和Givens旋转提供了实现这一目标的两种不同方法。

参考链接

《2013 Matrix Computations 4th》

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值