σμ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 学习路线›模块 1 · 向量与矩阵›主题 1.3·~40分钟入门

矩阵乘法及其代价

路线进度模块 1/4 · 主题 3/3
1.3 矩阵乘法及其代价
—实验得分— / 100总 XP—连续天数—

映射的复合

乘积 ABABAB 是先作用 BBB 再作用 AAA 得到的映射:(AB)x=A(Bx)(AB)\mathbf{x}=A(B\mathbf{x})(AB)x=A(Bx)。乘积的第 (i,j)(i,j)(i,j) 个元素是 AAA 的第 iii 行与 BBB 的第 jjj 列的点积,所以形状必须匹配:m×nm\times nm×n 矩阵乘 n×pn\times pn×p 矩阵得 m×pm\times pm×p 矩阵。乘法满足结合律 (AB)C=A(BC)(AB)C=A(BC)(AB)C=A(BC) 和对加法的分配律,但一般不满足交换律:AB≠BAAB\neq BAAB=BA,因为两个操作的顺序很重要。

(AB)ij=∑k=1nAikBkj,(AB)T=BTAT(AB)_{ij}=\sum_{k=1}^{n}A_{ik}B_{kj},\qquad (AB)^{T}=B^{T}A^{T}(AB)ij​=k=1∑n​Aik​Bkj​,(AB)T=BTAT(1)

对 m×nm\times nm×n 与 n×pn\times pn×p 矩阵计算 ABABAB 需要 mnpmnpmnp 次乘加(约 2mnp2mnp2mnp 次浮点运算)。两个 n×nn\times nn×n 矩阵就是 n3n^3n3:nnn 翻倍,工作量变成 8 倍。矩阵乘向量只需 n2n^2n2。因为乘法满足结合律,括号的位置不改变结果,却可能极大地改变代价。

顺序有两重意义取 A=(1201)A=\begin{pmatrix}1&2\\0&1\end{pmatrix}A=(10​21​)、B=(0110)B=\begin{pmatrix}0&1\\1&0\end{pmatrix}B=(01​10​):AB=(2110)AB=\begin{pmatrix}2&1\\1&0\end{pmatrix}AB=(21​10​),而 BA=(0112)BA=\begin{pmatrix}0&1\\1&2\end{pmatrix}BA=(01​12​),顺序改变了结果。括号则改变代价:对 n×nn\times nn×n 矩阵 A,BA,BA,B 和向量 v\mathbf{v}v,(AB)v(AB)\mathbf{v}(AB)v 需要 n3+n2n^3+n^2n3+n2 次乘加,而 A(Bv)A(B\mathbf{v})A(Bv) 只需 2n22n^22n2 次。n=1000n=1000n=1000 时,是十亿次对两百万次。
  • 形状规则:(m×n)(n×p)=(m×p)(m\times n)(n\times p)=(m\times p)(m×n)(n×p)=(m×p);内侧的维数必须一致。
  • 不可交换:一般 AB≠BAAB\neq BAAB=BA,因此不要交换因子。
  • 代价:mnpmnpmnp 次乘加;矩阵乘向量是 n2n^2n2,矩阵乘矩阵是 n3n^3n3。
从向量一侧加括号当一串矩阵以向量结尾时,要从向量一侧开始乘:A(B(Cv))A(B(C\mathbf{v}))A(B(Cv)) 只用到矩阵乘向量。组合风险 wTΣw\mathbf{w}^{T}\Sigma\mathbf{w}wTΣw 要算成 w⋅(Σw)\mathbf{w}\cdot(\Sigma\mathbf{w})w⋅(Σw),而不是先由 w\mathbf{w}w 构造出一个矩阵。

实验:评分内容

  • 乘积 AB20 分
  • 乘积 BA15 分
  • 乘积的形状10 分
  • 数乘加次数15 分
  • 两种加括号的方式20 分
  • 为什么加括号很重要20 分
0/ 已答 6 题
任务
1矩阵 · 向量20 分未作答

设 A=(1201)A=\begin{pmatrix}1&2\\0&1\end{pmatrix}A=(10​21​),B=(0110)B=\begin{pmatrix}0&1\\1&0\end{pmatrix}B=(01​10​)。填写 ABABAB。

AB=AB =AB=
2矩阵 · 向量15 分未作答

设 A=(1201)A=\begin{pmatrix}1&2\\0&1\end{pmatrix}A=(10​21​),B=(0110)B=\begin{pmatrix}0&1\\1&0\end{pmatrix}B=(01​10​)。填写 BABABA,并注意它与 ABABAB 不同。

BA=BA =BA=
3选择10 分未作答

PPP 是 3×43\times43×4,QQQ 是 4×24\times24×2。PQPQPQ 的形状是什么?

4数值作答15 分未作答

一个 200×300200\times300200×300 矩阵乘一个 300×100300\times100300×100 矩阵需要多少次乘加?

[objectObject]=[object Object] =[objectObject]=允许误差:± 0.1%
5数值作答20 分未作答

AAA 和 BBB 是 1000×10001000\times10001000×1000,v\mathbf{v}v 有 1000 个分量。(AB)v(AB)\mathbf{v}(AB)v 比 A(Bv)A(B\mathbf{v})A(Bv) 多需要多少倍的乘加?比较 n3+n2n^3+n^2n3+n2 与 2n22n^22n2。

[objectObject]=[object Object] =[objectObject]=允许误差:± 1
6用文字解释20 分未作答

请用两句话说明为什么应计算 A(Bv)A(B\mathbf{v})A(Bv) 而不是 (AB)v(AB)\mathbf{v}(AB)v,以及两者结果是否不同。

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

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

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

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