线性代数知识点小记

相似矩阵

定义:若对于矩阵 \(\text A\) 存在矩阵 \(\text B\) 和可逆矩阵 \(\Phi\) 满足 \(\text B=\Phi^{-1}\text A\Phi\) ,那么我们称 \(\text A\) 相似于 \(\text B\) ,记做 \(\text A\sim\text B\)
相似有如下性质:

  1. 反身性: \(\text A\sim\text A\)
  2. 对称性: 如果 \(\text A\sim\text B\) ,那么 \(\text B\sim\text A\)
  3. 传递性: 如果 \(\text A\sim\text B,\text B\sim\text C\) ,那么 \(\text A\sim\text C\)

相似矩阵有如下性质:

  1. 两者的秩相等
  2. 两者的行列式值相等
  3. 两者拥有同样的特征值,尽管相应的特征向量一般不同
  4. 两者拥有同样的特征多项式
  5. 两者可逆性相同,若均可逆,那么两者的逆矩阵同样相似

博主仅对第四点进行证明:

\[\begin{aligned} 0=|\lambda\text E-\text B|=&|\Phi^{-1}\lambda\Phi-\Phi^{-1}\text A\Phi|\\ =&|\Phi^{-1}(\lambda\text E-\text A)\Phi|\\ =&|\Phi^{-1}|\times|\lambda\text E-\text A|\times|\Phi|\\ =&0\\ \Rightarrow&|\lambda\text E-\text A|=0 \end{aligned} \]

矩阵对角化

假设一个矩阵 \(\text A\) 与对角矩阵 \(\text B\) 相似,那么有

\[\begin{aligned} \text A^m=&(\Phi^{-1}\text B\Phi)^m\\ =&\Phi^{-1}\text B(\Phi\text A\Phi^{-1})^{m-1}\Phi\\ =&\Phi^{-1}\text B^m\Phi \end{aligned} \]

问题转化为求桥接矩阵 \(\Phi\) ,这个就各凭本事了
还有大概会用到的定理如下:
\(n*n\) 矩阵 \(\text A\) 能被矩阵对角化当且仅当 \(\text A\)\(n\) 个线性无关的特征向量 \(v_1,v_2...v_n\) ,且 \(\Phi_{i,j}=v_{j,i}\)
问题转化为快速求特征向量,那么考虑怎么快速求矩阵的特征多项式.

求矩阵特征多项式

先来一个不带脑子的做法,直接用 \(dft+\)高消\(+idft\) ,时间复杂度 \(O(n^4)\) ,实现可以用插值或者Bluestein

然后考虑用相似矩阵来优化运算,先来个 \(suncongbo\) 队长教育我的做法:
假设最初的矩阵是 \(\text A\) ,我们每次给 \(\text A\) ,左乘一个初等行变换矩阵,然后右乘一个初等列变换矩阵。
考虑最后能消成什么矩阵,发现是上海森堡矩阵,因为假如在消其它行第 \(i\) 列的时候用第 \(i\) 行去消的话会在做列变换的时候影响第 \(i\) 行,这样没有达到预期的效果,于是用第 \(i+1\) 行去消,最后消出来就是上海森堡矩阵。
这个玩意儿怎么快速求特征多项式呢?
简单观察后发现最后一行只有两列有值,那么枚举选的是哪一列,如果选第 \(n\) 列,就是 \((\lambda,n)\) 乘以左上角子矩阵的特征多项式,若选第 \(n−1\) 列,那么接下来一定是若干个第 \(n−i\) 行选第 \(n−i-1\) 列,然后会有一行 \(j\) 选第 \(n\) 列,由于 \(a_{n−1,n−2},a_{n−2,n−3}...a_{j+1,j},a_{j,n}\) 都不含变量 \(\lambda\) 所以直接递推即可,复杂度 \(O(n^3)\)

然而我最开始理解上面那个做法的时候以为是先左乘完所有初等行变换的矩阵,再去右乘所有初等列变换的矩阵,于是发现上面做法可能不是很行的时候换了种构造方式,下面简单提一提。
考虑每次用第 \(i\) 行去消第 \(j\)\((j>i)\) 的第 \(n-i+1\) 行,之后乘逆矩阵的时候尽管对前面的列产生了影响但并不会改变矩阵的形状,这样消出来的矩阵满足 \(\forall i+j>n+1,a_{i,j}=0\).
考虑求现在的矩阵,利用分块矩阵的思想,可以递归成子问题,复杂度是 \(O(n^3)\).

猜你喜欢

转载自www.cnblogs.com/ldxcaicai/p/12727745.html