首页 > 其他分享 >特征多项式的 n^3 求法

特征多项式的 n^3 求法

时间:2024-09-09 21:46:52浏览次数:4  
标签:特征 多项式 矩阵 vmatrix 求法 beta alpha &-

https://oi-wiki.org/math/linear-algebra/char-poly/

OI-wiki 写的很好。这里只是一些注解。

使用高斯消元进行相似变换

要想将 \(A\) 相似变换成上 Hessenberg 矩阵(上海森堡矩阵),首先需要知道初等行变换对应的矩阵 \(P\) 的逆长什么样,以及它右乘 \(A\) 会使 \(A\) 变成什么,这样才能求出 \(PAP^{-1}\)。

交换两行

交换 \(p\) 行和 \(q\) 行,想象我们是在单位矩阵上做的,那么这个 \(P\) 应该就是:

  • \(P[i][i]=1(i\neq p, q)\)
  • \(P[p][q] = P[q][p]=1\)
  • 其余位置为 \(0\)。

它的逆矩阵,根据定义,\(P^{-1}P=1\),用求矩阵逆的做法(将矩阵消为单位阵所用的变换打在单位阵上,新的矩阵就是逆),那么将 \(P\) 还原为单位矩阵,只需要“交换 \(p\) 行和 \(q\) 行”即可,也就是说 \(P\) 的逆和 \(P\) 一样(或者交换列也可以得到一样的 \(P^{-1}\))。如果 \(P^{-1}\) 要右乘 \(A\),你可以自己模拟一下,拿 \(A\) 的一行的转置去扫 \(P\),发现实际上就是交换了 \(p\) 列和 \(q\) 列。

结论:相似变换中,交换 \(p\) 行和 \(q\) 行后需要交换 \(p\) 列和 \(q\) 列。

一行的倍数加到另一行

\(p\) 行的 \(k\) 倍加到 \(q\) 行去,想象我们是在单位矩阵上做的,那么这个 \(P\) 应该就是:

  • \(P[i][i]=1\)。
  • \(P[q][p]=k\)。
  • 其余位置为 \(0\)。

与上面的过程一样,其逆为:将 \(p\) 行的 \(-k\) 倍加到 \(q\) 行。右乘的效果为:将 \(q\) 列的 \(-k\) 倍加到 \(p\) 列。

结论:相似变换中,将 \(p\) 行的 \(-k\) 倍加到 \(q\) 行后需要将 \(q\) 列的 \(-k\) 倍加到 \(p\) 列。

高斯消元到底怎么消

枚举 \(i\),消去第 \(i\) 列中次对角线下的所有元素,使用第 \(i\) 列次对角线上的元素与下面的元素进行对决。需要交换的是 \(\geq i+1\) 的行和列,不会影响到正在消元的第 \(i\) 列和已经完成的前 \(i-1\) 列。

Hessenberg 算法(海森堡算法)

目标是 \(O(n^3)\) 求出上海森堡矩阵的特征多项式。考虑记只考虑 \(A[1..i][1..i]\) 的元素的特征多项式为 \(p_i(x)\)。注意 \(p_0(x)=1\)。

从小到大枚举 \(i\),去算特征多项式的定义 \(|xI-A|\),考虑使用代数余子式技术展开最后一行:这里抄一个 \(n=3\) 的例子

\[\begin{aligned} p_3(x)&= \det(xI_3-H_3)\\ &=\begin{vmatrix} x-\alpha_1&-h_{12}&-h_{13}\\ -\beta_2&x-\alpha_2&-h_{23}\\ &-\beta_3&x-\alpha_3 \end{vmatrix}\\ &=(x-\alpha_3)\cdot (-1)^{3+3}p_2(x)-\beta_3\cdot (-1)^{3+2} \begin{vmatrix} x-\alpha_1&-h_{13}\\ -\beta_2&-h_{23} \end{vmatrix}\\ \end{aligned} \]

最下面就是两个代数余子式,就是说代数余子式一定是去选零多的行,例如每次都展开最后一行那么也就展开出两个代数余子式。展开完了以后,第一项可以计算,第二项需要递归下去,你想象一下 \(n=4\) 时你需要递归的是

\[\cdots+\beta_4\begin{vmatrix} x-\alpha_1&-h_{12}&-h_{14}\\ -\beta_2&x-\alpha_2&-h_{24}\\ &-\beta_3&-h_{34} \end{vmatrix}= -\beta_4h_{34}p_2(x)+\beta_4\beta_3\begin{vmatrix} x-\alpha_1&-h_{14}\\ -\beta_2&-h_{24} \end{vmatrix} \]

注意那个符号,主对角线上 \((-1)^{i+j}=1\),次对角线自然就是 \(-1\)。这里已经初见端倪了,我们想象一下:

a  h  h  h  h  h  h
b  a  h  h  h  h  h
   b  a  h  h  h  h
      b  a  h  h  h
         b  a  h  h
            b  a  h
               b  a

我们这个递归就是从下往上走一段 \(\beta\),然后突然往最右边一列 \(h\) 上撞,递归到已经算过的特征多项式,举例:

a  h  h  -  -  -  -         
b  a  h  -  -  -  -          
   b  a  -  -  -  -
      -  -  -  - [h]
        [b] -  -  -
           [b] -  -
              [b] -

中括号括起来的是我们到的需要取乘积的点,减号就是被划去的元素,剩下的就是 \(p_3(x)\)。

我们需要对次对角线的每个非空后缀都这么算一次,并求和(当然因为 \(h\) 是负的所以求和以后要减掉),加上划去右下角的那一项。

这时候再看这个式子就豁然开朗了:

\[p_i(x)=(x-\alpha_i)p_{i-1}(x)- \sum_{m=1}^{i-1}h_{i-m,i} \left( \prod_{j=i-m+1}^{i}\beta_j \right) p_{i-m-1}(x) \]

特征多项式优化矩阵快速幂

Cayley–Hamilton 定理(哈密顿-凯莱定理):方阵 \(A\) 的特征多项式为 \(p(x)\),则 \(p(A)=0\)。

想要求 \(A^k\)。先获取特征多项式 \(p(x)\)。令 \(f(x)=x^k\),则我们要求的就是 \(f(A)\),如果将 \(f(x)\bmod p(x)\) 这个新的多项式记作 \(h(x)\),则我们说 \(f(A)=h(A)\),这是在说什么呢?什么叫 \(\bmod 0\),实际上是 \(f(x)=g(x)p(x)+h(x)\) 其中 \(g(x)\) 不管是什么反正是多项式,当代入 \(x=A\) 时 \(f(A)=g(A)p(A)+h(A)=h(A)\)。\(h(A)\) 的次数是 \(O(n)\) 的,这样就能得到优化了。

应用到常系数齐次线性递推就是:\(p(x)\) 可以提前手算,然后我们要的答案就是

\[A^kv=\sum_{i=0}^{n-1}h_iA^iv \]

\[(A^kv)_0=\sum_{i=0}^{n-1}h_i(A^iv)_0=\sum_{i=0}^{n-1}h_iv_i \]

\(O(n)\) 搞完,这下的工作就是求 \(x^k\bmod p(x)\),这个的话,右边的东西快速幂,一边快速幂一遍对 \(p(x)\) 取模,根据取模算法的复杂度,有 \(O(n^2\log k)\) 或 \(O(n\log n\log k)\) 两种复杂度。

总结

你已经会了基于相似变换和海森堡算法的 \(O(n^3)\) 求矩阵特征多项式的做法,可以配合哈密顿-凯莱定理优化常系数齐次线性递推。求出特征多项式的所有根得到矩阵的所有特征值,然后就是另外一段关于特征值的故事了。

标签:特征,多项式,矩阵,vmatrix,求法,beta,alpha,&-
From: https://www.cnblogs.com/caijianhong/p/18405415

相关文章

  • ComfyUI 基础教程(四) —— 应用 LoRA 模型控制图像生成特征
    前言上一篇文章讲述了ControlNet模型的使用,如果掌握了ControlNet的使用之后,本文所讲的Lora模型将会非常容易理解。一、LoRA模型的概念之前的文章中,在介绍模型种类时,简单介绍过Lora模型,LoRA模型全称是Low-Rank-AdaptaionofLargeLanguageModels。是一种用于微调......
  • 【LVI-SAM】激光点云如何辅助视觉特征深度提取
    LVI-SAM激光点云辅助视觉特征深度提取1.坐标系转换2.构建单位球面坐标系下的图像特征点和激光点云3.构建深度直方图并过滤激光点云4.最近邻搜索与深度估计5.深度投影与可视化总结这段代码的核心任务是将激光点云中的点与图像上的特征点进行对应,并计算图像特征......
  • 【Java 基础】:三大特征之多态
    ✨                         杏花疏影里,吹笛到天明    ......
  • 基于贝叶斯算法优化回声状态网络(BO-ESN/Bayes-ESN)的数据多特征分类预测 Matlab代码+
    ......
  • 图特征工程实践指南:从节点中心性到全局拓扑的多尺度特征提取
    图结构在多个领域中扮演着重要角色,它能有效地模拟实体间的连接关系,通过从图中提取有意义的特征,可以获得宝贵的信息提升机器学习算法的性能。本文将介绍如何利用NetworkX在不同层面(节点、边和整体图)提取重要的图特征。本文将以NetworkX库中提供的Zachary网络作为示例。这个广为人......
  • 高中数学题的一些背景思考 2 —— Chebyshev 多项式
    Chebyshev多项式「\({\in}\)代数」这个家伙十分重要!可以牵扯出一堆相关的东西。题目1已知\(a,b,c\in\R,\forallx\in[-1,1]\),都有\(\left|ax^2+bx+c\right|\le1\),则当\(x\in[-1,1]\)时,函数\(f(x)=\left|\left(ax^2+bx+c\right)\left(cx^2+bx+a\right)\right|\)的最......
  • Unet改进19:添加ScConv||用于特征冗余的空间和通道重构卷积
    本文内容:添加ScConv目录论文简介1.步骤一2.步骤二3.步骤三4.步骤四论文简介卷积神经网络(cnn)在各种计算机视觉任务中取得了显著的性能,但这是以巨大的计算资源为代价的,部分原因是卷积层提取冗余特征。最近的作品要么压缩训练有素的大型模型,要么探索设计良好的轻量级......
  • AbMole|DNA双链断裂修复中的序列与染色质特征:MRX复合体的作用与机制
     在生物学领域中,DNA双链断裂(DSB)作为一种极具破坏性的基因组损伤,其准确且高效的修复对于维持细胞基因组的稳定性和功能至关重要。由来自哥伦比亚大学欧文医学中心微生物学与免疫学系的RobertGnügge和瑞士苏黎世工业大学(ETH)生物化学研究所生物系的 GiordanoReginato,Petr......
  • WebShell流量特征检测_哥斯拉篇
    80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测。什么是一句话木马?1、定义顾名思义就是执行恶意指令的木马,通过技术手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行2、特点......
  • WebShell流量特征检测_冰蝎篇
    80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测。什么是一句话木马?1、定义顾名思义就是执行恶意指令的木马,通过技术手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行2、特点......