Cauchy-Binet 公式的应用
Binet-Cauchy 公式
我们知道,方阵的行列式不是方阵的线性函数,即对 \(\forall \lambda\in F,A,B\in F^{n\times n}\),有 \(det(A+B)\neq detA+detB\) 和 \(det(\lambda A)\neq \lambda detA\);而方阵的行列式是方阵的可乘函数,即 \(det(AB)=detA\cdot detB\). 那么如果 \(A,B\) 不是方阵,而是长方矩阵,那么就可以推广得到 Cauchy-Binet 公式。
Theorem(Cauchy-Binet)[1] 设 \(A=(a_{ij})\) 是 \(m\times n\) 矩阵,\(B=(b_{ij})\) 是 \(n\times m\) 矩阵,\(A\begin{pmatrix}i_1 & \cdots & i_s \\ j_1 & \cdots & j_s\end{pmatrix}\) 表示 \(A\) 的一个 \(s\) 阶子式,它由 \(A\) 的第 \(i_1,\cdots,i_s\) 行与第 \(j_1,\cdots,j_s\) 列交点上的元素按原次序排列组成的行列式。同理定义 \(B\) 的 \(s\) 阶子式,则 (1) 若 \(m>n\),必有 \(|AB|=0\);
(2) 若 \(m\le n\),必有
1 & 2 & \cdots & m \\
j_1 & j_2 & \cdots & j_m
\end{pmatrix}B\begin{pmatrix}
j_1 & j_2 & \cdots & j_m \\
1 & 2 & \cdots & m
\end{pmatrix}.
\]
Proof. 令 \(C=\begin{pmatrix} A & 0 \\ -I_n & B \end{pmatrix}\). 我们将用不同的方法来计算行列式 \(|C|\).
首先,对 \(C\) 进行第三类分块初等变换得到矩阵 \(M=\begin{pmatrix} 0 & AB \\ -I_n & B \end{pmatrix}\). 事实上,\(M\) 可写为
I_m & A \\
0 & I_n
\end{pmatrix}C,
\]
因此 \(|M|=|C|\). 用 Laplace 定理来计算 \(|M|\),按前 \(m\) 行展开得
(-1)^{n(m+1)}|AB|.
\]
再来计算 \(|C|\),用 Laplace 定理按前 \(m\) 行展开。这时若 \(m>n\),则前 \(m\) 行中任意一个 \(m\) 阶子式都含有至少一列全为零,因此行列式值等于零,即 \(|AB|=0\). 若 \(m\le n\),由 Laplace 定理得
1 & 2 & \cdots & m \\
j_1 & j_2 & \cdots & j_m
\end{pmatrix}C\begin{pmatrix}
1 & 2 & \cdots & m \\
j_1 & j_2 & \cdots & j_m
\end{pmatrix},
\]
其中 \(C\begin{pmatrix}1 & 2 & \cdots & m \\ j_1 & j_2 & \cdots & j_m \end{pmatrix}\) 是 \(A\begin{pmatrix} 1 & 2 & \cdots & m \\ j_1 & j_2 & \cdots & j_m \end{pmatrix}\) 在矩阵 \(C\) 中的代数余子式。显然
1 & 2 & \cdots & m \\
j_1 & j_2 & \cdots & j_m
\end{pmatrix}=(-1)^{\frac{1}{2}m(m+1)+(j_1+j_2+\cdots+j_m)}
|-e_{i_1},-e_{i_2},\cdots,-e_{i_{n-m}},B|,
\]
其中 \(i_1,i_2,\cdots,i_{n-m}\) 是 \(C\) 中前 \(n\) 列去掉 \(j_1,j_2,\cdots,j_m\) 列后余下的列序数,\(e_{i_1},e_{i_2},\cdots,e_{i_{n-m}}\) 是相应的 \(n\) 维标准单位列向量。记
\]
现来计算 \(|N|\). \(|N|\) 用 Laplace 定理按前 \(n-m\) 列展开。注意只有一个子式非零,其值等于 \(|-I_{n-m}|=(-1)^{n-m}\). 而这个子式的余子式为
j_1 & j_2 & \cdots & j_m \\
1 & 2 & \cdots & m
\end{pmatrix}.
\]
因此
\begin{pmatrix}
j_1 & j_2 & \cdots & j_m \\
1 & 2 & \cdots & m
\end{pmatrix}.
\]
注意到 \((i_1+i_2+\cdots+i_{n-m})+(j_1+j_2+\cdots+j_m)=1+2+\cdots+n\),综合上面的结论,通过简单计算不难得到
1 & 2 & \cdots & m \\
j_1 & j_2 & \cdots & j_m
\end{pmatrix}B\begin{pmatrix}
j_1 & j_2 & \cdots & j_m \\
1 & 2 & \cdots & m
\end{pmatrix}.
\]
Binet-Cauchy 公式在恒等式中的应用
Binet-Cauchy 公式有很多方面的应用,比如证明 Lagrange 恒等式,Cauchy- Schwarz 不等式,计算一些特殊的 \(n\) 阶行列式。下面我们先来看其在恒等式证明中的应用。
Question 1.[1:1] 证明 Lagrange 恒等式(\(n\ge2\)):
(a_ib_j-a_jb_i)^2.
\]
Proof. 左边的表达式写成行列式的形式如下
\displaystyle\sum_{i=1}^n a_i^2 & \displaystyle\sum_{i=1}^n a_ib_i \\
\displaystyle\sum_{i=1}^n a_ib_i & \displaystyle\sum_{i=1}^n
b_i^2
\end{vmatrix}.
\]
这个行列式对应的矩阵可化为
a_1 & a_2 & \cdots & a_n \\
b_1 & b_2 & \cdots & b_n
\end{pmatrix}\begin{pmatrix}
a_1 & b_1 \\
a_2 & b_2 \\
\vdots & \vdots \\
a_n & b_n
\end{pmatrix}.
\]
用 Cauchy- Schwarz 公式得
\displaystyle\sum_{i=1}^n a_i^2 & \displaystyle\sum_{i=1}^n a_ib_i \\
\displaystyle\sum_{i=1}^n a_ib_i & \displaystyle\sum_{i=1}^n
b_i^2
\end{vmatrix}=\sum_{1\le i<j\le n}\begin{pmatrix}
a_i & a_j \\
b_i & b_j
\end{pmatrix}\begin{pmatrix}
a_i & b_i \\
a_j & b_j
\end{pmatrix}=\sum_{1\le i<j\le n}(a_ib_j-a_jb_i)^2.
\]
注意到,上述证明过程中行列式的值是非负的,这样我们就得到了Cauchy- Schwarz不等式。另外,类似于上面的证明过程,我们可以使用 Cauchy-Binet 公式证明比 Lagrange 恒等式更一般的结论 Cauchy 恒等式[2] 。当然,也可以使用其他方法证明这恒等式,但是显然没有使用 Cauchy-Binet 公式证明来得简洁。
Binet-Cauchy 公式在行列式计算中的应用
Binet- Cauchy 公式在行列式中应用最多的情形是 \(m=n\) 时方阵乘积的行列式等于方阵行列式的乘积。而对于一些特殊的行列式,我们可以把这个行列式对应的矩阵写成两个长方阵的乘积,然后利用 Binet-Cauchy 公式进行分类讨论,可以参考下面两道例题:
Question 2.[3] 计算行列式:
x_1y_1+1 & x_1y_2+1 & \cdots & x_1y_n+1 \\
x_2y_1+1 & x_2y_2+1 & \cdots & x_2y_n+1 \\
\vdots & \vdots & \ddots & \vdots \\
x_ny_1+1 & x_ny_2+1 & \cdots & x_ny_n+1
\end{vmatrix}.
\]
Solution. 记此行列式为 \(|A|\),则有
\begin{pmatrix}
x_1 & 1 \\
x_2 & 1 \\
\vdots & \vdots \\
x_n & 1
\end{pmatrix}\begin{pmatrix}
y_1 & y_2 & \cdots & y_n \\
1 & 1 & \cdots & 1
\end{pmatrix}
\end{vmatrix}.
\]
由 Binet-Cauchy 公式,当 \(n>2\) 时,\(|A|=0\); 当 \(n=2\) 时,
\begin{pmatrix}
x_1 & 1 \\
x_2 & 1
\end{pmatrix}\begin{pmatrix}
y_1 & y_2 \\
1 & 1
\end{pmatrix}
\end{vmatrix}=\begin{vmatrix}
x_1 & 1 \\
x_2 & 1
\end{vmatrix}\begin{vmatrix}
y_1 & y_2 \\
1 & 1
\end{vmatrix}=(x_1-x_2)(y_1-y_2).
\]
当 \(n=1\) 时,\(|A|=x_1y_1+1\).
Question 3.[3:1] 计算行列式:
x_1-y_1 & x_1-y_2 & \cdots & x_1-y_n \\
x_2-y_1 & x_2-y_2 & \cdots & x_2-y_n \\
\vdots & \vdots & \ddots & \vdots \\
x_n-y_1 & x_n-y_2 & \cdots & x_n-y_n
\end{vmatrix}.
\]
Solution. 记此行列式为 \(|B|\),则有
\begin{pmatrix}
x_1 & -1 \\
x_2 & -1 \\
\vdots & \vdots \\
x_n & -1
\end{pmatrix}\begin{pmatrix}
1 & 1 & \cdots & 1 \\
y_1 & y_2 & \cdots & y_n
\end{pmatrix}
\end{vmatrix}.
\]
由 Binet-Cauchy 公式,当 \(n>2\) 时,上式右端乘积的行列式为零;当 \(n=2\) 时,
x_1 & -1 \\
x_2 & -1 \\
\end{pmatrix}\begin{pmatrix}
1 & 1 \\
y_1 & y_2
\end{pmatrix}\end{vmatrix}=\begin{vmatrix}
x_1 & -1 \\
x_2 & -1
\end{vmatrix}\begin{vmatrix}
1 & 1 \\
y_1 & y_2
\end{vmatrix}=(x_1-x_2)(y_1-y_2).
\]
当 \(n=1\) 时,\(|B|=x_1-x_2\).
可见,Binet-Cauchy 公式是处理这种值随阶数变化而变化的行列式的有力工具。Binet-Cauchy 公式应用最多的还是 \(m=n\) 的情形,具体可以参考文献[4]第三章第二节习题第4题的前三小题,这里不再赘述。下面给出轮回方阵的行列式的应用 Cauchy- Binet 公式的求法。轮回方阵本身不可能写成两个矩阵的乘积,但是如果我们另设一个矩阵,两个矩阵乘积可以写成和一个对角矩阵的乘积,而对角矩阵的行列式是非常容易得到的,从而就可以得到轮回方阵的行列式。与其类似的文献[4]第三章第二节习题第4题的第(4)小题,采用同样的处理方法就可以得到结果。
Question 4.[4] \(n\) 阶方阵
a_0 & a_1 & a_2 & \cdots & a_{n-1} \\
a_{n-1} & a_0 & a_1 & \cdots & a_{n-2} \\
a_{n-2} & a_{n-1} & a_0 & \cdots & a_{n-3} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
a_1 & a_2 & a_3 & \cdots & a_0
\end{pmatrix}.
\]
称为轮回方阵,求 \(n\) 阶轮回方阵的行列式。
Solution. 设 \(\omega\) 是 \(n\) 次本原单位根,即 \(\omega^i\neq 1,1\le i\le n-1,\omega^n=1\),\(f(x)=a_0+a_1x+\cdots+a_{n-1}x^{n-1}\),取 \(n\) 阶矩阵 \(B\) 为
1 & 1 & 1 & \cdots & 1 \\
1 & \omega & \omega^2 & \cdots & \omega^{n-1} \\
1 & \omega^2 & \omega^4 & \cdots & \omega^{2(n-1)} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
1 & \omega^{n-1} & \omega{2(n-1)} & \cdots & \omega{(n-1)^2}
\end{pmatrix}
\]
容易验证 \(AB=Bdiag(f(1), f(\omega), f(\omega^2), \cdots, f(\omega^{n-1}))\). 两端各取行列式,则由
\]
显然 Vandermonde 行列式 \(detB=\displaystyle\prod_{1\le i<j\le n}(\omega^j-\omega^i)\neq 0\). 因此 \(detA=\displaystyle\prod_{i=0}^{n-1}f(\omega^i)\)
参考文献
Cauchy-Binet 公式的应用的更多相关文章
- 数学算法(一):快速求斐波那契数第n项通过黄金分割率公式
有一个固定的数学公式= =,不知道的话显然没法应用 首先黄金分割率接近于这个公式, (以下为黄金分割率与斐波那契的关系,可跳过) 通过斐波那契数列公式 两边同时除以 得: (1) 注意后一项比前一项接 ...
- @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列
目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...
- [复变函数]第10堂课 3.2 Cauchy 积分定理
0. 引言 (1) $\dps{\int_{|z-a|=\rho}\frac{1}{z-a}\rd z=2\pi i\neq 0}$: 有奇点 (在 $|z|>0$: 二连通区域内解析), 周线 ...
- 「2020-2021 集训队作业」Yet Another Linear Algebra Problem(行列式,Binet-Cauchy 公式)
题面 出题人:T L Y \tt TLY TLY 太阳神:Tiw_Air_OAO 「 2020 - 2021 集 训 队 作 业 」 Y e t A n o t h e r L i n e a r A ...
- 为WLW开发Latex公式插件
WLW是写博客的利器,支持离线.格式排版等,而且拥有众多的插件.博客园推荐了代码插入插件,但是没有提供WLW的公式编译插件.目前我的一般做法是:先在Word下使用MathType编辑好公式,然后将公式 ...
- 百度编辑器UEditor与UEditor 公式插件完整Demo
1.下载UEditor(我的是.net项目) 2.下载UEditor公式插件 3.新建解决方案和项目 4.在浏览器中预览index.html页面 结果: 5.index.html源码 <!DOC ...
- poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- Excel公式 提取文件路径后缀
我们在代码中获取一个文件路径的后缀,是一个很简单的事. 如C#中,可以通过new FileInfo(filePath).Extension,或者Path.GetExtension(filePath)获 ...
随机推荐
- 关于,java-webservice接口,根据服务端,自动生成客户端调用时,响应时间慢
我这边遇到的问题,是在和对方进行webservice接口交互的时候,用工具,调用对方的webservice接口,对方响应很快.但是用java生成的客户端调用就会很慢才得到响应.大概有5分钟左右. 这里 ...
- CloudQuery v1.3.4 版本更新
Hello,大家好久不见! 上一个版本(v1.3.3)发布已是春节前的事情了,此次 v1.3.4 是 CloudQuery 社区版在辛丑牛年的第一个版本发布.本次更新增加了新功能,优化了原有功能点.同 ...
- 【docker】删除docker中的运行日志
docker inspect --format='{{.LogPath}}' 容器名称 |sudo xargs -i rm {}
- 一个通用驱动Makefile-V2-支持编译多目录
目录 前言 1. 特点 2. 分析 2.1 简要原理 2.2 具体分析 3. 源码 前言 该 Makefile 已经通过基于内核 Linux5.4 版本验证通过. 因为编写这通用驱动 Makefile ...
- CSS垂直布局
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- Hznu_0j 1557
题目链接:http://acm.hznu.edu.cn/OJ/problem.php?id=1557 题解:将两个数组分别升序和降序排序后,累加差的绝对值. Ac代码: #include<std ...
- python3表格数据处理
技术背景 数据处理是一个当下非常热门的研究方向,通过对于大型实际场景中的数据进行建模,可以用于预测下一阶段可能出现的情况.比如我们有过去的2002年-2018年的黄金价格的数据: 该数据来源于Gite ...
- Java代码实现热部署
一.思路 0. 监听java文件最后修改时间,如果发生变化,则表示文件已经修改,进行重新编译 1. 编译java文件为 class文件 2. 通过手写类加载器,加载 class文件 ,创建对象 3. ...
- AttributeError: 'str' object has no attribute 'lowerr' Python常见错误
方法名拼写错误 检查方法名拼写,如有错误改正即可 特别注意m和n
- Elasticsearch中最重要的文档CRUD要牢记
Elasticsearch文档CRUD要牢记 转载参考:https://juejin.im/post/5ddbf298e51d4523053c42e7 在Elasticsearch中,文档(docum ...