1. 设定
设 S,S⋆⊂Rn 是两个 k 维子空间,n≥k。取它们的标准正交基,排成
U,U⋆∈Rn×k,U⊤U=(U⋆)⊤U⋆=Ik,
于是
S=range(U),S⋆=range(U⋆).
两者的重叠矩阵为
C=U⊤U⋆.
设 C 的奇异值分解为
C=ADB⊤,D=diag(c1,…,ck),
其中 A,B 是正交矩阵,奇异值取非负并按降序排列:
c1≥⋯≥ck≥0.
记 ai,bi 分别为 A,B 的第 i 列。
2. 主角
单位向量 p∈S、q∈S⋆ 的内积不超过 1。把 q 换成 −q 会改变内积的符号,所以最大值落在 [0,1] 中。第一主角 θ1∈[0,π/2] 由
cosθ1=∥p∥2=∥q∥2=1maxp⊤q
定义。达到最大值的 p1,q1 称为第一对主向量。
前 i−1 对主向量取定之后,第 i 个主角仍是这样的最大内积,只是增加正交约束:
cosθi=maxp⊤q,
其中 ∥p∥2=∥q∥2=1,p∈S,q∈S⋆,并且
p⊥p1,…,pi−1,q⊥q1,…,qi−1.
达到最大值的 pi,qi 称为第 i 对主向量。下面证明可以取
pi=Uai,qi=U⋆bi,
并且 cosθi=ci。
3. 最大内积等于奇异值
任意 p∈S、q∈S⋆ 可写成 p=Ua、q=U⋆b。由列正交,
∥p∥2=∥a∥2,∥q∥2=∥b∥2,
并且
p⊤q=(Ua)⊤(U⋆b)=a⊤Cb.
若 pj=Uaj,则 p⊤pj=a⊤aj,所以
p⊥pj⟺a⊥aj.
对 q 与 b 同样有 q⊥qj⟺b⊥bj。主角的递归极值因此等价于在相应约束下求 a⊤Cb 的最大值。
令
x=A⊤a,y=B⊤b.
A,B 正交,故 ∥x∥2=∥a∥2,∥y∥2=∥b∥2,并且
a⊤Cb=x⊤Dy=ℓ=1∑kcℓxℓyℓ.
又因 aj=Aej,所以 a⊥aj 等价于 xj=0;b⊥bj 等价于 yj=0。
沿奇异向量归纳。考虑前 i−1 对已经取为 pj=Uaj、qj=U⋆bj 的情形,第 i 步的约束就是
x1=⋯=xi−1=0,y1=⋯=yi−1=0,
目标函数只剩下
a⊤Cb=ℓ=i∑kcℓxℓyℓ.
对 ℓ≥i 有 0≤cℓ≤ci,因此
ℓ=i∑kcℓxℓyℓ≤ℓ=i∑kcℓ∣xℓyℓ∣≤ciℓ=i∑k∣xℓyℓ∣≤ci(ℓ=i∑kxℓ2)1/2(ℓ=i∑kyℓ2)1/2=ci.
最后一步是 Cauchy–Schwarz 不等式。又因 ∥x∥2=∥y∥2=1,被置零的坐标不进入平方和,所以两个根式都等于 1。x=y=ei 满足上述约束,并使每一处取等号,对应 a=ai、b=bi。
i=1 时没有正交约束,因此 p1=Ua1、q1=U⋆b1 是第一对主向量,且 cosθ1=c1。若前 i−1 对都如此选取,则第 i 对可取 pi=Uai、qi=U⋆bi,并且
maxa⊤Cb=ci.
也就是
cosθi=ci.
由此得到 ci≤1。再由 c1≥⋯≥ck 以及 arccos 单调递减,
0≤θ1≤⋯≤θk≤2π.
这组主向量在各自的子空间中标准正交:
pi⊤pj=ai⊤aj=δij,
qi 亦然。