线性代数总结
一、矩阵快速幂的常用技巧
1、上三角优化。
假设矩阵为上三角矩阵,那么我们的枚举顺序可以优化:
这是原来的: F O R ( i , 1 , n ) F O R ( j , 1 , n ) F O R ( k , 1 , n ) FOR(i,1,n)FOR(j,1,n)FOR(k,1,n) FOR(i,1,n)FOR(j,1,n)FOR(k,1,n)
现在: F O R ( i , 1 , n ) F O R ( j , i , n ) F O R ( k , i , j ) FOR(i,1,n)FOR(j,i,n)FOR(k,i,j) FOR(i,1,n)FOR(j,i,n)FOR(k,i,j)
1 6 \frac{1}{6} 61的常数优化,很给力。
2、答案的向量优化。
多次题目的时候,矩阵快速幂的时间复杂度为 O ( T n 3 l o g n ) O(Tn^3logn) O(Tn3logn)
当矩阵固定时:
如果答案为一个行向量,则预处理 2 i 2^i 2i次幂。由于矩阵的结合律,我们可以维护该行向量,这样只需要 O ( n 2 l o g n ) O(n^2logn) O(n2logn)做一次回答。
3、累加贡献的矩阵。
如果是矩阵前缀和的形式: ∑ i = 1 n B i \sum_{i=1}^n B^i ∑i=1nBi ,可以把矩阵扩域达到此目的。
构造方法如下:
构造 T = { A I 0 I } T=\begin{Bmatrix} A&I\\ 0&I \end{Bmatrix} T={A0II}
此时 T T T做 n + 1 n+1 n+1次前缀和,右上角的元素即为前缀和。
拓展:
右上角的 I I I可以换成列向量。
的话累计贡献就变成了相应的值。
典型例题:【清华集训】恐怖的奴隶主。
对于一个列向量 [ p 1 , p 2... p n ] [p1,p2...pn] [p1,p2...pn]表示状态为 1.. n 1..n 1..n时的贡献,则顺次相乘的累计结果恰好就是一次矩乘的贡献。
二、一些矩阵操作
矩阵的行列式
∣ A ∣ = ∑ P ( − 1 ) d ( P ) ∏ i = 1 n A [ i ] [ p i ] |A|=\sum_{P}(-1)^{d(P)}\prod_{i=1}^n{A[i][pi]} ∣A∣=∑P(−1)d(P)∏i=1nA[i][pi]
d ( P ) d(P) d(P)为逆序对数。
一个神奇性质: ∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB|=|A||B| ∣AB∣=∣A∣∣B∣
逆矩阵
A可逆
<=> ∣ A ∣ ≠ 0 |A|≠0 ∣A∣=0
<=> r ( A ) = n r(A) = n r(A)=n
<=> 齐次线性方程组 A X = 0 AX=0 AX=0 仅有零解
<=> 非齐次线性方程组$AX=b $有唯一解
<=> A的特征值不为0
矩阵的迹: t r ( A ) tr(A) tr(A)
主对角线元素和。
方程如果存在0系数行,常数项 > 0 >0 >0,则方程无解。
否则方程有无数解。
矩阵的秩: r ( A ) r(A) r(A)
表示线性无关的横行的极大数目。
齐次线性方程组
常数项全为 0 0 0的方程组。
若 r ( A ) < n r(A)<n r(A)<n,则方程有无数非 0 0 0解。
否则,方程为全 0 0 0解。
特征值和特征向量
通俗来讲,为一个向量 u ⃗ \vec{u} u经过矩阵 A A A坐标转换后对应的向量与其本身相比方向不变,是其某个倍数。这种向量 u ⃗ \vec{u} u即为 A A A的特征向量,倍数为特征值(特征值可以为0)。
特征值可能有多解。
也就是 A u ⃗ = λ u ⃗ A\vec{u}=\lambda\vec{u} Au=λu.
即 ( A − λ I ) u ⃗ = 0 (A-\lambda I)\vec{u}=0 (A−λI)u=0
特征向量有非零解,即 ( A − λ I ) u ⃗ = 0 (A-\lambda I)\vec{u}=0 (A−λI)u=0有非零解,即 r < n r<n r<n,也即 d e t ( ( A − λ I ) u ⃗ ) = 0 det((A-\lambda I)\vec{u})=0 det((A−λI)u)=0
特征值的求解方法:
上三角矩阵为对角线上的 n n n个元素。
特征值的性质:相加等于矩阵的迹,相乘等于行列式。
注意,特征值的求法不是将矩阵消成上三角矩阵后直接继承对角矩阵!
特征向量的求解方法:
由于我们只需要让其满足“非0解”这一个条件,所以在特定条件下可以做到单次
O
(
n
2
)
O(n^2)
O(n2)的复杂度:
当矩阵为上三角矩阵,且主对角线上元素互不相等时,可以得到:
对于每一个
B
=
(
A
−
λ
i
I
)
B=(A-\lambda _iI)
B=(A−λiI),其
r
(
B
)
=
n
−
1
r(B)=n-1
r(B)=n−1,必然存在非0解。故我们从大到小枚举,第
i
i
i位的值可以由
(
∑
j
>
i
b
[
i
]
[
j
]
)
/
b
[
i
]
[
i
]
(\sum_{j>i}b[i][j])/b[i][i]
(∑j>ib[i][j])/b[i][i]得到。当
b
[
i
]
[
i
]
b[i][i]
b[i][i]等于0时,把其设为
1
1
1即可。(必然只有一个)
经典例题:20200201 snow
性质: A m A^m Am的特征值即为 A A A的特征值的 m m m次。
相似矩阵:
定义:如果存在可逆矩阵 P P P,满足 P − 1 A P = B P^{-1}AP=B P−1AP=B,则 A 、 B A、B A、B相似。
相似矩阵的性质:
1. A A A和 B B B具有相同的特征值,特征多项式。但是没有相同的特征向量。
2. A A A和 B B B有相等的秩、迹、行列式。
主要用于缩小矩阵规模,用对角矩阵代替原矩阵。
设 λ 1 , λ 2... λ n \lambda1,\lambda2...\lambda n λ1,λ2...λn为 B B B的n个特征值, ( x 1 , x 2... x n ) (x1,x2...xn) (x1,x2...xn)为其对应的特征向量,则:
A A A= d i a g ( λ 1 , λ 2... λ n ) diag(\lambda1,\lambda2...\lambda n) diag(λ1,λ2...λn)(对角矩阵)
P P P为 ( x 1 , x 2 , . . . x n ) (x1,x2,...xn) (x1,x2,...xn).
证明:
由定义来推, B P = P A BP=PA BP=PA
B = P − 1 A P B=P^{-1}AP B=P−1AP
这样大大简化了运算,因为对角矩阵的乘法等于对应位置相乘。