「常系数齐次线性递推」——矩阵快速幂的优化
引入:
对于递推方程:
我们显然会得到一个关于的多项式求逆或者矩阵递推式,大多数情况下我们都是用后者,但是当很大的时候,的时间复杂度我们是吃不消的,那么自然我们的前人就搞出了一些优化。
特征多项式及Cayley-Hamilton定理:
一、特征多项式的定义:
设是阶矩阵,若数和非零列向量使关系式
成立,那么,这样的数称为矩阵的特征值,非零向量称为的对应于的特征向量。
(1)式也可写成
此式有非零解(即存在)的充分必要条件是其行列式
(1)式可以看作以为未知数的一元次方程,称为的特征方程,(2)式是关于的次多项式,称为的特征多项式。
二、矩阵的多项式:
(矩阵的多项式不等于矩阵多项式,读者若想了解请自行百度)
即对于次多项式,将矩阵看作未知数,此时,记为的次多项式。其运算满足交换律,即
三、Cayley-Hamilton定理:
对于的特征多项式,有
由于笔者能力所限,其证明请读者自行百度。
P.S:觉得吧……其实考虑到,感觉这个也是很显然的吧……(评论说不可以这样证……我是不是误导了什么)
阶常系数齐次线性递推矩阵的特征多项式求法:
一、结论(懒人专用)
其中为递推方程中给出的递推系数。
二、证明
那么我们考虑此时行列式如何去求(表示以上行列式的第行第列的元素):
先考虑这样一件事实:
若我们在前i列的选择元素的最大行数也为i,那么接下来的列只能选择对角线上元素,否则其最大行数一定为i+1,此时下一列即i+1列我们可以选择第一行或者第i+2行的元素
该事实读者可以自行证明。
假设我们选了,由以上事实,我们只能选择对角线元素,那么此时结果为。
否则选取由以上事实,我们会得到一个,直到在第列时选取了,此时得到结果为
综上所述:
常系数齐次线性递推:
一、多项式引入:
我们设
其中为已知多项式,那么我们就可以通过多项式除法以及多项式取模来得到以及。
二、带入矩阵:
我们将阶视为未知量,则有
我们考虑若那么,此时有
三、如何计算:
考虑我们已经表示出来了,但是,我们发现此时算法复杂非但没有减少,反而增加为。
我们设矩阵
我们给式(3)等式两边同时乘上,即
化简得到
四、时间复杂度
若只是计算的某一项,那么时间复杂度上界在于如何去求的前项和以及。
显然由多项式取模方法时间复杂度为或。
而可以或者处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】