学习QR分解

QR分解是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法。该算法对对称矩阵和非对称矩阵都适用。

定义:
一个矩阵 A ∈ R m × n , m ≥ n A \in \mathbb{R}^{m \times n}, m \geq n ARm×n,mn 可以被分解成 A = Q R A=Q R A=QR, 其中

  • Q ∈ R m × m Q \in \mathbb{R}^{m \times m} QRm×m 是正交矩阵
  • R ≡ [ R ^ 0 ] ∈ R m × n R \equiv\left[\begin{array}{l}\hat{R} \\ 0\end{array}\right] \in \mathbb{R}^{m \times n} R[R^0]Rm×n
  • R ^ ∈ R n × n \hat{R} \in \mathbb{R}^{n \times n} R^Rn×n 是上三角矩阵

下面给出一个直观的QR分解的例子
在这里插入图片描述
在这里插入图片描述
从QR分解角度看线性最小二乘

对于一个over-determined线性最小二乘问题 A x ≃ b A x \simeq b Axb,,其目标函数是
ϕ ( x ) = ∥ r ( x ) ∥ 2 2 = ∥ b − A x ∥ 2 2 = ∥ b − Q [ R ^ 0 ] x ∥ 2 2 = ∥ Q T ( b − Q [ R ^ 0 ] x ) ∥ 2 2 = ∥ Q T b − [ R ^ 0 ] x ∥ 2 2 \begin{aligned} \phi(x)=\|r(x)\|_{2}^{2} &=\|b-A x\|_{2}^{2}=\left\|b-Q\left[\begin{array}{l}\hat{R} \\ 0\end{array}\right] x\right\|_{2}^{2} \\ &=\left\|Q^{T}\left(b-Q\left[\begin{array}{c}\hat{R} \\ 0\end{array}\right] x\right)\right\|_{2}^{2} \\ &=\left\|Q^{T} b-\left[\begin{array}{c}\hat{R} \\ 0\end{array}\right] x\right\|_{2}^{2} \end{aligned} ϕ(x)=r(x)22=bAx22=bQ[R^0]x22=QT(bQ[R^0]x)22=QTb[R^0]x22

这里 Q ∈ R m × m , Q b ∈ R m × 1 , [ R ^ 0 ] ∈ R m × n , [ R ^ 0 ] x ∈ R m × 1 Q \in \mathbb{R}^{m \times m}, \quad Q b \in \mathbb{R}^{m \times 1},\left[\begin{array}{c}\hat{R} \\ 0\end{array}\right] \in \mathbb{R}^{m \times n},\left[\begin{array}{c}\hat{R} \\ 0\end{array}\right] x \in \mathbb{R}^{m \times 1} QRm×m,QbRm×1,[R^0]Rm×n,[R^0]xRm×1

如果把 Q T b Q^{T} b QTb 拆分成上下两部分,形式 [ R ^ 0 ] \left[\begin{array}{c}\hat{R} \\ 0\end{array}\right] [R^0]类似,
Q T b = [ c 1 c 2 ] Q^{T} b=\left[\begin{array}{l}c_{1} \\ c_{2}\end{array}\right] QTb=[c1c2], where c 1 ∈ R n , c 2 ∈ R m − n c_{1} \in \mathbb{R}^{n}, c_{2} \in \mathbb{R}^{m-n} c1Rn,c2Rmn。那么目标函数可以写成下面的形式:

∥ r ( x ) ∥ 2 2 = ∥ c 1 − R ^ x ∥ 2 2 + ∥ c 2 ∥ 2 2 \|r(x)\|_{2}^{2}=\left\|c_{1}-\hat{R} x\right\|_{2}^{2}+\left\|c_{2}\right\|_{2}^{2} r(x)22=c1R^x22+c222

可以看到,我们只能最小化前一部分 ∥ c 1 − R ^ x ∥ 2 2 \left\|c_{1}-\hat{R} x\right\|_{2}^{2} c1R^x22 到0,即 R ^ x = c 1 \hat{R} x=c_{1} R^x=c1 ∥ r ( x ) ∥ 2 2 \|r(x)\|_{2}^{2} r(x)22 的最小值为 ∥ c 2 ∥ 2 2 \left\|c_{2}\right\|_{2}^{2} c222 。这样处理之后就避免了求正规方程组中的 ( A T A ) − 1 \left(A^{T} A\right)^{-1} (ATA)1 ,避免了条件数变成 cond ⁡ ( A T A ) = cond ⁡ ( A ) 2 \operatorname{cond}\left(A^{T} A\right)=\operatorname{cond}(A)^{2} cond(ATA)=cond(A)2,所以QR分解法更加数值稳定。

  • 15
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gone_float

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值