σμ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
  • 日本語
  • 中文
Matrix Decompositions 学习路线›模块 1 · 特征值与谱›主题 1.2·~50分钟中级

幂迭代

路线进度模块 1/5 · 主题 2/3
1.2 幂迭代
—实验得分— / 100总 XP—连续天数—

通过反复相乘找到主方向

对 1000×10001000\times10001000×1000 的矩阵解特征多项式是不现实的,而且常常只需要最大的特征对,例如第一主成分。幂迭代只用矩阵乘向量就能找到它。从任意向量 x0\mathbf x_0x0​ 出发,重复 xk+1=Axk/∥Axk∥\mathbf x_{k+1}=A\mathbf x_k/\lVert A\mathbf x_k\rVertxk+1​=Axk​/∥Axk​∥。每次相乘,主特征向量方向上的分量都比其他分量被拉伸得更多,所以步数足够多之后,向量就指向该方向。

xk+1=Axk∥Axk∥,λ≈xkTAxkxkTxk,ek∝∣λ2λ1∣k\mathbf x_{k+1}=\frac{A\mathbf x_k}{\lVert A\mathbf x_k\rVert},\qquad \lambda\approx\frac{\mathbf x_k^{T}A\mathbf x_k}{\mathbf x_k^{T}\mathbf x_k},\qquad e_k\propto\Big|\frac{\lambda_2}{\lambda_1}\Big|^{k}xk+1​=∥Axk​∥Axk​​,λ≈xkT​xk​xkT​Axk​​,ek​∝​λ1​λ2​​​k(1)

把 x0=c1v1+c2v2+⋯\mathbf x_0=c_1\mathbf v_1+c_2\mathbf v_2+\cdotsx0​=c1​v1​+c2​v2​+⋯ 按特征向量展开。迭代 kkk 步后,各系数被乘以 λik\lambda_i^kλik​,所以第二项与第一项之比为 (λ2/λ1)k(\lambda_2/\lambda_1)^k(λ2​/λ1​)k。当 ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ 且初始向量在 v1\mathbf v_1v1​ 方向上有分量时方法收敛,速度由 ∣λ2/λ1∣|\lambda_2/\lambda_1|∣λ2​/λ1​∣ 决定:特征值越接近,收敛越慢。归一化只是防止数值溢出,重要的是方向。特征值的估计用瑞利商。要求下一个特征对,就从对称矩阵 AAA 中减去 λ1v1v1T\lambda_1\mathbf v_1\mathbf v_1^{T}λ1​v1​v1T​ 再重复,这叫降阶(deflation)。

手算几步取 A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}A=(21​12​),特征值为 3 和 1,主特征向量为 (1,1)(1,1)(1,1)。从 x0=(1,0)\mathbf x_0=(1,0)x0​=(1,0) 出发,得 Ax0=(2,1)A\mathbf x_0=(2,1)Ax0​=(2,1),(2,1)(2,1)(2,1) 的瑞利商是 (2,1)⋅(5,4)5=145=2.8\frac{(2,1)\cdot(5,4)}{5}=\frac{14}{5}=2.85(2,1)⋅(5,4)​=514​=2.8,已经接近 3。下一次乘积 A(2,1)=(5,4)A(2,1)=(5,4)A(2,1)=(5,4) 几乎沿 (1,1)(1,1)(1,1) 方向。误差每步缩小为原来的 ∣λ2/λ1∣=1/3|\lambda_2/\lambda_1|=1/3∣λ2​/λ1​∣=1/3,要缩小 10−610^{-6}10−6 倍,需要满足 3k≥1063^k\ge10^63k≥106 的 kkk,即 k=13k=13k=13。
  • 更新:乘以 AAA、除以范数,重复;每步成本是一次矩阵向量乘法。
  • 速度:误差按 ∣λ2/λ1∣k|\lambda_2/\lambda_1|^k∣λ2​/λ1​∣k 下降,最大的几个特征值越接近收敛越慢。
  • 条件:存在间隔 ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣,且初始向量与 v1\mathbf v_1v1​ 不正交。
同样的想法用于网页排名幂迭代是 PageRank 背后的方法,当协方差矩阵巨大或从不显式构造(只能做乘积 AxA\mathbf xAx)时,也用它廉价地计算成千上万个资产的第一主成分。库中完整分解的例程约需 n3n^3n3 次运算,而稠密矩阵上每一步幂迭代只需 n2n^2n2。

实验:评分内容

  • 收敛到什么15 分
  • 瑞利商20 分
  • 收敛比10 分
  • 迭代多少次15 分
  • 算法的顺序15 分
  • 何时变慢或失败15 分
  • 为什么要归一化10 分
0/ 已答 7 题
任务
1选择15 分未作答

当 ∣λ1∣>∣λ2∣|\lambda_1|>|\lambda_2|∣λ1​∣>∣λ2​∣ 时,幂迭代(在方向上)收敛到哪个向量?

2数值作答20 分未作答

对 A=(2112)A=\begin{pmatrix}2&1\\1&2\end{pmatrix}A=(21​12​) 和 x=(2,1)\mathbf x=(2,1)x=(2,1),计算 xTAx / xTx\mathbf x^{T}A\mathbf x\,/\,\mathbf x^{T}\mathbf xxTAx/xTx。

Rayleighquotient=Rayleigh quotient =Rayleighquotient=允许误差:± 0.01
3数值作答10 分未作答

某矩阵的特征值为 3 和 1。幂迭代每一步误差缩小为原来的多少倍?

ratio=ratio =ratio=允许误差:± 0.005
4数值作答15 分未作答

每步比值为 1/3 时,使误差至少缩小 10610^{6}106 倍(即 3k≥1063^k\ge10^63k≥106)的最小整数步数 kkk 是多少?

k=k =k=允许误差:± 0.01
5排列步骤15 分未作答

把幂迭代的步骤按正确顺序排列。

拖动以重新排序;也可聚焦某项,按空格抬起,用方向键移动,再按空格放下。

  1. 1除以范数得到单位向量
  2. 2把瑞利商作为特征值输出
  3. 3从非零向量开始
  4. 4重复直到方向不再变化
  5. 5用矩阵乘以向量
6选择15 分未作答

选出所有普通幂迭代收敛缓慢或不收敛的情形。

7用文字解释10 分未作答

用一两句话说明为什么每次相乘后都要除以范数。

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

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

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

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