版权声明: https://blog.csdn.net/qq_16267919/article/details/82085719
4162: shlw loves matrix II 如果我们已知矩阵
A
A
的特征多项式
p ( x )
p
(
x
)
,其最高次数为
k
k
,由哈密尔顿-凯莱定理 得知
p ( A ) = a 0 A n + a 1 A n − 1 + ⋯ + a k A n − k
p
(
A
)
=
a
0
A
n
+
a
1
A
n
−
1
+
⋯
+
a
k
A
n
−
k
显然
a 0 = 1
a
0
=
1
,那么
A n = a 1 A n − 1 + ⋯ + a k A n − k
A
n
=
a
1
A
n
−
1
+
⋯
+
a
k
A
n
−
k
我们就可以把一个高次项拆成若干次数较小的项,再拆拆拆拆成
k − 1
k
−
1
项,显然
k
k
是
O ( n )
O
(
n
)
级别的,然后我们求出
A 0
A
0
到
A k − 1
A
k
−
1
就可方便地计算出答案.
考虑怎么计算特征多项式.
满足
A = P B P − 1
A
=
P
B
P
−
1
的两个矩阵
A , B
A
,
B
互为相似矩阵,它们的特征多项式相同,因此我们先把矩阵变换到如下形式(左下方是全为
0
0
的三角),变换的时候记得左右乘两个互逆的初等矩阵:
⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ a 1 , 1 a 2 , 1 0 0 ⋮ 0 a 1 , 2 a 2 , 2 a 3 , 2 0 ⋮ 0 ⋯ ⋯ ⋯ ⋯ ⋱ ⋯ a 1 , n a 2 , n a 3 , n a 2 , n ⋮ a n , n ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥
[
a
1
,
1
a
1
,
2
⋯
a
1
,
n
a
2
,
1
a
2
,
2
⋯
a
2
,
n
0
a
3
,
2
⋯
a
3
,
n
0
0
⋯
a
2
,
n
⋮
⋮
⋱
⋮
0
0
⋯
a
n
,
n
]
然后设
B i
B
i
为以
A i , i
A
i
,
i
为左上端点,
A n , n
A
n
,
n
为右下端点的矩阵,设
f i
f
i
为
B i
B
i
的行列式,考虑对
B
B
横着的第一行展开,我们可以得到:
f i = A i , i f i + 1 + ( A i + 1 , i ) A i , i + 1 f i + 2 + ( A i + 1. i A i + 2 , i + 1 ) A i , i + 2 f i + 3 + …
f
i
=
A
i
,
i
f
i
+
1
+
(
A
i
+
1
,
i
)
A
i
,
i
+
1
f
i
+
2
+
(
A
i
+
1.
i
A
i
+
2
,
i
+
1
)
A
i
,
i
+
2
f
i
+
3
+
…
然后就可以愉快地递推了.
设指数为
T
T
,总时间复杂度为
O ( n 3 + n 2 l o g T )
O
(
n
3
+
n
2
l
o
g
T
)