本文仅对实际应用中常用到的矩阵论知识(应该理解并牢记)进行了不严格的归类总结,且称之为学习笔记。读者应该具备大学课程《线性代数》或《矩阵论》的基础。
注:主要参考于麻省理工公开课"线性代数"以及其他网络资源。
矩阵分块
矩阵分块是一种矩阵运算的思想,即将参与计算或分析的矩阵A的元素按一定规则(与具体分块目的相关)划分为若干个子矩阵,这些子矩阵在计算过程中可以视为A的元素(分块元素之间再按矩阵运算法则单独计算)。该思想可以使涉及到矩阵元素计算的问题简化从而更容易理解。
实例:初等行变换:将任意
3
×
3
3\times3
3×3的矩阵A的第二行减去第一行的3倍,其矩阵表示的思路:先将A按行分块,行变换等效于左乘一个操作方阵E,因此该过程可表示为:
KaTeX parse error: No such environment: equation at position 12: EA= \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ %开始数学环境 …
显然,在该行变换矩阵的作用下,新矩阵A’第i行等价于以行变换矩阵E第i行元素作为系数线性组合原矩阵A的各行(即
r
1
,
r
2
,
r
3
r_1,r_2,r_3
r1,r2,r3)。由于行变换只对第二行进行了加操作,则新矩阵**A’**的第一、三行没变,即
[
a
1
,
a
2
,
a
3
]
=
[
1
,
0
,
0
]
[a_1,a_2,a_3]=[1,0,0]
[a1,a2,a3]=[1,0,0];
[
c
1
,
c
2
,
c
3
]
=
[
0
,
0
,
1
]
[c_1,c_2,c_3]=[0,0,1]
[c1,c2,c3]=[0,0,1];至于第二行,很容易写出其线性组合系数
[
b
1
,
b
2
,
b
3
]
=
[
−
3
,
1
,
0
]
[b_1,b_2,b_3]=[-3,1,0]
[b1,b2,b3]=[−3,1,0]。
矩阵相乘
从矩阵乘法规则出发,矩阵相乘有四种理解方式,其中行列变换的方式比较实用。为了便于表述,这里以矩阵A( m × p m \times p m×p)与矩阵B( p × n p \times n p×n)相乘为例,得乘积矩阵C( m × n m \times n m×n)。
- 基本定义:将矩阵A按行分块,B按列分块。此时A和B分别为列向量 [ r 1 , r 2 , . . . , r m ] ⊤ [r_1,r_2,...,r_m]^\top [r1,r2,...,rm]⊤和行向量 [ c 1 , c 2 , . . . , c p ] [c_1,c_2,...,c_p] [c1,c2,...,cp],则结果矩阵C有 m × n m\times n m×n个分块元素,且每个分块元素C(i,j)是一个数值 r i c j r_ic_j ricj,与矩阵相乘基本定义相同;
- 分解组合:将矩阵A按列分块,B按行分块。将矩阵A按行分块,B按列分块。此时A和B分别为行向量 [ c 1 , c 2 , . . . , c p ] [c_1,c_2,...,c_p] [c1,c2,...,cp]和列向量 [ r 1 , r 2 , . . . , r p ] ⊤ [r_1,r_2,...,r_p]^\top [r1,r2,...,rp]⊤,则结果矩阵C有 1 × 1 1\times 1 1×1个分块元素,即C= c 1 r 1 + c 2 r 2 + . . . + c p r p c_1r_1+c_2r_2+...+c_pr_p c1r1+c2r2+...+cprp,这是p个 m × n m\times n m×n矩阵的总和;
- 初等行变换:将左乘矩阵A视为目标矩阵B的初等行变换。对B按行分块即 [ r 1 , r 2 , . . . , r p ] ⊤ [r_1,r_2,...,r_p]^\top [r1,r2,...,rp]⊤,结果矩阵的每行都是以A中对应行的元素为线性系数组合B的各行分块元素,即C(row(i))=B(i,1) r 1 r_1 r1+B(i,2) r 2 r_2 r2+…+B(i,p) r p r_p rp;
- 初等列变换:将右乘矩阵B视为目标矩阵A的初等列变换。对A按列分块即 [ c 1 , c 2 , . . . , c p ] [c_1,c_2,...,c_p] [c1,c2,...,cp],结果矩阵的每列都是以B中对应列的元素为线性系数组合A的各列分块元素,即C(col(i))=A(1,i) c 1 c_1 c1+A(2,i) c 2 c_2 c2+…+A(p,i) c p c_p cp;
矩阵消元
矩阵消元是指对矩阵A进行一系列行初等变换操作(等效于一系列初等矩阵左乘),使其转化成便于运算和分析(比如计算行列式和秩)的"行梯阵式"。特别地,若A为非奇异的方阵且所有顺序主子式都不为0时(即不作行置换),则通过矩阵消元得到的"行梯阵式"是一个上三角矩阵U,而描述这些初等变换的矩阵E的逆是一个下三角矩阵L,即A=LU,该过程称为LU分解。
例如:矩阵A第二行减去第一行的三倍(
E
1
E_{1}
E1),然后第三行减去第二行的两倍(
E
2
E_{2}
E2),即可转化为简洁有用的“行梯阵式”:
KaTeX parse error: No such environment: equation at position 21: …}E_{1}A= \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ %开始数学环境 …
线性空间
向量空间 R n R^n Rn是指由包含n个实数元素的向量所组成的集合,且该集合对于向量的加法和数乘运算封闭(必然包含零向量);若r个彼此线性无关的向量 v 1 , v 2 , . . . , v r ∈ R n v_1,v_2,...,v_r \in R^n v1,v2,...,vr∈Rn,且 R n R^n Rn中任意向量都可由 v 1 , v 2 , . . . , v r v_1,v_2,...,v_r v1,v2,...,vr线性表示,则称 v 1 , v 2 , . . . , v r v_1,v_2,...,v_r v1,v2,...,vr为向量空间 R n R^n Rn的一个基,r称为 R n R^n Rn的维数,并称 R n R^n Rn为r维向量空间;
在矩阵应用中,经常遇到的向量空间有矩阵的列空间[矩阵包含的所有列向量张成的向量空间,即能被列向量线性组合表示的所有向量的集合(必须包括零向量)]和零空间[满足AX=0的所有向量X能构成一个向量空间,称之为A的零空间]。
线性独立:某个向量空间中的n个向量,若其中任何一个都不能被其他向量的线性组合表示,则称这n个向量线性无关/线性独立,否则线性相关。
线性方程组的解:AX=b有解的充分必要条件是R(A)=R(A,b)[R是矩阵的秩],其本质是b属于A的列空间,即b与A的列向量线性相关。同时,若R(A)=dim(X),仅有唯一解;R(A) < < <dim(X),有多个解(包含dim(X)-R(A)个自由变量解)。
注意:在实际的参数求解问题中,往往观测值数量大于未知数个数,即AX=b中的A的行数m大于列数n,由于存在观测噪声,从而导致b不在A的列空间即X无解。此时,若A是列满秩,从而对称阵A ⊤ ^\top ⊤A满秩可逆,则将原方程转化为即A ⊤ ^\top ⊤AX=A ⊤ ^\top ⊤b有解X=(A ⊤ ^\top ⊤A) − 1 ^{-1} −1A ⊤ ^\top ⊤b。
I.几何解释:在A的列空间寻找与b最近接的向量b’,即b在A列空间的投影,求解AX’=b’作为近似解。记投影向量b’=AX’(假设A列满秩,否则此处A应该取A的列空间的一组基底),则b-b’正交于A的列空间,即A ⊤ ^\top ⊤(b-AX’)=0,从而A ⊤ ^\top ⊤AX’=A ⊤ ^\top ⊤b,可得有解X=(A ⊤ ^\top ⊤A) − 1 ^{-1} −1A ⊤ ^\top ⊤b。这里可以推出A的列空间的投影矩阵P=A(A ⊤ ^\top ⊤A) − 1 ^{-1} −1A ⊤ ^\top ⊤。
II.代数解释:寻找一组使模型误差最小的解,即minimize ||e|| 2 ^2 2=||AX-b|| 2 ^2 2,从而将原方程组转化为一个二次函数的极值求解问题,最直接的方法是将函数分别对自变量求导并令其等于零,从而得到新的线性方程组(等式数量等于自变量个数),恰好等价于A ⊤ ^\top ⊤AX=A ⊤ ^\top ⊤b。
特殊矩阵
- 置换矩阵:对单位矩阵E作行交换后得到矩阵P。性质有P − 1 ^{-1} −1=P ⊤ ^\top ⊤;
- 对称矩阵:方阵A的元素沿着主对角线对称,即A(i,j)=A(j,i)。性质有A ⊤ ^\top ⊤=A;对于任意矩阵R,R ⊤ ^\top ⊤R一定是对称矩阵;对称矩阵的特征值为实数,特征向量相互正交;
- 投影矩阵:具体定义在**线性空间部分已作介绍。性质P=P ⊤ ^\top ⊤;P=P 2 ^2 2;
- 正交矩阵:满足A ⊤ ^\top ⊤A=E的方阵A为正交矩阵,即A的列向量都是单位向量且两两正交(充要条件);
- 正定矩阵:如果方阵M满足对任何非零向量z,都有z ⊤ ^\top ⊤Mz> 0,则M为正定阵;[判定定理1]:A的特征值全为正;[判定定理2]:各阶顺序主子式都为正;[判定定理3]:方阵的行列式大于0;
- 相似矩阵:设A,B为n阶矩阵,如果有n阶可逆矩阵P存在,使得P − 1 ^{-1} −1AP=B,则称矩阵A与B相似,记为A ~ B. 相似矩阵具有相同的本征值(特征向量则不一定)。
矩阵分析
###I.本征值与本征向量
公式定义:AX= λ \lambda λX,其中 λ \lambda λ和X(非零向量)分别称为矩阵A的本征值和本征向量。[求解:det(A- λ \lambda λI)=0;由此可知A必为方阵]
几何含义:在A线性变换下的向量X,只改变尺度而不改变方向。更多见链接.
基本性质:特征值之和等于矩阵的迹(主对角线元素之和);特征值之积等于矩阵的行列式;三角矩阵的特征值就是对角线元素;A的n次方结果矩阵具有与A相同的本值向量和对应n次方的A的本征值;
Extendation:对称矩阵的特征值是实数,反对称矩阵的特征值是纯虚数。矩阵越接近与一个对称矩阵,越有可能具有实数的特征值,反之亦然。
对角化:假设A具有n个线性无关的本证向量(其充分非必要条件:n个本征值互不相同),将各本征向量按列顺序组合成矩阵S=
[
s
1
,
s
2
,
.
.
.
,
s
n
]
[s_1,s_2,...,s_n]
[s1,s2,...,sn],那么AS=
[
λ
1
s
1
,
λ
2
s
2
,
.
.
.
,
λ
n
s
n
]
[\lambda_1s_1,\lambda_2s_2,...,\lambda_ns_n]
[λ1s1,λ2s2,...,λnsn]=SD(D为对角矩阵),从而有对角化公式S
−
1
^{-1}
−1AS=D。补充:此时A和D互为相似矩阵。
###II.SVD分解[!!!]
SVD分解是一种最通用的矩阵分解方式,对任何m × \times ×n的矩阵A都能表示成:A=UΣV ⊤ ^\top ⊤,其中U是m阶酉矩阵;Σ是半正定m×n阶对角矩阵(其对角线上的元素即A的奇异值);而V ⊤ ^\top ⊤是n阶酉矩阵。
更深理解:对于矩阵A,取其行空间的任意一个向量 v k v_k vk,在A的作用下转换成其列空间的某个向量 u k u_k uk,即 u k u_k uk=A v k v_k vk. SVD分解实质上是个类似的过程:寻找行空间一组标准正交基: v 1 , v 2 , . . . , v r v_1,v_2,...,v_r v1,v2,...,vr,和列空间的一组标准正交基: u 1 , u 2 , . . . , u r u_1,u_2,...,u_r u1,u2,...,ur,使得AV=UΣ(Σ的元素表示对应基向量之间的尺度因子)。[当r < < <m或n,对应的V或U右边可用A相应的行/列零空间基底填充,以组成 R m R^m Rm和 R n R^n Rn空间的一组完整的正交基]
求解思路:A ⊤ ^\top ⊤A=VΣ ⊤ ^\top ⊤ΣV,利用对称矩阵的特点可知,其各本征向量按列顺序组合V,其对应的本征值组成Σ ⊤ ^\top ⊤Σ;至此,可以直接利用公式A=UΣV ⊤ ^\top ⊤求解U,亦可通过求解AA ⊤ ^\top ⊤本征向量的方式求解。
关于SVD分解的几何意义以及应用请参考博文:奇异值分解-几何意义和强大的矩阵奇异值分解-应用。
###III.QR分解
方阵情形:任何实矩阵A都能够被分解为A=QR,其中,Q是一个正交矩阵,R是一个上三角矩阵。如果A是可逆的,在要求R的对角元素为正的前提下此分解唯一。[若A有n个线性无关的列,则Q的前n列构成A的列空间的一个正交基]
一般矩阵:设 m × n m \times n m×n矩阵A(不妨设m>n),此时A仍然可以分解为 m × m m \times m m×m的正交矩阵Q和 m × n m \times n m×n的上三角矩阵R矩阵(包含底部若干行0元素)的乘积。
更多见链接.
Extendation:分解原型来自于对矩阵A进行行变换为“行梯阵式”的过程。
###IV.矩阵的条件数
矩阵A的条件数等于A的范数与A − 1 ^{-1} −1的范数的乘积,即cond(A)=‖A‖·‖A − 1 ^{-1} −1‖,对应矩阵的3种范数,相应地可以定义3种条件数。 函数 cond(A,1)、cond(A)或cond(A, inf) 是判断矩阵病态与否的一种度量,条件数越大矩阵越病态。
基本特征:条件数表示矩阵计算对于误差的敏感性。对于线性方程组AX=b,如果A的条件数大,b的微小改变就能引起解X较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,X的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,X的变化情况。
Extendation:在实际条件数分析中,一般不求取A
−
1
^{-1}
−1,而是根据经验判断。病态矩阵一般有以下四种常见特点:
- 特征值之间相差大数量级;
- 主元消去过程中出现小主元;
- 行列式很大或很小;
- 矩阵元素间相差很大数量,且无规则;
From: 百度文库