特征值·特征向量
假设λ1,λ2,⋯,λn为n阶方阵A的特征值,x1,x2,⋯,xn是对应的特征向量,并且他们线性无关,称
Λ=⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎤
为A的特征值矩阵,称
S=[x1x2⋯xn]
为A的特征向量矩阵
特性向量之间线性无关,因此S是非奇异矩阵,S可逆
对角化
AS=A[x1,x2,⋯,xn]=[Ax1,Ax2,⋯,Axn]=[λ1x1,λ2x2,⋯,λnxn]=[x1,x2,⋯,xn]⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎤=SΛ
因为上方提及S可逆,则
S−1AS=S−1SΛ
化简后即可得到
S−1AS=ΛA=SΛS−1
以上即为A的对角化,只有A的特性向量线性无关的时候,才是可对角化的
矩阵的幂
由上方的对角化,可以得到
Λ2=S−1ASS−1AS=S−1A2S
进一步推导后,可以得到
Λn=S−1AnSAn=SΛnS−1
正交对角化
设上方A为对称矩阵,由对称矩阵的性质得知,它的特征向量互相正交,取一组正交基底向量P=[p1,p2,⋯,pn],由正交矩阵的性质,得知P−1=PT,即有
A=PΛP−1=PΛPT
一个n×n的矩阵可正交对角化的充分必要条件时AT=A
主轴定理
由于P的正交向量,则P的列向量是Rn的一个基底,且是一个基变换矩阵,即任意标准基底下的向量x,可以表示为P下的向量y,即
x=Py
- 上述叫做变量变换
- 特别的,如果P是正交矩阵,则为正交变量变换
将此变换带入到二次型里面,可以得到
xTAx=(Py)TA(Py)=yT(PTAP)y=yTΛy=[y1y2⋯yn]⎣⎢⎢⎡λ10λ2⋱0λn⎦⎥⎥⎤⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤=λ1y12+λ2y22+⋯+λnyn2
谱分解
A的特征值集合可以称为A的谱,假设A的n×n的对称矩阵
- A有n个实特征值
- A的特征值λ对应的特征空间的维数等于特征方程的根为该λ时的重数
- A的所有特征向量空间互相正交
- A可以正交对角化
称为A的谱定理,谱分解为
A=PΛPT=[p1⋯pn]⎣⎡λ10⋱0λn⎦⎤⎣⎢⎡p1T⋮pnT⎦⎥⎤=λ1p1p1T+λ2p2p2T+⋯+λnpnp1n
pipiT为秩一矩阵。
LU分解
LU分解实际上是高斯消元的另一种看法。即于任意的n阶方阵A,存在L是单位下三角矩阵,U是上三角矩阵,使得
A=LU
这里对矩阵A只要求是方阵
LU分解原理
对于任意的n阶方阵A,存在初等矩阵Eij,利用高斯消元,可以将A变为上三角矩阵,假设3阶矩阵,则
E32E31E21A=U
于是有
A=E32−1E31−1E21−1U
令E32−1E31−1E21−1=L,则A=LU,可以发现L必定为单位下三角矩阵
- 如果方阵A可逆,并且有三角分解,则该分解是唯一的
- 设A为n阶矩阵的前r(A)个顺序主子式均非零,则A存在三角分解,但不唯一
LU分解步骤
以3∗3为例
⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤=⎣⎡1l21l3101l32001⎦⎤⎣⎡u1100u12u220u13u23u33⎦⎤=⎣⎡1l21l3101l32001⎦⎤⎣⎡a1100a12u220a13u23u33⎦⎤
可以得出
a21a31a22a23a32a33=u11∗l21=u11∗l31=l21u12+u22=l21u12+u23=l31u12+l32u22=l31u13+l32u23+u33
Chelesky分解
Cchelesky分解的对象是:实正定矩阵
正定矩阵一般默认是对称的。实正定矩阵A必存在三角分解A=LU,且存在唯一的对角元素均为正的下三角矩阵C,使得
A=LLT
⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤=⎣⎡abd0ce00f⎦⎤⎣⎡a00bc0def⎦⎤=⎣⎡a2abadabb2+c2bd+ceadbd+ced2+e2+f2⎦⎤
Chelesky分解(LDL分解)
CTAC=diag(d1,d2,⋯,dn)
- C不一定实正交矩阵
- d1,d2,⋯,dn不一定是A的特征值
- 如果C是正交矩阵,则di为特征值
任意实对称矩阵可以同时进行相同行和列的初等变换化为对角形
Chelesky分解原理
初等变换,就是对矩阵乘上初等矩阵
PiTAPi⇓PkT⋯P2TP1TAP1P2⋯Pn
记C=P1P2⋯Pn,则
CTAC
为了得到C,可以对单位矩阵进行同等操作
(AI)⟶(CTACC)
LR分解
又称满秩分解,其对象为:m×n矩阵,假设其秩为r,存在秩同样为r两个矩阵L(列满秩)和R(行满秩),使得
A=LR
- 满秩分解不唯一:假设存在r阶可逆方阵D,则A=FG=F(DD−1)G=(FD)(D−1G)=F′G′
- 任何非零矩阵一定存在满秩分解
LR分解原理
假设存在初等变换矩阵B,使得
BA=(R0)
则
A=B−1(G0)=(L∣S)(R0)=LR
QR分解
矩阵可逆也不一定存在三角分解,矩阵正交(Q)三角(R)分解是对任何可逆矩阵都存在的理想分解。其原理是斯密特正交化,设A∈Cn×n为满秩的,则存在唯一的酉矩阵Q和对角线元素均为正的上三角矩阵R,使得
A=QR
- 对于实数矩阵,这里的酉矩阵类比为正交矩阵Q即可
- 矩阵A可以是非方阵,只需要列满秩(列向量是线性无关)
- 分解是唯一的
奇异值分解
参见:[线性代数] - 奇异值分解
总结
分解 |
公式 |
对象 |
谱分解 |
λ1p1p1T+λ2p2p2T+⋯+λnpnp1n |
对称矩阵 |
LU分解 |
A=LU=下三角×上三角 |
方阵 |
Chelesky分解 |
CTAC=diag(d1,d2,⋯,dn) |
实正定矩阵 |
LR分解 |
A=LR=列满秩×行满秩 |
m×n矩阵 |
QR分解 |
A=QR=标准正交矩阵×上三角 |
满秩方阵 |
奇异值分解 |
A=UΣVT=左奇异向量A右奇异向量 |
所有矩阵 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import numpy as np import scipy.linalg
A = np.array([ [1,3,5], [3,13,23], [5,23,42], ])
L = np.linalg.cholesky(A) print("Chelesky: ", end='') print(np.allclose(A, L.dot(L.T)))
A = np.array([ [3,1,2], [1,2,3], [2,3,1], ])
P, L, U = scipy.linalg.lu(A) print("LU: ", end='') print(np.allclose(A, np.linalg.inv(P).dot(L).dot(U)))
Q, R = scipy.linalg.qr(A) print("QR: ", end='') print(np.allclose(A, Q.dot(R)))
U, sigma, V = np.linalg.svd(A) S = np.zeros(A.shape)
for i in range(sigma.shape[0]): S[i][i] = sigma[i]
print("SVD: ", end='') print(np.allclose(A, U.dot(S).dot(V)))
|