陶哲轩论文原文[1]
论文总共三种证明方法来证明同一个理论:
下面举个例子来说明下陶哲轩论文里面的上述公式到底是什么意思.
设矩阵A为:
{ − 1 4 1 4 3 0 1 0 2 } \left\{ \begin{matrix} -1 & 4 & 1 \\ 4 & 3 & 0 \\ 1 & 0 & 2 \\ \end{matrix} \right\} ⎩⎨⎧−141430102⎭⎬⎫
#################python代码求解矩阵A的所有特征值和特征向量:############
import numpy as np
from numpy import *
# X=[ [1,2,1,1],
# [3,3,1,2],
# [3,5,4,3],
# [5,4,5,4],
# [5,6,1,5],
# [6,5,2,6],
# [8,7,1,2],
# [9,8,3,7]]
# X=np.array(X).T#这里注意,[1,2,1,1]在numpy的眼中是一列
np.linalg.eig
X=[[-1,4,1],
[4,3,0],
[1,0,2]]
print("X=",X)
X=matrix(X)
print("------------------下面计算原始矩阵的特征值和特征向量-----------------------")
eigenvalue,featurevector=np.linalg.eig(X)
print("原始矩阵的特征值")
print("eigenvalue=",eigenvalue)
print("---------------------------")
print("featurevector=\n",featurevector)
运行代码得到特征值
eigenvalue=[-3.60201123 5.55175228 2.05025894]
得到特征向量:
[[-0.8454712 0.53175808 0.04911014]
[ 0.51225069 0.83355752 -0.20683592]
[ 0.1509228 0.14971711 0.97714231]]
例如-3.60201123对应的特征向量就是:
-0.8454712, 0.51225069, 0.1509228
####################下面分析该公式##############################
∣ v i , 1 ∣ 2 |v_{i,1}|^2 ∣vi,1∣2表示:
第i个单位化特征向量,1表示特征向量中的第一个元素的值.
已知上面的-0.8454712, 0.51225069, 0.1509228已经是单位化处理过的.
所以 ∣ v i , 1 ∣ 2 |v_{i,1}|^2 ∣vi,1∣2= ( − 0.8454712 ) 2 = 0.7148215500 (-0.8454712)^2=0.7148215500 (−0.8454712)2=0.7148215500
##################下面计算式(1)右侧的分子##################
∏ k = 1 n − 1 ( λ i ( A ) − λ k ( M ) ) \prod_{k=1}^{n-1}(\lambda_i(A)-\lambda_k(M)) ∏k=1n−1(λi(A)−λk(M))
已知M的特征值是3和2.代入分子:
∏ k = 1 n − 1 ( λ i ( A ) − λ k ( M ) ) \prod_{k=1}^{n-1}(\lambda_i(A)-\lambda_k(M)) ∏k=1n−1(λi(A)−λk(M))
=(-3.60201123-3)(-3.60201123-2)
=36.9845410510
注意这里的 λ i ( A ) \lambda_i(A) λi(A)在连乘运算中是定死的,就是 v i v_i vi对应的特征向量 λ i \lambda_i λi
#######################下面计算式(1)右侧分母######################
∏ k = 1 , k ≠ i n − 1 ( λ i ( A ) − λ k ( A ) ) \prod_{k=1,k≠i}^{n-1}(\lambda_i(A)-\lambda_k(A)) ∏k=1,k=in−1(λi(A)−λk(A))
分母的意思就是"矩阵A的 v i v_i vi向量对应的特征值"-“矩阵A的其他特征值”
所以:
∏ k = 1 , k ≠ i n − 1 ( λ i ( A ) − λ k ( A ) ) \prod_{k=1,k≠i}^{n-1}(\lambda_i(A)-\lambda_k(A)) ∏k=1,k=in−1(λi(A)−λk(A))
=(-3.60201123-5.55175228)(-3.60201123-2.05025894)
=51.7395444308
#######################检验等式是否成立##################
根据上面的计算:
分子=36.9845410510
分母=51.7395444308
所以式(1)右侧=36.9845410510/51.7395444308=.7148215442
而 ∣ v i , 1 ∣ 2 = ( − 0.8454712 ) 2 = . 7148215442 |vi,1|^2=(-0.8454712)^2=.7148215442 ∣vi,1∣2=(−0.8454712)2=.7148215442
所以式(1)成立.
由此可知,根据式(1),
可以直接根据原矩阵的特征值和子矩阵的特征值,直接得到原矩阵的向量中的任一元素的绝对值
该论文的特点:
目前难以得到特征向量里面的元素的符号,只能得到元素的绝对值或者平方.
需要事先知道原矩阵和子矩阵各自的所有特征值.
知乎[3]上更新:
徐树方《矩阵计算的理论与方法》(1995年)Page 323th的引理3.1已经有类似结论
所以,总的来看,其实是一场误会,这个公式在20年前就已经被研究过了.
陶哲轩本人在博客[2]的评论回复中,被人挖出来是很久以前就出版的内容以后,之后基本就不回复了了,所以看热闹的,散了吧.
Reference:
[1]https://arxiv.org/pdf/1908.03795.pdf
[2]https://terrytao.wordpress.com/2019/08/13/eigenvectors-from-eigenvalues/#comment-528850
[3]https://www.zhihu.com/question/355978404/answer/895583246