将学习到什么

CS 分解是分划的酉矩阵在分划的酉等价之下的标准型. 它的证明涉及奇异值分解、QR 分解以及一个简单习题.

 


一个直观的习题

设 \(\Gamma, L \in M_p\). 假设 \(\Gamma = \mathrm{diag}(\gamma_1,\cdots, \gamma_p)\), 其中 \(0 \leqslant \gamma_1 \leqslant \cdots \leqslant \gamma_p \leqslant 1\), \(L=[\ell_{ij}]\) 是下三角的, 则
\begin{align}
\begin{bmatrix} \Gamma & L & 0\end{bmatrix}=\begin{bmatrix} \gamma_1 & &&& \ell_{11} & & & 0 & 0 & & & 0 \\
& \gamma_2 &&& \ell_{21} & \ell_{22} & & & & \ddots & & \\
& & \ddots & & \vdots & \vdots & \ddots & & & & \ddots & \\
& & & \gamma_p & \ell_{p1} & \ell_{p2} & \cdots & \ell_{pp} & 0 & & & 0 \end{bmatrix} \in M_{p,2p+k}
\end{align}
如果 \([\Gamma \quad L \quad 0]\) 的行是标准正交的,我们断定 \(L\) 是对角的, \(L=\mathrm{diag}(\lambda_1,\cdots , \lambda_p)\), 且 \(\lvert \lambda_j \rvert ^2 = 1-\gamma_j^2,\,\,j=1,\cdots,p\). 即
\begin{align}
\begin{bmatrix} \Gamma & L & 0\end{bmatrix}=\begin{bmatrix} \gamma_1 & &&& \lambda_1 & & & & 0 & & & 0 \\
& \gamma_2 &&& & \lambda_2 & & & & \ddots & & \\
& & \ddots & & & & \ddots & & & & \ddots & \\
& & & \gamma_p & & & & \lambda_p & 0 & & & 0 \end{bmatrix}
\end{align}

对行着手去做,证明很直观.
 

CS 分解定理

  定理(CS 分解): 设 \(p,q\) 与 \(n\) 是给定的整数,其中 \(1<p \leqslant q < n\) 且 \(p+q =n\). 设 \(U= \begin{bmatrix} U_{11} & U_{12} \\ U_{21} & U_{22} \end{bmatrix} \in M_n\) 是酉矩阵,其中 \(U_{11} \in M_p\) 且 \(U_{22} \in M_q\). 则存在酉矩阵 \(V_1,W_1 \in M_p\) 以及 \(V_2, W_2 \in M_q\), 使得
\begin{align}
\begin{bmatrix} V_1 & 0 \\ 0 & W_1 \end{bmatrix} \begin{bmatrix} U_{11} & U_{12} \\ U_{21} & U_{22} \end{bmatrix} \begin{bmatrix} V_2 & 0 \\ 0 & W_2 \end{bmatrix} = \begin{bmatrix} C & S & 0 \\ -S & C & 0 \\ 0 & 0& I_{q-p} \end{bmatrix}
\end{align}
其中 \(C = \mathrm{diag} (\sigma_1,\cdots, \sigma_p)\), \(\sigma_1 \geqslant \cdots \geqslant \sigma_p\) 是 \(U_{11}\) 的按照非增次序排列的奇异值,而 \(S= \mathrm{diag} \left( (1-\sigma_1^2)^{1/2},\cdots, (1-\sigma_1^p)^{1/2} \right)\)
 
  证明: 基本思路是做出一系列的酉等价,它们一步一步将 \(U\) 化简为具有所需要的形式的分块矩阵. 第一步是利用奇异值分解:记 \(U_{11}=V \Sigma W=(VK_p)(K_p\Sigma K_p)(K_pW)=\tilde{V} \Gamma \tilde{W}\), 其中 \(V,W \in M_p\) 是酉矩阵,\(K_p\) 是 \(p\times p\) 反序矩阵. \(\tilde{V}=VK_p\), \(\tilde{W}=K_pW\), \(\Sigma = \mathrm{diag}(\sigma_1, \cdots, \sigma_p)\), 其中 \(\sigma_1 \geqslant \cdots \geqslant \sigma_p\), 且 \(\Gamma = K_p\Sigma K_p = \mathrm{diag}(\sigma_p, \cdots, \sigma_1)\). 计算
\begin{align}
\begin{bmatrix} \tilde{V}^* & 0 \\ 0 & I_q \end{bmatrix} \begin{bmatrix} U_{11} & U_{12} \\ U_{21} & U_{22} \end{bmatrix} \begin{bmatrix} \tilde{W}^* & 0 \\ 0 & I_q \end{bmatrix} = \begin{bmatrix} \Gamma & \hat{V}^*U_{12} \\ U_{21}\tilde{W}^* & U_{22} \end{bmatrix}
\end{align}
这个矩阵是酉矩阵(它是三个酉矩阵的乘积),所以每一列的 Euclid 范数均为 1 ,这就意味着 \(\sigma_1 = \gamma_p \leqslant 1\). 现在利用 QR 分解以及它的变形来记 \(\tilde{V}^*U_{12}=[L \quad 0] \tilde{Q}\) 以及 \(U_{21}\tilde{W}^* = Q \begin{bmatrix} R \\ 0 \end{bmatrix}\), 其中 \(\tilde{Q},Q \in M_q\) 是酉矩阵, \(L=[\ell_{ij}] \in M_p\) 是下三角矩阵,而 \(R=[r_{ij}] \in M_p\) 是上三角矩阵. 计算
\begin{align}
\begin{bmatrix} I_p & 0 \\ 0 & Q^* \end{bmatrix} \begin{bmatrix} \Gamma & \hat{V}^*U_{12} \\ U_{21}\tilde{W}^* & U_{22} \end{bmatrix} \begin{bmatrix} I_p & 0 \\ 0 &\tilde{Q}^* \end{bmatrix} = \begin{bmatrix} \Gamma &\begin{bmatrix} L & 0 \end{bmatrix} \\ \begin{bmatrix} R \\ 0 \end{bmatrix} & Q^*U_{22}\tilde{Q}^* \end{bmatrix}
\end{align}
上一习题中和论证方法表明:\(L\) 与 \(R\) 两者都是对角的,且对每个 \(i=1,\cdots,p\) 有 \(\lvert r_{ii} \rvert = \lvert \ell_{ii} \rvert = \sqrt{1-\gamma_i^2}\). 设 \(M=\mathrm{diag}(\sqrt{1-\gamma_1^2},\cdots, \sqrt{1-\gamma_p^2})\), 并令 \(t=\max \{ i:\gamma_i <1 \}\). 则存在对角酉矩阵 \(D_1,D_2 \in M_p\) 使得 \(D_1R=-M\) 以及 \(LD_2=M\), 所以通过 \(I_p \oplus D_1 \oplus I_{n-2p}\) 在左边作成的酉相合与通过 \(I_p \oplus D_2 \oplus I_{n-2p}\) 在右边作成的酉相合产生出一个形如
\begin{align}
\begin{bmatrix} \Gamma &\begin{bmatrix} M & 0 \end{bmatrix} \\ \begin{bmatrix} -M \\ 0 \end{bmatrix} & Z \end{bmatrix} = \begin{bmatrix} \Gamma_1 & 0 & M_1 & 0 & 0 \\ 0 & I_{p-t} & 0 & 0_{p-t} & 0 \\ -M_1 & 0 & Z_{11} & Z_{12} & Z_{13} \\ 0 & 0_{p-t} & Z_{21} & Z_{22} & Z_{23} \\ 0 & 0& Z_{31} & Z_{32} & Z_{33} \end{bmatrix}
\end{align}
的酉矩阵,其中有分划的酉矩阵 \(\Gamma = \Gamma_1 \oplus I_{p-t}\) 以及 \(M=M_1 \oplus 0_{p-t}\), 所以 \(M_1\) 是非奇异的. 第一行和第三分块列的正交性(以及 \(M_1\) 的非奇异性)就蕴含 \(Z_{11}=\Gamma_1\), 因此要求每一行和每一列都是单位向量就确保了 \(Z_{12}\), \(Z_{13}\), \(Z_{21}\) 以及 \(Z_{31}\) 全都是零分块. 从而我们有
\begin{align}
\begin{bmatrix} \Gamma_1 & 0 & M_1 & 0 & 0 \\ 0 & I_{p-t} & 0 & 0_{p-t} & 0 \\ -M_1 & 0 & Z_{11} & 0& 0 \\ 0 & 0_{p-t} & 0 & Z_{22} & Z_{23} \\ 0 & 0& 0 & Z_{32} & Z_{33} \end{bmatrix}
\end{align}
其右下角分块 \(\tilde{Z}= \begin{bmatrix} Z_{22} & Z_{23} \\ Z_{32} & Z_{33} \end{bmatrix} \in M_{q-t}\) 是酉矩阵的一个直和项,故而它是酉矩阵,于是对某个酉矩阵 \(\hat{V},\hat{W} \in M_{q-1}\) 有 \(\tilde{Z}=\hat{V}I_{q-t}\hat{W}\). 通过 \(I_{p+t} \oplus \hat{V}^*\) 在左边作出的酉等价以及通过 \(I_{p+t} \oplus \hat{W}^*\) 在右边作出的酉等价产生出分块矩阵
\begin{align}
\begin{bmatrix} \Gamma_1 & 0 & M_1 & 0 & 0 \\ 0 & I_{p-t} & 0 & 0_{p-t} & 0 \\ -M_1 & 0 & Z_{11} & 0& 0 \\ 0 & 0_{p-t} & 0 & I_{p-t} & 0 \\ 0 & 0& 0 & 0 & I_{q-p} \end{bmatrix}
\end{align}
最后通过 \(K_p \oplus K_p \oplus I_{q-p}\) 作出的酉相似产生出一个酉矩阵,它具有所要求的构造.

 

理解 CS 分解定理

CS 分解是与 \(I_p \oplus I_q\) 共形地加以分划且阶为 \(n=p+q\) (为方便起见,设 \(p \leqslant q\), 但这不是本质的要求)的所有酉矩阵 \(U= \begin{bmatrix} U_{11} & U_{12} \\ U_{21} & U_{22} \end{bmatrix} \in M_n\) 组成的集合的一种参数化的描述. 这些参数是四个更小的任意的酉矩阵 \(V_1,W_1 \in M_p\) 以及 \(V_2, W_2 \in M_q\),以及任意 \(p\) 个实数 \(\sigma_1,\cdots, \sigma_p\), \(1 \geqslant \sigma_1 \geqslant \cdots \geqslant \sigma_p \geqslant 0\). 这四个分块的参数化是
\begin{align}
U_{11} &= V_1 C W_1 , \quad &U_{12} &=V_1 \begin{bmatrix} S & 0 \end{bmatrix} W_2 \\
U_{21} &= V_2 \begin{bmatrix} -S \\ 0 \end{bmatrix} W_1 &U_{22} &= V_2 \begin{bmatrix} C & 0 \\ 0 & I_{q-p} \end{bmatrix} W_2
\end{align}
其中 \(C=\mathrm{diag}(\sigma_1, \cdots, \sigma_p)\), 而 \(S= \mathrm{diag} \left( (1-\sigma_1^2)^{1/2},\cdots, (1-\sigma_1^p)^{1/2} \right)\). CS 分解是一种用途广泛的工具,特别是在与子空间之间的距离以及角度有关的问题中.

 


应该知道什么

  • CS 分解是分划的酉矩阵在分划的酉等价之下的标准型

CS 分解的更多相关文章

  1. Asp.Net MVC<九>:OWIN,关于StartUp.cs

    https://msdn.microsoft.com/zh-cn/magazine/dn451439.aspx(Katana 项目入门) 一不小心写了个WEB服务器 快刀斩乱麻之 Katana OWI ...

  2. 分解成3NF的保持函数依赖的分解算法:

    转换成3NF的保持函数依赖的分解算法: ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U= ...

  3. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  4. Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D

    游戏动画基础 Animation组件 Animation组件是对于老的动画系统来说的. 老的动画形同相应的动画就是clip,每一个运动都是一段单独的动画,使用Play()或CrossFade(),直接 ...

  5. SVD分解技术详解

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  6. ASP.NET Core 菜鸟之路:从Startup.cs说起

    1.前言 本文主要是以Visual Studio 2017 默认的 WebApi 模板作为基架,基于Asp .Net Core 1.0,本文面向的是初学者,如果你有 ASP.NET Core 相关实践 ...

  7. unity3D:游戏分解之曲线

    一提到曲线,很多新手就头疼了,包括我.查了很多资料,终于有个大概的了解.想深入了解曲线原理的,推荐一个链接http://www.cnblogs.com/jay-dong/archive/2012/09 ...

  8. 稀疏分解中的MP与OMP算法

    MP:matching pursuit匹配追踪 OMP:正交匹配追踪 主要介绍MP与OMP算法的思想与流程,解释为什么需要引入正交? !!今天发现一个重大问题,是在读了博主的正交匹配追踪(OMP)在稀 ...

  9. CS(计算机科学)知识体

    附 录 A                   CS( 计算机科学)知识体 计算教程 2001 报告的这篇附录定义了计算机科学本科教学计划中可能讲授的知识领域.该分类方案的依据及其历史.结构和应用的其 ...

随机推荐

  1. Jmeter调用JAVA jar包传参

    http://blog.csdn.net/xiazdong/article/details/7873767#

  2. lua面向对象实现(实例化对象、继承、多态、多继承、单例模式)

    lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模 ...

  3. Pycharm2018.3.1永久激活

    Pycharm Professional 2018.3.1 版已正式发布,新版本添加对Python3.7的支持.作为强大的开发工具,但每次注册让人头疼,本着分享的心态,提供以下解决方案,亲测有效!本方 ...

  4. 上传到git

    https://blog.csdn.net/Lucky_LXG/article/details/77849212

  5. JPA-day04 核心API 一级缓存 主键生成策略 实体对象的4种状态 多对一关系 延迟加载

  6. PostgreSQL-5-条件过滤

    基本语法 SELECT column1, column2, columnN FROM table_name WHERE [search_condition] 操作符 =等于:<>不等于:! ...

  7. ios开发static关键字的理解

    :static关键字修饰局部变量::当static关键字修饰局部变量时,该局部变量只会初始化一次,在系统中只有一份内存 :static关键字不可以改变局部变量的作用域,但是可延长局部变量的生命周期,该 ...

  8. Codeforces 1119E(贪心)

    题目传送 贪心方法 按边从小到大扫,先凑3个,没凑足的记录一下数量,后面大的优先跟这些凑,俩带走一个,多余的再凑3个,再--就这样走到最后即可. const int maxn = 3e5 + 5; i ...

  9. MDX之Avg函数使用

    日均值是比较常见的指标,本文对 MDX 计算日均值做一个总结 MDX 计算日均值,表达式一 WITH MEMBER Measures.[日均值] AS   Avg(      Descendants( ...

  10. js实现对象或者数组深拷贝

    今天遇到个问题,就是vue绑定的数组在push中所有的数组都会跟着改变.这个主要是因为 JavaScript中对象或者数组等引用类型,直接拷贝,改变一个另外一个也会改变: 有个简单的方法就是先转换为字 ...