特征值的重要定理:Courant-Fischer min-max theorem 极大极小定理

前言

Courant-Fischer min-max theorem 是特征值极为重要的一个性质。 但是国内的各种教材资料包括博客上都很少提及。 我自己在科研中曾经用到过。 近期又碰到了另一个精彩的结论 韦尔定理(Wely theorem),有一个应用极大极小定理的简洁美妙的证明。 因此, 这篇博文写一下这个不容忽视的定理。

极大极小定理

首先,本定理针对的是Hermitian 矩阵, 即共轭对称矩阵。 因为只有共轭对称矩阵的特征值是确定为实数值的, 其他矩阵很可能是复数值, 而复数值,也就不存在大小关系了。

Courant-Fisher min-max 定理

对于 n × n n \times n n×n的矩阵 A \mathbf{A} A, 有:

  • λ k = min ⁡ dim ⁡ ( U ) = k        max ⁡ x ∈ U , ∥ x ∥ = 1 x H A x \lambda_{k}=\min\limits _{\operatorname{dim}(U)=k}\;\;\; \max \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x λk=dim(U)=kminxU,x=1maxxHAx
  • λ k = max ⁡ dim ⁡ ( U ) = n − k + 1        min ⁡ x ∈ U , ∥ x ∥ = 1 x H A x \lambda_{k}=\max\limits_{\operatorname{dim}(U)=n-k+1} \;\;\; \min \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x λk=dim(U)=nk+1maxxU,x=1minxHAx

其中, λ i \lambda_i λi 是 第 k k k 的特征值。

这个定理在两年前接触到的时候一头雾水, 数院的国奖哥以此帮我证明了一个式子的时候更是惊为天人。 核心原因是当时对子空间的概念的认知实在太过不足。 现在回头看虽然仍觉得非常困难,但还是稍微精进了一些。

这个证明, 我参考了维基百科上的证明, 以下是对百科上过程的翻译:

由于 A \mathbf{A} A是共轭对称矩阵, 所以根据共轭对称矩阵的特征分解的性质, 选定其特征向量 { u 1 , … , u n } \left\{u_{1}, \ldots, u_{n}\right\} {u1,,un} 作为一组正交基。 子空间与基相关知识

即, 这就是 n n n维空间的 n n n 个基。

现在, 若有该 n n n维空间的一个子空间 U U U, 其维度为 k k k, 和子空间 s p a n ( u k , … , u n ) \mathrm{span}(u_k, \ldots, u_n) span(uk,,un) (我们假设 u k , ⋯   , u n u_k, \cdots, u_n uk,,un对应的特征值为升序排列), 必定存在一个交集。 这一点其实可以这样证明: 首先 U U U的维度是 k k k, 而 s p a n ( u k , … , u n ) \mathrm{span}(u_k, \ldots, u_n) span(uk,,un)的维度是 n − k + 1 n-k+1 nk+1。 也就是说, 两者的维度之和 大于 n n n。因此, 必定存在一个非零的交集。(这一点其实可以这样判断: 如果维度之和刚好是 n n n, 那可能两个子空间刚好由一组正交基的两部分扩展二成,是没有交集的。但和为 n + 1 n+1 n+1,如果没有交集,就说明这个空间其实应该有 n + 1 n+1 n+1个正交基, 这是违背的。没有想明白的读者, 可以根据3维空间来想像: 3维空间的两个二维子空间,必有交集。 而3维空间的1个二维子空间和1个一维子空间,是可以没有交集的。)

因此, 假设 v v v 是交集上的一个元素, 即, 既属于子空间 U U U 又属于 子空间 s p a n ( u k , … , u n ) \mathrm{span}(u_k, \ldots, u_n) span(uk,,un)。 那么, x ∈ s p a n ( u k , … , u n ) x\in\mathrm{span}(u_k, \ldots, u_n) xspan(uk,,un), 因此有:

x = ∑ i = k n α i u i x=\sum_{i=k}^{n} \alpha_{i} u_{i} x=i=knαiui
(由于 ∣ ∣ x ∣ ∣ = 1 ||x||=1 x=1, 有 ∑ i = k n α i = 1 \sum_{i=k}^{n} \alpha_{i}=1 i=knαi=1)
那么,

x H A x = ∑ i = k n α i 2 u i H A u i = ∑ i = k n λ i α i 2 ≥ λ k x^H\mathbf{A}x=\sum_{i=k}^{n}\alpha_{i}^2u_i^H\mathbf{A}u_i=\sum_{i=k}^{n} \lambda_{i} \alpha_{i}^{2}\ge \lambda_k xHAx=i=knαi2uiHAui=i=knλiαi2λk
不等号来源于我们认为 λ i ≥ λ k , ∀ i > k \lambda_i\ge \lambda_k, \forall i>k λiλk,i>k
即:

  max ⁡ x ∈ U , ∥ x ∥ = 1 x H A x ≥ λ i \ \max \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x\ge \lambda_i  xU,x=1maxxHAxλi

对于所有子空间 U U U都成立。 即:

min ⁡ dim ⁡ ( U ) = k        max ⁡ x ∈ U , ∥ x ∥ = 1 x H A x ≥ λ k \min\limits _{\operatorname{dim}(U)=k}\;\;\; \max \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x\ge \lambda_k dim(U)=kminxU,x=1maxxHAxλk

这时候,我们再证另一半:

显然, 空间 V = span ⁡ { u 1 , … , u k } V=\operatorname{span}\left\{u_{1}, \ldots, u_{k}\right\} V=span{u1,,uk} 作为选择的 k k k维空间, 有:

x H A x ≤ λ k x^H\mathbf{A}x\le \lambda_k xHAxλk

这个结论过于明显,不做解释了。
也就是说,   max ⁡ x ∈ V , ∥ x ∥ = 1 x H A x ≤ λ k \ \max \limits_{x \in V,\|x\|=1} x^{H} \mathbf{A} x\le \lambda_k  xV,x=1maxxHAxλk,
V V V 显然是 k k k维的子空间 U U U之一, 因此:

min ⁡ dim ⁡ ( U ) = k        max ⁡ x ∈ U , ∥ x ∥ = 1 x H A x ≤ λ k \min\limits _{\operatorname{dim}(U)=k}\;\;\; \max \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x\le \lambda_k dim(U)=kminxU,x=1maxxHAxλk

所以有:

min ⁡ dim ⁡ ( U ) = k        max ⁡ x ∈ U , ∥ x ∥ = 1 x H A x = λ k \min\limits _{\operatorname{dim}(U)=k}\;\;\; \max \limits_{x \in U,\|x\|=1} x^{H} \mathbf{A} x= \lambda_k dim(U)=kminxU,x=1maxxHAx=λk

证毕。

经典应用: 韦尔定理 Wely theorem

对于两个 n × n n \times n n×n 的共轭对称矩阵 A \mathbf{A} A B \mathbf{B} B, 有:

λ i ( A ) + λ 1 ( B ) ≤ λ i ( A + B ) ≤ λ i ( A ) + λ n ( B ) \lambda_{i}(A)+\lambda_{1}(B) \leq \lambda_{i}(A+B) \leq \lambda_{i}(A)+\lambda_{n}(B) λi(A)+λ1(B)λi(A+B)λi(A)+λn(B)

显然,这是一个极为有用的定理。

先说下他的证明:

λ i ( A + B ) = max ⁡ dim ⁡ ( V ) = i min ⁡ x ∈ V , ∥ x ∥ = 1 x H ( A + B ) x = max ⁡ dim ⁡ ( V ) = i min ⁡ x ∈ V , ∥ x ∥ = 1 ( x H A x + x H B x ) ≥ max ⁡ dim ⁡ ( V ) = i ( min ⁡ x ∈ V , ∥ x ∥ = 1 x H A x + min ⁡ x ∈ V , ∥ x ∥ = 1 x H B x ) ≥ max ⁡ dim ⁡ ( V ) = i min ⁡ x ∈ V , ∥ x ∥ = 1 x H A x + min ⁡ x ∈ V , ∥ x ∥ = 1 x H B x = max ⁡ dim ⁡ ( V ) = i min ⁡ x ∈ V , ∥ x ∥ = 1 x H A x + λ 1 ( B ) = λ i ( A ) + λ 1 ( B ) \begin{aligned} \lambda_{i}(A+B)=& \max _{\operatorname{dim}(V)=i} \min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1} \boldsymbol{x}^{H}(A+B) \boldsymbol{x} \\ &=\max _{\operatorname{dim}(V)=i} \min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1}\left(\boldsymbol{x}^{H} A \boldsymbol{x}+\boldsymbol{x}^{H} B \boldsymbol{x}\right) \\ &\ge \max _{\operatorname{dim}(V)=i} \left(\min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1}\boldsymbol{x}^{H} A \boldsymbol{x}+\min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1}\boldsymbol{x}^{H} B \boldsymbol{x}\right) \\ & \geq \max _{\operatorname{dim}(V)=i} \min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1} \boldsymbol{x}^{H} A \boldsymbol{x}+\min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1} \boldsymbol{x}^{H} \boldsymbol{B} \boldsymbol{x} \\ &=\max _{\operatorname{dim}(V)=i} \min _{\boldsymbol{x} \in V,\|\boldsymbol{x}\|=1} \boldsymbol{x}^{H} A \boldsymbol{x}+\lambda_{\boldsymbol{1}}(B)=\lambda_{i}(A)+\lambda_{\boldsymbol{1}}(B) \end{aligned} λi(A+B)=dim(V)=imaxxV,x=1minxH(A+B)x=dim(V)=imaxxV,x=1min(xHAx+xHBx)dim(V)=imax(xV,x=1minxHAx+xV,x=1minxHBx)dim(V)=imaxxV,x=1minxHAx+xV,x=1minxHBx=dim(V)=imaxxV,x=1minxHAx+λ1(B)=λi(A)+λ1(B)

非常简洁。

这个定理可以推出一些有用的结论:

  • 可以确定两个共轭对称矩阵和 的 特征值的 范围。
  • 一个共轭对称矩阵 加上一个正定共轭对称矩阵, 特征值必增大。
  • 40
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
### 回答1: C-C方法即Correlation Coefficient方法,是一种在Matlab中用于计算两个数据序列之间相关性的方法。 在Matlab中,我们可以使用`corrcoef`函数来计算两个数据序列之间的相关系数。该函数需要接收两个参数,即两个数据序列。返回结果是一个2x2的矩阵,其中矩阵的第[i,j]元素表示第i个数据序列与第j个数据序列之间的相关系数。 例如,假设我们有两个数据序列A和B,我们可以通过以下方式使用c-c方法计算它们之间的相关系数: ```matlab A = [1, 2, 3, 4, 5]; B = [2, 4, 6, 8, 10]; result = corrcoef(A, B); ``` 结果result是一个2x2的矩阵,其中result(1,2)表示A和B之间的相关系数。我们可以通过以下方式访问相关系数: ```matlab cc = result(1,2); ``` 我们也可以使用`corr`函数来计算两个数据序列之间的相关系数,该函数与`corrcoef`函数类似,只是返回一个标量值而不是一个矩阵。 ```matlab cc = corr(A, B); ``` 无论是使用`corrcoef`还是`corr`函数,都可以根据需要计算数据序列之间的相关性,并进一步应用于数据分析、信号处理等领域。 希望以上内容对您有所帮助! ### 回答2: C-C方法(Matlab)是一种通过求解线性方程组来解决计算问题的方法。在Matlab中,可以使用C-C方法解决诸如线性方程组、线性规划、非线性规划等问题。 C-C方法的基本思想是将问题转化为线性方程组的形式,并使用迭代的方式求解。在每一次迭代中,通过调整系数矩阵和常数向量的值来逼近最优解。 在Matlab中,可以使用“linsolve”函数来求解线性方程组。该函数可以接受系数矩阵和常数向量作为输入,并返回线性方程组的解。 具体步骤如下: 1. 定义系数矩阵和常数向量。 2. 使用“linsolve”函数求解线性方程组。 3. 判断解是否满足精度要求,如果满足则停止迭代;否则回到第2步。 4. 输出最终的解。 需要注意的是,在使用C-C方法求解问题时,选择合适的初始解对迭代过程的效果有很大的影响。通常可以通过试错的方法来选择合适的初始解,或者使用一些启发式算法来辅助求解。 总之,C-C方法(Matlab)是一种通过求解线性方程组来解决计算问题的方法。在Matlab中,可以使用“linsolve”函数来实现C-C方法,并使用迭代的方式逼近最优解。 ### 回答3: C-C方法是一种在MATLAB软件中常用的计算方法,用于求解非线性方程组的数值解。 C-C方法的全称是“Courant-Cramorich方法”,它是一种迭代法,通过不断迭代逼近的方式来求解非线性方程组。其基本思路是将非线性方程组转化为线性方程组,然后通过迭代的方式求解线性方程组,最终得到非线性方程组的数值解。 在MATLAB中,可以使用C-C方法求解非线性方程组。首先,需要确定迭代的初始解。然后,通过迭代公式不断更新解的值,直到满足迭代停止条件。MATLAB提供了很多函数和工具箱,可以方便地实现C-C方法的迭代计算。 在使用C-C方法求解非线性方程组时,需要注意选择合适的初始解和迭代停止条件,以确保迭代结果的精度和收敛性。同时,也要注意处理可能出现的迭代发散或慢收敛等问题。 总之,C-C方法是一种常用的求解非线性方程组的数值计算方法,在MATLAB中可以方便地实现和应用。通过合理选择初始解和迭代参数,以及处理迭代收敛性和精度问题,可以得到较为准确的非线性方程组的数值解。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B417科研笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值