常系数齐次线性递推优化矩阵快速幂

一般矩阵快速幂的形式 :
f ( n ) = ∑ i = 1 k 1 a i f ( n − i ) + ∑ i = 1 k 2 b i g ( n − i ) + c f(n)=\sum_{i=1}^{k_1} a_if(n-i)+\sum_{i=1}^{k_2}b_ig(n-i)+c f(n)=i=1k1aif(ni)+i=1k2big(ni)+c
可以做到 k 3 log ⁡ n k^3 \log n k3logn的递推,在某些特殊转移下,有更加快速的方法。

若有如下转移
f ( n ) = ∑ i = 1 k a i f ( n − i ) f(n)=\sum_{i=1}^k a_if(n-i) f(n)=i=1kaif(ni)
这就是常系数线性递推的基本形式。一般可以做到 k log ⁡ k log ⁡ n k\log k \log n klogklogn,比较简单的写法也可以做到 k 2 log ⁡ n k^2 \log n k2logn,下面介绍如何优化。

##特征多项式
前置技能:矩阵的秩

特征值,特征向量:
若有常数 λ \lambda λ,向量 v ⃗ \vec v v ,满足 λ v ⃗ = A v ⃗ \lambda\vec v=A\vec v λv =Av ,则称向量 v ⃗ \vec v v 为矩阵 A A A的一组特征向量,$\lambda 为 矩 阵 为矩阵 A$的一组特征值。
秩为k的矩阵有k组线性不相关的特征向量。

特征多项式
对关系式进行变换: ( λ I − A ) v ⃗ = 0 (\lambda I-A)\vec v=0 (λIA)v =0
这个等式有非零解的充要条件是 d e t ( λ I − A ) = 0 det(\lambda I-A)=0 det(λIA)=0,即为矩阵不满秩。
可以得到一个 k k k次多项式,这个多项式的值等于0时把这个方程称为矩阵 A A A特征方程。这个多项式称为矩阵 A A A特征多项式
k个解自然就是 k k k个特征值辣(并不需要解出来,怎么处理后面会说)!

跟据算数基本定理,最终的多项式有k个解,可以写作 f ( x ) = Π i ( λ i − x ) f(x)=\Pi_i(\lambda_i-x) f(x)=Πi(λix),而且带入 A A A矩阵本身会得到 0 0 0矩阵(Cayley-Hamilton 定理)。

证明:
(下面的证明是博主以前学OI的时候写的一种比较复杂的证明,其实可以直接用伴随矩阵来证明)
f ( A ) = Π i ( λ i I − A ) f(A)=\Pi_i(\lambda_i I -A) f(A)=Πi(λiIA)
考虑将 f ( A ) f(A) f(A)得到的矩阵分别乘特征向量,如果最后都得到了0矩阵,因为这几个特征向量线性不相关,那么可证明 f ( A ) f(A) f(A)乘以任意向量都会得到 0 0 0矩阵,从而 A A A 0 0 0矩阵。

现在问题转化为证明 f ( A ) f(A) f(A)乘任意特征向量值得到 0 0 0矩阵。首先证明 ( λ i I − A ) ( λ j I − A ) = ( λ j I − A ) ( λ i I − A ) (\lambda_i I-A)(\lambda_j I - A)=(\lambda_j I - A)(\lambda_i I-A) (λiIA)(λjIA)=(λjIA)(λiI

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值