σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Linear Algebra 学习路线›模块 4 · 最小二乘与矩阵分解›主题 4.2·~50分钟中级

QR 分解与格拉姆-施密特

路线进度模块 4/4 · 主题 2/4
4.2 QR 分解与格拉姆-施密特
—实验得分— / 100总 XP—连续天数—

构造标准正交基

标准正交的列是矩阵所能拥有的最“听话”的列:QTQ=IQ^{T}Q=IQTQ=I,所以 QQQ 保持长度和角度,从不放大误差。格拉姆-施密特方法能把任意线性无关的列 a1,…,an\mathbf{a}_1,\dots,\mathbf{a}_na1​,…,an​ 变成标准正交的列:取 q1=a1/∥a1∥\mathbf{q}_1=\mathbf{a}_1/\|\mathbf{a}_1\|q1​=a1​/∥a1​∥,之后对每一列减去它在已得各 q\mathbf{q}q 上的投影,再把剩下的部分归一化。

A=QR,Rij=qi⋅aj (i≤j),qj=aj−∑i<jRijqiRjjA=QR,\qquad R_{ij}=\mathbf{q}_i\cdot\mathbf{a}_j\ (i\le j),\qquad \mathbf{q}_j=\frac{\mathbf{a}_j-\sum_{i<j}R_{ij}\mathbf{q}_i}{R_{jj}}A=QR,Rij​=qi​⋅aj​ (i≤j),qj​=Rjj​aj​−∑i<j​Rij​qi​​(1)

把用到的数记录下来就得到 QR 分解:QQQ 是标准正交的列,RRR 是上三角矩阵,其元素 Rij=qi⋅ajR_{ij}=\mathbf{q}_i\cdot\mathbf{a}_jRij​=qi​⋅aj​,对角线上是长度 RjjR_{jj}Rjj​。对最小二乘,∥Ax−b∥=∥QRx−b∥\|A\mathbf{x}-\mathbf{b}\|=\|QR\mathbf{x}-\mathbf{b}\|∥Ax−b∥=∥QRx−b∥ 由 Rx^=QTbR\hat{\mathbf{x}}=Q^{T}\mathbf{b}Rx^=QTb 取得最小,这是一个用回代法求解的三角方程组,全程不构造 ATAA^{T}AATA。因此条件数是 κ(R)=κ(A)\kappa(R)=\kappa(A)κ(R)=κ(A),而不是 κ(A)2\kappa(A)^2κ(A)2。

对两列做格拉姆-施密特取 A=(3142)A=\begin{pmatrix}3&1\\4&2\end{pmatrix}A=(34​12​),两列为 a1=(3,4)\mathbf{a}_1=(3,4)a1​=(3,4) 和 a2=(1,2)\mathbf{a}_2=(1,2)a2​=(1,2)。则 R11=∥a1∥=5R_{11}=\|\mathbf{a}_1\|=5R11​=∥a1​∥=5,q1=(0.6, 0.8)\mathbf{q}_1=(0.6,\,0.8)q1​=(0.6,0.8)。接着 R12=q1⋅a2=2.2R_{12}=\mathbf{q}_1\cdot\mathbf{a}_2=2.2R12​=q1​⋅a2​=2.2,a2−2.2 q1=(−0.32, 0.24)\mathbf{a}_2-2.2\,\mathbf{q}_1=(-0.32,\,0.24)a2​−2.2q1​=(−0.32,0.24) 的长度为 R22=0.4R_{22}=0.4R22​=0.4,所以 q2=(−0.8, 0.6)\mathbf{q}_2=(-0.8,\,0.6)q2​=(−0.8,0.6)。于是 Q=(0.6−0.80.80.6)Q=\begin{pmatrix}0.6&-0.8\\0.8&0.6\end{pmatrix}Q=(0.60.8​−0.80.6​),R=(52.200.4)R=\begin{pmatrix}5&2.2\\0&0.4\end{pmatrix}R=(50​2.20.4​)。验证:det⁡A=2=det⁡R\det A=2=\det RdetA=2=detR。
  • Q:标准正交列,QTQ=IQ^{T}Q=IQTQ=I,不放大误差。
  • R:上三角矩阵;对角线上是去掉之前各方向后剩下的长度。
  • 修正格拉姆-施密特(库中用豪斯霍尔德反射)在浮点运算中能保持 QQQ 的正交性;教科书版本遇到近乎相关的列会丢失正交性。
为什么库用 QR 做回归金融中的回归变量常常近乎共线(许多相关因子、多项式特征)。正规方程会把这个条件数平方,并悄无声息地返回无意义的结果,而 QR(或 SVD)能应付。这正是 NumPy 和 statsmodels 的最小二乘例程背后的算法,也是你将在综合项目中亲手实现的算法。

实验:评分内容

  • 第一个对角元素10 分
  • 矩阵 Q20 分
  • 矩阵 R20 分
  • 由 R 求行列式15 分
  • 用 QR 做最小二乘15 分
  • 为什么 QR 更精确20 分
0/ 已答 6 题
任务
1数值作答10 分未作答

设 A=(3142)A=\begin{pmatrix}3&1\\4&2\end{pmatrix}A=(34​12​),两列为 a1=(3,4)\mathbf{a}_1=(3,4)a1​=(3,4) 和 a2=(1,2)\mathbf{a}_2=(1,2)a2​=(1,2)。求 R11=∥a1∥R_{11}=\|\mathbf{a}_1\|R11​=∥a1​∥。

R11=R_{11} =R11​=允许误差:± 0.001
2矩阵 · 向量20 分未作答

设 A=(3142)A=\begin{pmatrix}3&1\\4&2\end{pmatrix}A=(34​12​),两列为 a1=(3,4)\mathbf{a}_1=(3,4)a1​=(3,4) 和 a2=(1,2)\mathbf{a}_2=(1,2)a2​=(1,2)。做格拉姆-施密特并填写 Q=(q1 q2)Q=(\mathbf{q}_1\ \mathbf{q}_2)Q=(q1​ q2​)(可用小数)。

Q=Q =Q=
3矩阵 · 向量20 分未作答

设 A=(3142)A=\begin{pmatrix}3&1\\4&2\end{pmatrix}A=(34​12​),两列为 a1=(3,4)\mathbf{a}_1=(3,4)a1​=(3,4) 和 a2=(1,2)\mathbf{a}_2=(1,2)a2​=(1,2)。填写上三角矩阵 RRR,使 A=QRA=QRA=QR。

R=R =R=
4数值作答15 分未作答

设 A=(3142)A=\begin{pmatrix}3&1\\4&2\end{pmatrix}A=(34​12​),两列为 a1=(3,4)\mathbf{a}_1=(3,4)a1​=(3,4) 和 a2=(1,2)\mathbf{a}_2=(1,2)a2​=(1,2)。因为 QQQ 是旋转(det⁡Q=1\det Q=1detQ=1),所以 ∣det⁡A∣=∣det⁡R∣|\det A|=|\det R|∣detA∣=∣detR∣。请由 R=(52.200.4)R=\begin{pmatrix}5&2.2\\0&0.4\end{pmatrix}R=(50​2.20.4​) 的对角线计算。

∣det⁡A∣=|\det A| =∣detA∣=允许误差:± 0.001
5选择15 分未作答

已知 A=QRA=QRA=QR,哪一步给出 Ax≈bA\mathbf{x}\approx\mathbf{b}Ax≈b 的最小二乘解?

6用文字解释20 分未作答

请用两句话说明为什么用 QR 解最小二乘比用正规方程更精确。

数学模式键盘或 LaTeX 输入第 1/6 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续