矩阵基本运算
-
对于矩阵 A m × n A_{m\times n} Am×n和 x x x, A x Ax Ax表示对 A A A的各列,使用 x x x各个分量进行线性组合,即
A m × n x = [ a 1 , a 2 , . . . , a n ] x = [ a 1 , a 2 , . . . , a n ] [ x 1 , x 2 , . . . x n ] = x 1 a 1 + x 2 a 2 + . . . + x n a n \begin{aligned}A_{m\times n}x&=[a_1,a_2,...,a_n]x\\ &=[a_1,a_2,...,a_n][x_1,x_2,...x_n]\\ &=x_1a_1+x_2a_2+...+x_na_n \end{aligned} Am×nx=[a1,a2,...,an]x=[a1,a2,...,an][x1,x2,...xn]=x1a1+x2a2+...+xnan
另一个角度来看 x T A m × n x^TA_{m\times n} xTAm×n则是代表以x为权重的 A A A的各行的线性组合。
可以推广到矩阵的乘法: C m × k = A m × n B n × k C_{m\times k}=A_{m\times n}B_{n\times k} Cm×k=Am×nBn×k. 1)C的第i行,可以看做是以A的第i行为权重的B的各行的线性组合;2)C的第i列,可以看做是以B的第i列为权重的A的各行的线性组合;
所以如果对矩阵进行列交换或者列线性组合变换,则应该右乘矩阵或者向量;如果对矩阵进行行变换或者行线性组合,则应该左乘矩阵或者向量。但是这个不是绝对的(这个理解并不准确,出现这种情况的原因仅仅是因为存在一个等价行变换来表示列变换而已),如果矩阵A是方阵,且可逆,则对于列变换,也可以通过左乘矩阵来实现。
例如,通过列变换, A n × n A_{n\times n} An×n可以得到 B n × n B_{n\times n} Bn×n,理论上应该是 A n × n C n × n = B n × n A_{n\times n}C_{n \times n}=B_{n\times n} An×nCn×n=Bn×n(右乘矩阵C相当于对A各列进行线性组合),但是因为A可逆,一定存在 P n × n A n × n = B n × n P_{n\times n}A_{n\times n}=B_{n\times n} Pn×nAn×n=Bn×n,因为
B n × n = B n × n A n × n − 1 A n × n = ( B n × n A n × n − 1 ) A n × n \begin{aligned}B_{n\times n}&=B_{n\times n}A_{n\times n}^{-1}A_{n\times n}=(B_{n\times n}A_{n\times n}^{-1})A_{n\times n} \end{aligned} Bn×n=Bn×nAn×n−1An×n=(Bn×nAn×n−1)An×n
令 P n × n = B n × n A n × n − 1 P_{n\times n}=B_{n\times n}A_{n\times n}^{-1} Pn×n=Bn×nAn×n−1,则 P n × n P_{n\times n} Pn×n即为所求。这个也很好理解,因为 A A A可逆,所以B的各行都可以使用 A A A的各行的线性组合的方式来表示。这个也可以非严格说明,如果 A A A可逆,则对于 A n × n A_{n\times n} An×n的各行的任意一个线性组合得到的 n × n n\times n n×n矩阵,都存在一个各列的线性组合,使得两者等价。反之亦然。
P P P和 C C C的关系为 P = B A − 1 = A C A − 1 P=BA^{-1}=ACA^{-1} P=BA−1=ACA−1. -
A 是 m × n 矩阵, x 是 n × 1 向量 A是{m\times n}矩阵,x是{n\times 1}向量 A是m×n矩阵,x是n×1向量, A x Ax Ax的几何解释:矩阵A将n维空间 R n \Bbb R^n Rn的一个向量映射到m维空间 R m \mathbb {R^m} Rm
-
A T A A^TA ATA是对称矩阵
证明容易:
证明一:
( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA, ∴ A T A \therefore A^TA ∴ATA是对称矩阵
证明二:
A = [ a 1 , a 2 , . . . a n ] A=[a_1,a_2,...a_n] A=[a1,a2,...an],则
A T A = [ a 1 T a 2 T . . . a n T ] [ a 1 a 2 . . . a n ] = [ a 1 T a 1 a 1 T a 2 . . . a 1 T a n a 2 T a 1 a 2 T a 2 . . . a 2 T a n . . . a n T a 1 a n T a 2 . . . a n T a n ] \begin{aligned} A^TA&=\begin{bmatrix}a_1^T\\ a_2^T\\ ...\\ a_n^T\\ \end{bmatrix}\begin{bmatrix}a_1&a_2&...&a_n\end{bmatrix}\\ &=\begin{bmatrix}a_1^Ta_1&a_1^Ta_2&...&a_1^Ta_n\\ a_2^Ta_1&a_2^Ta_2&...a_2^Ta_n\\ ...\\a_n^Ta_1&a_n^Ta_2&...&a_n^Ta_n\end{bmatrix} \end{aligned} ATA= a1Ta2T...anT [a1a2...an]= a1Ta1a2Ta1...anTa1a1Ta2a2Ta2anTa2......a2Tan...a1TananTan
对于矩阵 A T A A^TA ATA第i行j列元素都是标量,标量和自己转置是相等的 ( A T A ) i j = a i T a j = ( a i T a j ) T = a j T a i = ( A T A ) j i (A^TA)_{ij}=a_i^Ta_j=(a_i^Ta_j)^T=a_j^Ta_i=(A^TA)_{ji} (ATA)ij=aiTaj=(aiTaj)T=ajTai=(ATA)ji,所以 A T A A^TA ATA是对称矩阵。 -
若矩阵 A A A可逆,其逆矩阵为 C C C( C A = A C = I CA=AC=I CA=AC=I),则C由A唯一确定。
证明:使用反证法。若逆矩阵不唯一,不妨设为B,则 B = B I = B ( A C ) = ( B A ) C = C B=BI=B(AC)=(BA)C=C B=BI=B(AC)=(BA)C=C,所以BC为同一矩阵。 -
矩阵逆的定义是 A C = C A = I AC=CA=I AC=CA=I。有没有可能 A C = I , 但是 C A ≠ I AC=I, 但是CA\ne I AC=I,但是CA=I?实际上若AC都是方阵, A C = I AC=I AC=I,则 C A = I CA=I CA=I
证明:实际上没有找到比较好的证明方式,暂略。 -
若方阵A个各行线性相关,则各列也线性相关;反之亦然。证明方法:若各行线性相关则, d e t ( A ) = 0 det(A)=0 det(A)=0, 而 d e t ( A ) = d e t ( A T ) = 0 det(A)=det(A^T)=0 det(A)=det(AT)=0,所以 A T A^T AT各行线性相关,即A各列线性相关。如何通过对初等行列变换的分析来证明?
LU分解
- LU分解的求取:
A
m
×
n
=
L
m
×
m
⋅
U
m
×
n
A_{m\times n}=L_{m\times m}\cdot U_{m\times n}
Am×n=Lm×m⋅Um×n,其中L是下三角矩阵且对角线元素都是1,U是上三角矩阵。
先看看做法 [ A I ] [A\ I] [A I]可以通过行初等变换得到 [ U L − 1 ] [U\ L^{-1}] [U L−1]
原因是什么呢?对A做一次行初等变换,相当于对A左乘矩阵 P i P_i Pi,经过行初等变换之后,把A变换成上三角矩阵之后,做的变换相当于 [ ( ∏ i = 1 n P i ) A ( ∏ i = 1 n P i I ] [(\prod\limits_{i=1}^{n} {P_i})A \ \ \ \ (\prod\limits_{i=1}^{n} {P_i}I] [(i=1∏nPi)A (i=1∏nPiI],令 L − 1 = ( ∏ i = 1 n P i ) L^{-1}=(\prod\limits_{i=1}^{n} {P_i}) L−1=(i=1∏nPi),则有 [ L − 1 A L − 1 ] [L^{-1}A\ \ \ \ L^{-1}] [L−1A L−1],也即 [ U L − 1 ] [U\ \ L^{-1}] [U L−1],故经过行初等变换之后,得到的上三角矩阵为 U U U,此时单位阵 I I I已经变换成了 L − 1 L^{-1} L−1对其求逆可得 L L L.
L − 1 A = U ⟹ A = L U L^{-1}A=U\implies A=LU L−1A=U⟹A=LU - 不是所有的矩阵都有LU分解,比如 a 11 = 0 a_{11}=0 a11=0的情况,此时可以通过交换两行的方式得到LU分解,此时算是PLU分解,其中P是置换矩阵(左乘,即是对行进行变换);LU分解不必是针对方阵;
- PLU分解应用:1) 求解方程组 A x = b ⟹ P L U x = b ,令 y = U x ,再求 x Ax=b\implies PLUx=b,令y=Ux,再求x Ax=b⟹PLUx=b,令y=Ux,再求x,这种做法比高斯消去时间复杂度要低,但是求取PLU分解需要使用高斯消去,这种做法的主要优势在于求取多个 ( x , b ) (x,b) (x,b)时,相当于对运算做了预处理,提高了效率;2)计算行列式,根据顺序主子式求法,行列式的计算时间复杂 F ( n ) = n F ( n − 1 ) F(n)=nF(n-1) F(n)=nF(n−1),阶乘复杂度,但是通过行初等变换,得到两个三角矩阵,行列式为对角线元素乘积(仍然可以通过顺序主子式来算,只不过因为0非常多,退化成了对角线元素乘积),时间复杂度 n ! → n 3 n!\to n^3 n!→n3;3)矩阵求逆: A = L U → A − 1 = U − 1 L − 1 A=LU\to A^{-1}=U^{-1}L^{-1} A=LU→A−1=U−1L−1优于高斯消去。据说,numpy/scipy求逆和行列式就是LU分解,导致即使看起来行列式应该是整数,他也有个-15左右的误差。
行列式
-
定义。行列式的定义有很多种。
定义一(递归):当 n ≥ 2 n\ge 2 n≥2, n × n n \times n n×n矩阵 A = [ a i j ] A=[a_{ij}] A=[aij]的行列式是形如 ± a 1 j ∣ A 1 j ∣ \pm a_{1j}|A_{1j}| ±a1j∣A1j∣的 n n n项的和,即
∣ A ∣ = ∑ j = 1 n ( − 1 ) i + j a i j ∣ A i j ∣ |A|=\sum\limits_{j=1}^n(-1)^{i+j} a_{ij}|A_{ij}| ∣A∣=j=1∑n(−1)i+jaij∣Aij∣, A i j A_{ij} Aij是除去第i行,第j列之后的子矩阵。
定义二(求和):
∣ A ∣ = ∑ k = 1 n ! ( − 1 ) k a 1 k 1 a 1 k 2 . . . a 1 k n |A|=\sum\limits_{k=1}^{n!}(-1)^ka_{1k_1}a_{1k_2}...a_{1k_n} ∣A∣=k=1∑n!(−1)ka1k1a1k2...a1kn
其中 k 1 , k 2 , . . . , k n k_1,k_2,...,k_n k1,k2,...,kn是 1 , 2 , . . . , n 1,2,...,n 1,2,...,n的一个组合, k k k是 1 , 2 , . . . , n 1,2,...,n 1,2,...,n为了得到 k 1 , k 2 , . . . , k n k_1,k_2,...,k_n k1,k2,...,kn锁发生的元素交换的次数。例如 n = 4 n=4 n=4, k 1 , k 2 , . . . , k n = 2 , 3 , 4 , 1 k_1,k_2,...,k_n=2,3,4,1 k1,k2,...,kn=2,3,4,1,可以通过3次交换得到,故 k = 3 k=3 k=3,实际定义二可以通过定义一展开得到。通过这个公式可以看到,通过定义求行列式的时间复杂度是 n ! n! n!. -
若 A A A为三角阵,则 ∣ A ∣ |A| ∣A∣为对角线上元素的乘积。通过定义,容易得到。
-
行列式的性质:若 A A A是方阵
- 若 A A A的某一行的倍数加到另一行得到矩阵 B B B,则 ∣ B ∣ = ∣ A ∣ |B|=|A| ∣B∣=∣A∣;
- 若 A A A的两行互换得到矩阵 B B B,则 ∣ B ∣ = − ∣ A ∣ |B|=-|A| ∣B∣=−∣A∣;
- 若
A
A
A的某一行乘r得到矩阵
B
B
B,则
∣
B
∣
=
r
∣
A
∣
|B|=r|A|
∣B∣=r∣A∣;
上述都换成列也成立;
下面先给出数学归纳法的证明:
上述变换都可以通过一个左乘一个行变换矩阵 P P P的方式来得到 B = P A B=PA B=PA:
∣ P ∣ = { − 1 ( 行交换 ) 1 ( 行倍加 ) r ( 行倍乘 ) |P|= \begin{cases} -1(行交换)\\ 1(行倍加)\\ r(行倍乘) \end{cases} ∣P∣=⎩ ⎨ ⎧−1(行交换)1(行倍加)r(行倍乘)
若上述定理对k阶矩阵成立 ∣ B i j ∣ = α ∣ A i j ∣ |B_{ij}|=\alpha |A_{ij}| ∣Bij∣=α∣Aij∣,则对于k+1阶矩阵,选取一个没有变换的行i进行余因子展开
∣ B ∣ = ∑ j = 1 j = k + 1 ( − 1 ) i + j b i j ∣ B i j ∣ = ∑ j = 1 j = k + 1 ( − 1 ) i + j a i j α ∣ A i j ∣ ( 因为改行没有发生变化,故 b i j = a i j ) ( 因为 B i j 是 B 的子矩阵,所有 B i j 的变换都是相同的,所以任意 ∣ B i j ∣ = α ∣ A i j ∣ ) = α ∣ A ∣ \begin{aligned} |B|&=\sum_{j=1}^{j=k+1}(-1)^{i+j}b_{ij}|B_{ij}|\\ &=\sum_{j=1}^{j=k+1}(-1)^{i+j}a_{ij}\alpha|A_{ij}| \\ &(因为改行没有发生变化,故b_{ij}=a_{ij})\\ &(因为B_{ij}是B的子矩阵,所有B_{ij}的变换都是相同的,所以任意|B_{ij}|=\alpha |A_{ij}|)\\ &=\alpha|A| \end{aligned} ∣B∣=j=1∑j=k+1(−1)i+jbij∣Bij∣=j=1∑j=k+1(−1)i+jaijα∣Aij∣(因为改行没有发生变化,故bij=aij)(因为Bij是B的子矩阵,所有Bij的变换都是相同的,所以任意∣Bij∣=α∣Aij∣)=α∣A∣
上述可以使用数学归纳法来证明,但是不够直观。比如第一条,实际上有点不可思议,因为如果 A A A元素全为正,因为A的某行元素变大了,那行列式也应该变大,但是并没有。
对于部分结论,可以有个更直观点的理解。
对于第一条,假如是把第i行倍乘之后加到了第j行上,可以根据定义:
∣ A ∣ = ∑ k = 1 k = n ( − 1 ) j + k a j k ∣ A j k ∣ ∣ B ∣ = ∑ k = 1 k = n ( − 1 ) j + k b j k ∣ B j k ∣ = ∑ k = 1 k = n ( − 1 ) j + k b j k ∣ A j k ∣ ( 因为是按照 j 行展开, A B 只有 j 行不同,故余因子展开式除 j 行外都是一样的 ) = ∑ k = 1 k = n ( − 1 ) j + k a j k ∣ A j k ∣ + ∑ k = 1 k = n ( − 1 ) j + k r a i k ∣ A j k ∣ = ∣ A ∣ + ∑ k = 1 k = n ( − 1 ) j + k r a i k ∣ A j k ∣ \begin{aligned} |A|&=\sum_{k=1}^{k=n}(-1)^{j+k}a_{jk}|A_{jk}| \\ |B|&=\sum_{k=1}^{k=n}(-1)^{j+k}b_{jk}|B_{jk}|\\ &=\sum_{k=1}^{k=n}(-1)^{j+k}b_{jk}|A_{jk}|(因为是按照j行展开,AB只有j行不同,故余因子展开式除j行外都是一样的) \\ &=\sum_{k=1}^{k=n}(-1)^{j+k}a_{jk}|A_{jk}|+\sum_{k=1}^{k=n}(-1)^{j+k}ra_{ik}|A_{jk}|\\ &=|A|+\sum_{k=1}^{k=n}(-1)^{j+k}ra_{ik}|A_{jk}| \end{aligned} ∣A∣∣B∣=k=1∑k=n(−1)j+kajk∣Ajk∣=k=1∑k=n(−1)j+kbjk∣Bjk∣=k=1∑k=n(−1)j+kbjk∣Ajk∣(因为是按照j行展开,AB只有j行不同,故余因子展开式除j行外都是一样的)=k=1∑k=n(−1)j+kajk∣Ajk∣+k=1∑k=n(−1)j+kraik∣Ajk∣=∣A∣+k=1∑k=n(−1)j+kraik∣Ajk∣
观察第二项不难发现,其等价于 A A A的第j行替换成第i行倍乘r之后的行列式,因为此时第i行和第j行线性相关,所以该值为0.这里需要注意的是,这里并不是利用了|A+B|=|A|+|B|(对于大多数矩阵,这不成立),只是利用定义展开后恰好发现是两个矩阵行列式之和。
∴ ∣ B ∣ = ∣ A ∣ \therefore |B|=|A| ∴∣B∣=∣A∣
对于第三条,根据定义,按照倍乘的行进行展开可以直接得出,不再描述。
- ∣ A T ∣ = ∣ A ∣ |A^T|=|A| ∣AT∣=∣A∣
- A A A是可逆的 ⟺ ∣ A ∣ ≠ 0 \iff |A|\ne 0 ⟺∣A∣=0
-
A
,
B
A,B
A,B均为
n
×
n
n \times n
n×n方阵,则
∣
A
B
∣
=
∣
A
∣
∣
B
∣
|AB|=|A||B|
∣AB∣=∣A∣∣B∣
证明一:若 A , B A,B A,B其中一个不可逆,则两边都是0,自然成立。对于 A , B A,B A,B都可逆的情况。对 A , B T A,B^T A,BT进行PLU分解,得 A = P 1 L 1 U 1 , B T = P 2 L 2 U 2 A=P_1L_1U_1, B^T=P_2L_2U_2 A=P1L1U1,BT=P2L2U2。
∣ A B ∣ = ∣ A B T T ∣ = ∣ P 1 L 1 U 1 ( P 2 L 2 U 2 ) T ∣ = ∣ P 1 L 1 U 1 U 2 T L 2 T P 2 T ∣ ∴ ∣ P 1 − 1 L 1 − 1 A B L 2 − 1 P 2 − 1 ∣ = ∣ U 1 U 2 ∣ \begin{aligned} |AB|&=|AB^{TT}|=|P_1L_1U_1(P_2L_2U_2)^T|\\ &=|P_1L_1U_1U_2^TL_2^TP_2^T| \end{aligned}\\ \therefore |P_1^{-1}L_1^{-1}ABL_2^{-1}P_2^{-1}|=|U_1U_2| ∣AB∣=∣ABTT∣=∣P1L1U1(P2L2U2)T∣=∣P1L1U1U2TL2TP2T∣∴∣P1−1L1−1ABL2−1P2−1∣=∣U1U2∣
因为 A A A每发生一次行交换, B B B每发生一次列交换,等价于AB也发生一次交换,正好和 P 1 , P 2 P_1,P_2 P1,P2的-1重数抵消
通过以上变换,将|AB|变成了上三角矩阵相乘,结果仍是上三角矩阵,且行列式为对角线元素乘积。而变换过程只用了行倍加变换和行交换,不改变矩阵的行列式的值(-1重数已经抵消掉),而 U 1 , U 2 U_1,U_2 U1,U2也恰好是矩阵 A , B A,B A,B的行列式,故 ∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB|=|A||B| ∣AB∣=∣A∣∣B∣
证明二:对于可逆的情况
A B = ( ∏ i = n i = 1 P i ) B ∣ A B ∣ = ∣ ( ∏ i = n i = 1 P i ) B ∣ = ( ∏ i = n i = 1 α i ) ∣ B ∣ \begin{aligned} AB&=(\prod_{i=n}^{i=1}P_i)B\\ |AB|&=\left|(\prod_{i=n}^{i=1}P_i)B\right|\\ &=(\prod_{i=n}^{i=1}\alpha_i)|B|\\ \end{aligned} AB∣AB∣=(i=n∏i=1Pi)B= (i=n∏i=1Pi)B =(i=n∏i=1αi)∣B∣
而 ( ∏ i = n i = 1 α i ) = ∣ A ∣ (\prod\limits_{i=n}^{i=1}\alpha_i)=|A| (i=n∏i=1αi)=∣A∣
理解是: α i \alpha_i αi是做行初等变换的系数(-1交换, 1行倍加,r单行倍乘),AB可以看做是B矩阵经过一系列行初等变换得到,其中每一步行列式都可能会发生变化,而最后的结果是各个系数的乘积。
特征值和特征向量
-
对于 n × n n\times n n×n矩阵 A A A和 B B B,如果存在可逆矩阵 P P P,使得 P − 1 A P = B P^{-1}AP=B P−1AP=B,则称 A A A相似于 B B B. 若令 Q = P − 1 Q=P^{-1} Q=P−1,则 Q − 1 B Q = A Q^{-1}BQ=A Q−1BQ=A,即 B B B也相似于 A A A. 一般简单说 A A A和 B B B相似. 若 A A A和 B B B相似,则 A A A和 B B B具有相同的特征值。
证明一: 若 λ \lambda λ是 A A A的一个特征值,则存在 v v v,使得 A v = λ v Av=\lambda v Av=λv
A v = Q − 1 B Q v = λ v ⟹ B Q v = Q λ v = λ Q v Av=Q^{-1}BQv=\lambda v \implies\\ BQv=Q\lambda v=\lambda Qv Av=Q−1BQv=λv⟹BQv=Qλv=λQv
令 w = Q v w=Qv w=Qv,则 B w = λ w Bw=\lambda w Bw=λw,因此 λ \lambda λ是 B B B的特征值, w = Q v w=Qv w=Qv是对应的 B B B的特征向量。
上述证明还要求 w ≠ 0 w\ne \bold 0 w=0,这个也是容易得到的。可以使用反证法:
w = Q v w=Qv w=Qv表示的是以 v v v的各个分量为权重的 Q Q Q的各列的线性组合,因为 Q Q Q可逆,所以Q各列线性无关。如果 w = 0 w=\bold 0 w=0,只能是 v v v的各个分量都为0,即 v = 0 v=\bold 0 v=0. 这和 v v v是 A A A的特征向量矛盾。
证明二:若 λ \lambda λ是 A A A的一个特征值,则 ∣ A − λ I ∣ = 0 |A-\lambda I|=0 ∣A−λI∣=0.
∣ B − λ I ∣ = ∣ P − 1 A P − λ I ∣ = ∣ P − 1 A P − λ P − 1 I P ∣ = ∣ P − 1 ( A − λ I ) P ∣ = ∣ P − 1 ∣ ⋅ ∣ ( A − λ I ) ∣ ⋅ ∣ P ∣ = 0 \begin{aligned} |B-\lambda I|&= |P^{-1}AP-\lambda I|\\ &=|P^{-1}AP-\lambda P^{-1}IP|\\ &=|P^{-1}(A-\lambda I)P| \\ &=|P^{-1}|\cdot|(A-\lambda I)|\cdot|P| =0 \end{aligned} ∣B−λI∣=∣P−1AP−λI∣=∣P−1AP−λP−1IP∣=∣P−1(A−λI)P∣=∣P−1∣⋅∣(A−λI)∣⋅∣P∣=0
故 λ \lambda λ是 B B B的特征值。 -
若 λ \lambda λ是 A A A的特征值,则 λ 2 \lambda^2 λ2是 A 2 A^2 A2的特征值。
证明容易: ∵ A v = λ v ∴ A 2 v = A A v = A ( A v ) = A λ v = λ A v = λ 2 v \because Av=\lambda v\\ \therefore A^2v=AAv=A(Av)=A\lambda v=\lambda Av=\lambda^2v ∵Av=λv∴A2v=AAv=A(Av)=Aλv=λAv=λ2v -
方阵特征值分解 A = P − 1 D P A=P^{-1}DP A=P−1DP
A v i = λ i v i Av_i=\lambda_iv_i Avi=λivi,如果把各个特征向量 v i ( 列向量 ) v_i(列向量) vi(列向量)放在一起,则
A [ v 1 , v 2 , . . . v n ] = [ λ 1 v 1 , λ 2 v 2 , . . . λ n v n ] A[v_1,v_2,...v_n]=[\lambda_1v_1,\lambda_2v_2,...\lambda_nv_n] A[v1,v2,...vn]=[λ1v1,λ2v2,...λnvn],可见右边矩阵是各个特征向量(列向量)的线性组合,需要右乘权重矩阵,得到
[ λ 1 v 1 , λ 2 v 2 , . . . λ n v n ] = [ v 1 , v 2 , . . . v n ] [ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . 0 0 . . . λ n ] [\lambda_1v_1,\lambda_2v_2,...\lambda_nv_n]= [v_1,v_2,...v_n]\begin{bmatrix}\lambda_1&0&...&0\\0&\lambda_2&...&0\\...\\0&0&...&\lambda_n\end{bmatrix} [λ1v1,λ2v2,...λnvn]=[v1,v2,...vn] λ10...00λ20.........00λn
如果A的各个特征向量组成的矩阵可逆,则有
A = A [ v 1 , v 2 , . . . v n ] [ v 1 , v 2 , . . . v n ] − 1 = [ λ 1 v 1 , λ 2 v 2 , . . . λ n v n ] [ v 1 , v 2 , . . . v n ] − 1 = A [ v 1 , v 2 , . . . v n ] [ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . 0 0 . . . λ n ] [ v 1 , v 2 , . . . v n ] − 1 \begin{aligned} A&=A[v_1,v_2,...v_n][v_1,v_2,...v_n]^{-1}\\ &=[\lambda_1v_1,\lambda_2v_2,...\lambda_nv_n][v_1,v_2,...v_n]^{-1} \\ &=A[v_1,v_2,...v_n]\begin{bmatrix}\lambda_1&0&...&0\\0&\lambda_2&...&0\\...\\0&0&...&\lambda_n\end{bmatrix}[v_1,v_2,...v_n]^{-1} \end{aligned} A=A[v1,v2,...vn][v1,v2,...vn]−1=[λ1v1,λ2v2,...λnvn][v1,v2,...vn]−1=A[v1,v2,...vn] λ10...00λ20.........00λn [v1,v2,...vn]−1 -
A A A是 n × n n\times n n×n矩阵,为了更好的理解 A x A\bold x Ax对 x \bold x x的作用可以这么看:假设 v 1 , v 2 , . . . , v n \bold {v_1},\bold {v_2},...,\bold {v_n} v1,v2,...,vn是 A A A的特征向量,且他们线性无关,则 x = c 1 v 1 + c 2 v 2 + . . . + c n v n \bold x=c_1\bold {v_1}+c_2\bold {v_2}+...+c_n\bold {v_n} x=c1v1+c2v2+...+cnvn,则
A x = c 1 A v 1 + c 2 A v 2 + . . . + c n v n = c 1 λ 1 v 1 + c 2 λ 2 v 2 + . . . + c n λ n v n A\bold x=c_1A\bold {v_1}+c_2A\bold {v_2}+...+c_n\bold {v_n}\\ =c_1\lambda_1\bold {v_1}+c_2\lambda_2\bold {v_2}+...+c_n\lambda_n\bold {v_n} Ax=c1Av1+c2Av2+...+cnvn=c1λ1v1+c2λ2v2+...+cnλnvn
所以 A x A\bold x Ax相当于 A A A对 x \bold x x在 A A A的各个特征向量的方向上进行尺度变换。这个也可以解释,为什么 lim n → ∞ A n x \lim\limits_{n\to \infin} A^nx n→∞limAnx是收敛还是发散取决于 A A A最大的特征值。 -
复数特征值,代表对特征向量进行旋转,这个旋转不是在 R n \Bbb R^n Rn空间上的旋转,而是在复数空间的旋转。这个实际上很难理解,原因在于本来特征 v \bold v v就是一个高维的了,结果其每个分量还是复数。
Q:
- 是不是每个方阵都会有n的线性无关的特征向量?
不是,约当块就不是。
证明:构造一个约当块A
A i , j = { a ( i = j ) 1 ( j = i + 1 ) 0 ( o t h e r ) A_{i,j}=\begin{cases} a(i=j)\\ 1(j=i+1)\\ 0(other) \end{cases} Ai,j=⎩ ⎨ ⎧a(i=j)1(j=i+1)0(other)
例如 A = [ a 0 0 0 0 0 1 a 0 0 0 0 0 1 a 0 0 0 0 0 1 a 0 0 0 0 0 1 a 0 0 0 0 0 1 a ] A=\begin{bmatrix} a&0&0&0&0&0\\ 1&a&0&0&0&0\\ 0&1&a&0&0&0\\ 0&0&1&a&0&0\\ 0&0&0&1&a&0\\ 0&0&0&0&1&a\\ \end{bmatrix} A= a100000a100000a100000a100000a100000a
证明过程后续补充。
Q: 初等行/列变换对特征值影响?
一般来说特征值和特征向量都会变,但是会变大还是变小?方向有什么变化?
正交性
-
如果 A A A是对称矩阵, v i , v j v_i, v_j vi,vj是不同特征空间的两个特征向量,则 v i , v j v_i, v_j vi,vj是正交的。
证明容易:
λ i v i ⋅ v j = ( λ v i ) T v j = ( A v i ) T v j = ( v i T A T ) v j = v i T ( A v j ) = v i T λ j v j = λ j v i T v j = λ j v i ⋅ v j ∴ ( λ i − λ j ) v i ⋅ v j = 0 ,而 λ i ≠ λ j ,故 v i ⋅ v j = 0 \begin{aligned} \lambda_iv_i\cdot v_j&=(\lambda v_i)^T v_j&=(Av_i)^Tv_j \\ &=(v_i^TA^T)v_j&=v_i^T(Av_j) \\ &=v_i^T\lambda_j v_j \\ &=\lambda_jv_i^Tv_j&=\lambda_jv_i\cdot v_j \end{aligned} \\ \therefore (\lambda_i-\lambda_j)v_i\cdot v_j=0,而\lambda_i\ne\lambda_j,故v_i\cdot v_j=0 λivi⋅vj=(λvi)Tvj=(viTAT)vj=viTλjvj=λjviTvj=(Avi)Tvj=viT(Avj)=λjvi⋅vj∴(λi−λj)vi⋅vj=0,而λi=λj,故vi⋅vj=0 -
如果 P = [ u 1 , u 2 , . . . u n ] P=[\bold{u_1},\bold{u_2},...\bold{u_n}] P=[u1,u2,...un], u i \bold{u_i} ui是 R n \Bbb R^n Rn上的单位正交基,则有 P − 1 = P T P^{-1}=P^T P−1=PT.
P T P = [ u 1 T ; u 2 T ; . . . u n T ] ⋅ [ u 1 , u 2 , . . . u n ] = [ u 1 T u 1 u 1 T u 2 . . . u 1 T u n u 2 T u 1 u 2 T u 2 . . . u 2 T u n . . . u n T u 1 u n T u 2 . . . u n T u n ] \begin{aligned} P^TP&=[\bold{u_1}^T;\bold{u_2}^T;...\bold{u_n}^T]\cdot [\bold{u_1},\bold{u_2},...\bold{u_n}] \\ &=\begin{bmatrix} \bold{u_1}^T\bold{u_1}& \bold{u_1}^T\bold{u_2}&...&\bold{u_1}^T\bold{u_n}\\ \bold{u_2}^T\bold{u_1}& \bold{u_2}^T\bold{u_2}&...&\bold{u_2}^T\bold{u_n}\\ ...\\ \bold{u_n}^T\bold{u_1}& \bold{u_n}^T\bold{u_2}&...&\bold{u_n}^T\bold{u_n} \end{bmatrix} \end{aligned} PTP=[u1T;u2T;...unT]⋅[u1,u2,...un]= u1Tu1u2Tu1...unTu1u1Tu2u2Tu2unTu2.........u1Tunu2TununTun
因为P各列是单位正交的,所以,只有对角线上的数值为1(单位),非对角线乘积为0(正交),故 P T P P^TP PTP为单位阵, P − 1 = P T P^{-1}=P^T P−1=PT -
对于矩阵 A A A和向量 v v v, A v Av Av可以理解为使用矩阵 A A A对向量 v v v进行变换(伸缩和旋转)。如果对向量v进行多次变化,会是什么样呢?
思路一:
A . . . ( A ( A v ) ) = A n v = A n ( v → + v ⊥ ) A...(A(Av))=A^nv \\ =A^n(v_{\to}+v_{\perp}) A...(A(Av))=Anv=An(v→+v⊥)
等价于使用 A n A^n An对向量 v v v进行变换。前面已经证明,如果 λ \lambda λ是 A A A的特征值,则 λ n \lambda^n λn是 A n A^n An的特征值。为了利用特征值和特征向量的特点,我们对 v v v进行分解,沿着 A A A的特征值最大的特征向量和垂直于这个方向。那么因为n次方之后,对特征值的伸缩非常大,所以使用 A n A^n An对 v v v进行变换的话,对特征向量方向的分量影响非常显著。对于除最大值之外的特征向量的影响不明显。
思路二:如果每次乘完之后都把特征向量的分量给去掉,结果是怎么样呢? -
向量正交 u , v \bold u,\bold v u,v等价于内积为0
证明1: 从代数上来说 u ⋅ v = u T v = ∣ ∣ u ∣ ∣ ∣ ∣ v ∣ ∣ c o s θ \bold u\cdot\bold v= \bold u^T \bold v=||\bold u||\ ||\bold v||\ cos\theta u⋅v=uTv=∣∣u∣∣ ∣∣v∣∣ cosθ,其中 θ \theta θ是 u , v \bold u,\bold v u,v的夹角,若 u , v \bold u,\bold v u,v垂直,则 c o s θ = 0 cos\theta=0 cosθ=0,故 u T v = 0 \bold u^T \bold v=0 uTv=0
证明2: 从几何上来说, u , v \bold u,\bold v u,v若垂直,则根据中垂线定理 v \bold v v到 u \bold u u和 − u -\bold u −u的距离相等,即
∣ ∣ v − u ∣ ∣ = ∣ ∣ v − ( − u ) ∣ ∣ ⟹ ∣ ∣ v − u ∣ ∣ 2 = ∣ ∣ v + u ∣ ∣ 2 ⟹ ∣ ∣ u ∣ ∣ 2 + ∣ ∣ v ∣ ∣ 2 − 2 u v = ∣ ∣ u ∣ ∣ 2 + ∣ ∣ v ∣ ∣ 2 + 2 u v ⟹ 4 u v = 0 ⟹ u v = 0 \begin{aligned}||\bold v-\bold u||&=||\bold v-(-\bold u)|| \implies \\ ||\bold v-\bold u||^2&=||\bold v+\bold u||^2 \implies\\ ||\bold u||^2+||\bold v||^2-2\bold u\bold v &= ||\bold u||^2+||\bold v||^2+2\bold u\bold v \implies\\ 4\bold u\bold v &=0\implies\\ \bold u\bold v &=0 \end{aligned} ∣∣v−u∣∣∣∣v−u∣∣2∣∣u∣∣2+∣∣v∣∣2−2uv4uvuv=∣∣v−(−u)∣∣⟹=∣∣v+u∣∣2⟹=∣∣u∣∣2+∣∣v∣∣2+2uv⟹=0⟹=0 -
正交投影和相关性质
正交补定义: u 1 , u 2 , . . . , u n \bold {u_1},\bold {u_2},...,\bold {u_n} u1,u2,...,un空间 R n \Bbb R^n Rn的一组正交基,对于 W = S p a n { u 1 , u 2 , . . . , u i } W=Span\{\bold {u_1},\bold {u_2},...,\bold {u_i}\} W=Span{u1,u2,...,ui}, W W W是 R n \Bbb R^n Rn的有一个子空间,如果向量 z z z和 W W W中的任意一个向量都垂直,与子空间 W W W正交的向量的全体组成的集合成为 W W W的正交补,记作 W ⊥ W^{\bot} W⊥.
定理:若 A 是 m × n A是m\times n A是m×n矩阵,那么 A A A的行向量空间的正交补是 A A A的零空间,且 A A A的列向量空间的正交补是 A T A^T AT的零空间:
( R o w A ) ⊥ = N u l A , ( C o l A ) ⊥ = N u l A T (Row\ A)^{\bot}=Nul\ A, (Col\ A)^{\bot}=Nul\ A^T (Row A)⊥=Nul A,(Col A)⊥=Nul AT
若 x 是 N u l A x是Nul\ A x是Nul A的向量,那么 x x x与 A A A的每一行都正交(将行作为 R n \Bbb R^n Rn空间中的向量),由于 A A A的行生成 A A A的行空间,向量 x x x与 R o w A Row\ A Row A正交。反之,如果 x x x与 R o w A Row A RowA正交,则 x x x与 A A A的每一行正交,因此 A x = 0 Ax=0 Ax=0.如果将 A A A换成 A T A^T AT,利用 R o w A T = C o l A Row\ A^T=Col A Row AT=ColA,可以证明结论。
若向量 v ∈ W , v ∈ W ⊥ v\in W, v \in W^{\bot} v∈W,v∈W⊥,则 v = 0 v=0 v=0。
证明:因为 W ⊥ W^{\bot} W⊥中任意一个向量都和 W W W中任意一个向量正交,故 v ⋅ v = 0 ⟹ v = 0 v\cdot v=0\implies v=0 v⋅v=0⟹v=0
正交投影定义:对 R n \Bbb R^n Rn中给出的非零向量 u \bold u u,考虑 R n \Bbb R^n Rn中的一个向量 y \bold y y分解为两个向量和的问题,一个向量是向量 u \bold u u的数量乘积,另一个向量与 u \bold u u垂直。我们可以写成 y = y ^ + z \bold y=\bold {\hat y}+\bold z y=y^+z,其中 y ^ = α u \bold {\hat y}=\alpha \bold u y^=αu, α \alpha α是一个数, z \bold z z是一个垂直于 u \bold u u的向量。
下面给出 α , y ^ \alpha, \bold{\hat y} α,y^的计算方法(实际上这个从勾股定理也很容易得到)。
0 = y ^ z = α u ⋅ ( y − α u ) = α u ⋅ y − α 2 u ⋅ u ⟹ ∴ α = u ⋅ y u ⋅ u , y ^ = α u = u ⋅ y u ⋅ u u \begin{aligned} 0=\bold{\hat y}\bold z&=\alpha\bold u\cdot(\bold y-\alpha\bold u)\\ &=\alpha\bold u\cdot\bold y-\alpha^2\bold u\cdot\bold u\implies \\ \end{aligned}\\ \therefore\alpha=\frac {\bold u\cdot\bold y}{\bold u\cdot\bold u},\ \ \bold{\hat y}=\alpha\bold u=\frac {\bold u\cdot\bold y}{\bold u\cdot\bold u}\bold u 0=y^z=αu⋅(y−αu)=αu⋅y−α2u⋅u⟹∴α=u⋅uu⋅y, y^=αu=u⋅uu⋅yu -
前面有对称方阵的各个特征向量正交的定理。对此做一个推广( U U U不限制是方阵,所以,U的各列不一定能生成 R n \Bbb R^n Rn,有可能只是一个子空间):一个 m × n m\times n m×n的矩阵 U U U, U U U的各列是单位正交基的充要条件是 U T U = I U^TU=I UTU=I,证明方法类似。
此处要注意因为 U U U是 m × n m\times n m×n的,并非方阵, U T U U^TU UTU和 U U T UU^T UUT并不等价,如果 U U U的各个列向量线性无关,则意味着 m ≥ n m\ge n m≥n。当 m > n m\gt n m>n,因为行向量的个数大于行向量的维数,其各行向量必定线性相关,也就不存在 U U T = I UU^T=I UUT=I
由此设U是具有单位正交列的 m × n m\times n m×n矩阵,可以得到一些推论
a ) ∣ ∣ U x ∣ ∣ = ∣ ∣ x ∣ ∣ ; b ) U x ⋅ U y = x ⋅ y ; c ) U x ⋅ U y = 0 ⟺ x ⋅ y = 0 ; d ) ∣ ∣ U x − U y ∣ ∣ = ∣ ∣ x − y ∣ ∣ ; ( 保距映射 ) \begin{aligned} &a) ||Ux||=||x||;\\ &b)Ux\cdot Uy=x\cdot y;\\ &c)Ux\cdot Uy=0\iff x\cdot y=0;\\ &d)||Ux-Uy||=||x-y||;(保距映射) \end{aligned} a)∣∣Ux∣∣=∣∣x∣∣;b)Ux⋅Uy=x⋅y;c)Ux⋅Uy=0⟺x⋅y=0;d)∣∣Ux−Uy∣∣=∣∣x−y∣∣;(保距映射)
证明a):
∣ ∣ U x ∣ ∣ 2 = ( U x ) ⋅ ( U x ) = ( U x ) T ( U x ) = x T U T U x = x T x = ∣ ∣ x ∣ ∣ 2 ∴ ∣ ∣ U x ∣ ∣ = ∣ ∣ x ∣ ∣ \begin{aligned} ||Ux||^2&=(Ux)\cdot(Ux)\\ &=(Ux)^T(Ux)\\ &=x^TU^TUx\\ &=x^Tx=||x||^2 \end{aligned}\\ \therefore ||Ux||=||x|| ∣∣Ux∣∣2=(Ux)⋅(Ux)=(Ux)T(Ux)=xTUTUx=xTx=∣∣x∣∣2∴∣∣Ux∣∣=∣∣x∣∣
这个定理有点意思。
U
x
=
[
u
1
u
2
.
.
.
u
n
]
⋅
[
x
1
,
x
2
,
.
.
.
x
n
]
=
∑
(
x
i
u
i
)
Ux=[\bold{u_1} \bold{u_2} ... \bold{u_n}]\cdot[x_1,x_2,...x_n]=\sum (x_i\bold u_i)
Ux=[u1u2...un]⋅[x1,x2,...xn]=∑(xiui),表示以x各个分量为权重的U的各列的线性组合(因为是右乘x),其中的每个
∣
∣
u
i
∣
∣
||\bold{u_i}||
∣∣ui∣∣都是1,但是不同
u
i
u_i
ui同列的分量可能差别很大,但是最终的模还是
x
x
x的模,就很奇妙。诶,举了个具体数值的例子
U
=
[
1
/
3
0
2
/
3
−
2
/
2
2
/
3
2
/
2
]
U=\begin{bmatrix}1/3&0\\ 2/3&-\sqrt 2/2\\ 2/3&\sqrt 2/2\end{bmatrix}
U=
1/32/32/30−2/22/2
,瞬间就更明白了。
U
x
=
[
u
1
u
2
.
.
.
u
n
]
⋅
[
x
1
,
x
2
,
.
.
.
x
n
]
=
x
1
u
1
+
x
2
u
2
+
.
.
.
+
x
n
u
n
∴
∣
∣
U
x
∣
∣
2
=
∑
i
=
1
n
x
i
2
u
i
T
u
i
+
∑
i
=
0
n
∑
j
=
i
+
1
n
2
x
i
x
j
u
i
T
u
j
\begin{aligned} Ux&=[\bold {u_1} \bold {u_2} ... \bold {u_n}]\cdot[x_1,x_2,...x_n]\\ &=x_1\bold u_1+x_2\bold u_2+...+x_n\bold u_n\\ \end{aligned}\\ \therefore ||Ux||^2=\sum_{i=1}^n x_i^2\bold u_i^T\bold u_i+\sum_{i=0}^n \sum_{j=i+1}^n 2x_ix_j\bold u_i^T\bold u_j
Ux=[u1u2...un]⋅[x1,x2,...xn]=x1u1+x2u2+...+xnun∴∣∣Ux∣∣2=i=1∑nxi2uiTui+i=0∑nj=i+1∑n2xixjuiTuj
因为
u
i
\bold u_i
ui是单位正交基,所以
u
i
T
u
j
=
{
0
(
i
≠
j
)
1
(
i
=
j
)
\bold {u_i}^T\bold{u_j}=\begin{cases} 0(i\ne j)\\ 1(i=j) \end{cases}
uiTuj={0(i=j)1(i=j)
∴
∣
∣
U
x
∣
∣
2
=
∑
i
=
1
n
x
i
2
=
∣
∣
x
∣
∣
2
\therefore ||Ux||^2=\sum_{i=1}^n x_i^2=||x||^2
∴∣∣Ux∣∣2=i=1∑nxi2=∣∣x∣∣2
第一项的值为
∣
∣
x
∣
∣
2
||\bold{x}||^2
∣∣x∣∣2依赖
u
i
\bold{u_i}
ui是单位向量;第二项为0依赖
u
i
,
u
j
\bold{u_i}, \bold{u_j}
ui,uj两两正交
以上也是另外一种证明。
为什么是各列是单位正交基而不是各行?因为是右乘向量
x
\bold{x}
x;如果是左乘
x
\bold{x}
x,则需要行向量是单位正交基。
提供一种几何上的说明:向量
x
=
[
x
1
x
2
]
T
\bold{x}=[x_1\ x_2]^T
x=[x1 x2]T可以看做是坐标系标准正交基的线性组合,它在
i
>
n
i\gt n
i>n的维度上分量是0,即
x
m
=
I
m
×
n
x
\bold{x_m}=I_{m\times n}\bold{x}
xm=Im×nx,而
U
x
U\bold{x}
Ux则是选择了另外一组单位正交基来表示
x
\bold{x}
x,这种情况下,如果还是在坐标系标准基的角度来看,仅是将
x
\bold{x}
x做了旋转,因为两组坐标系都是正交,因此各个分量上旋转的角度是相等的,因此其模长没有发生变化。
证明b):
U
x
⋅
U
y
=
(
U
x
)
T
(
U
y
)
=
x
T
U
T
U
y
=
x
⋅
y
\begin{aligned} Ux\cdot Uy=(Ux)^T(Uy)=x^TU^TUy=x\cdot y \end{aligned}
Ux⋅Uy=(Ux)T(Uy)=xTUTUy=x⋅y
- 若U是方阵,U的各列单位正交,则U的各行也单位正交。
证明:因为 U U U的各列单位正交, U T U = U − 1 U = I = U U − 1 = U U T U^TU=U^{-1}U=I=UU^{-1}=UU^T UTU=U−1U=I=UU−1=UUT.
通常情况使用向量表示矩阵,一般会分解成列向量的形式,但是这里,以下的向量都是行向量。
设 U = [ u 1 u 2 . . . u n ] U=\begin{bmatrix}u_1\\u_2\\...\\u_n\end{bmatrix} U= u1u2...un ,
U U T = [ u 1 u 2 . . . u n ] ⋅ [ u 1 u 2 . . . u n ] = [ u 1 u 1 T u 1 u 2 T . . . u 1 u n T u 2 u 1 T u 2 u 2 T . . . u 2 u n T . . . u n u 1 T u n u 2 T . . . u n u n T ] = [ 1 0 . . . 0 0 1 . . . 0 . . . 0 0 . . . 1 ] \begin{aligned} UU^T&=\begin{bmatrix}u_1\\u_2\\...\\u_n\end{bmatrix}\cdot \begin{bmatrix}u_1&u_2&...&u_n\end{bmatrix}\\ &=\begin{bmatrix}u_1u_1^T&u_1u_2^T&...&u_1u_n^T\\u_2u_1^T&u_2u_2^T&...&u_2u_n^T\\...\\u_nu_1^T&u_nu_2^T&...&u_nu_n^T\end{bmatrix}\\ &=\begin{bmatrix}1&0&...&0\\0&1&...&0\\...\\0&0&...&1\end{bmatrix}\end{aligned} UUT= u1u2...un ⋅[u1u2...un]= u1u1Tu2u1T...unu1Tu1u2Tu2u2Tunu2T.........u1unTu2unTununT = 10...0010.........001
对于 u i T u j = { 0 ( i ≠ j ) 1 ( i = j ) \bold u_i^Tu_j=\begin{cases} 0(i\ne j)\\ 1(i=j) \end{cases} uiTuj={0(i=j)1(i=j),所以 U U U的各行也是单位正交的。
Q:
正交投影和子空间
-
对于给定向量 y ∈ R n y\in \Bbb R^n y∈Rn和 R n \Bbb R^n Rn子空间 W W W,存在 y ^ ∈ W \hat y\in W y^∈W,1)W中有唯一向量 y ^ \hat y y^,使得 y − y ^ y-\hat y y−y^和W正交,即 y − y ^ ∈ W ⊥ y-\hat y \in W^{\bot} y−y^∈W⊥,可通过正交分解定理求得; 2) y ^ \hat y y^是W中最接近 y y y的向量(最佳逼近定理)。
-
QR分解(全称是啥找了半天也没找到):对于各列线性无关的矩阵 A m × n A_{m\times n} Am×n,那么A可以分解成 A = Q R A=QR A=QR,其中Q是 m × n m\times n m×n,其各列构成 C o l A Col A ColA的一组单位正交基,R是一个上三角矩阵,且对角线上元素为正。通过格拉姆-施密特方法或者正交分解定理。描述一下格拉姆-施密特方法可以得到。
备注:也有另外有一种QR分解 A m × n = Q m × m R m × n A_{m\times n}=Q_{m\times m}R_{m\times n} Am×n=Qm×mRm×n
设 A = [ a 1 , a 2 , . . . a n ] A=[a_1,a_2,...a_n] A=[a1,a2,...an], a i a_i ai线性无关。设 Q = [ q 1 , q 2 , . . . , q n ] Q=[q_1,q_2,...,q_n] Q=[q1,q2,...,qn]
q 1 = a 1 q 2 = a 2 − a 2 T a 1 / ∣ ∣ a 1 ∣ ∣ 2 a 1 q 3 = a 3 − a 3 T a 1 / ∣ ∣ a 1 ∣ ∣ 2 a 1 − a 3 T a 2 / ∣ ∣ a 2 ∣ ∣ 2 a 2 . . . q n = a n − a n T a 1 / ∣ ∣ a 1 ∣ ∣ 2 a 1 − . . . − a n T a n − 1 / ∣ ∣ a n − 1 ∣ ∣ 2 a n − 1 \begin{aligned} q_1&={a_1}\\ q_2&=a_2-a_2^Ta_1/||a_1||^2a_1\\ q_3&=a_3-a_3^Ta_1/||a_1||^2a_1-a_3^Ta_2/||a_2||^2a_2\\ ...\\ q_n&=a_n-a_n^Ta_1/||a_1||^2a_1-...-a_n^Ta_{n-1}/||a_{n-1}||^2a_{n-1} \end{aligned} q1q2q3...qn=a1=a2−a2Ta1/∣∣a1∣∣2a1=a3−a3Ta1/∣∣a1∣∣2a1−a3Ta2/∣∣a2∣∣2a2=an−anTa1/∣∣a1∣∣2a1−...−anTan−1/∣∣an−1∣∣2an−1
根据定义 A = Q R A=QR A=QR实际上A是Q各列的线性组合,其中各列 a i a_i ai只和Q的各列 q j ( 0 ≤ j < i ) q_j(0\le j< i) qj(0≤j<i),故而R是一个上三角矩阵,如果对角线上某个元素为负值,可以调整Q的对应的列的方向,使其为正。导致R是上三角矩阵的原因是求A的列空间的正交基采用的是格拉姆-施密特方法,格拉姆-施密特方法直接导致 A A A的第i列 a j \bold{a_j} aj只和生成的正交基中的前 j j j个相关,存在不为0系数。
最小二乘法
最小二乘法是在样本多余维度情况下,方程
A
x
=
b
A\bold{x}=\bold{b}
Ax=b没有解,但是可以求取一个误差最小的近似解,使得
∣
∣
A
x
−
b
∣
∣
||A\bold{x}-\bold{b}||
∣∣Ax−b∣∣最小。一般
A
A
A是
m
×
n
(
m
>
n
)
m\times n (m\gt n)
m×n(m>n)矩阵.
问题就是这么个问题,但是对于这个问题的解法,从不同的思路出发,就有不同的解法。
方法一:通用解法,将
x
=
[
x
1
x
2
.
.
.
x
n
]
\bold{x}=[x_1\ x_2...x_n]
x=[x1 x2...xn]带入
∣
∣
A
x
−
b
∣
∣
2
||A\bold{x}-\bold{b}||^2
∣∣Ax−b∣∣2,使用拉格朗日乘数法,求各变量一阶偏导,然后联立求解方程。适合手算小规模矩阵情况,即使对
x
\bold{x}
x附加额外约束条件也能求解。
方法二:因为方程往往无解,所以
b
\bold{b}
b不在
A
x
A\bold{x}
Ax这个子空间中,那
∣
∣
A
x
−
b
∣
∣
||A\bold{x}-\bold{b}||
∣∣Ax−b∣∣最小,那
b
\bold{b}
b到在
A
x
A\bold{x}
Ax子空间投影上的距离是最短的。此时,假设
b
\bold{b}
b在
A
x
A\bold{x}
Ax的投影是
A
x
^
A\hat {\bold{x}}
Ax^,则有
A
x
^
A\hat {\bold{x}}
Ax^和
b
−
A
x
^
\bold{b}-A\hat {\bold{x}}
b−Ax^正交,于是有
A
x
^
⋅
(
b
−
A
x
^
)
=
(
A
x
^
)
T
(
b
−
A
x
^
)
=
x
^
T
A
T
b
−
x
^
T
A
T
A
x
^
=
0
A\hat {\bold{x}}\cdot(\bold{b}-A\hat {\bold{x}})=(A\hat {\bold{x}})^T(\bold{b}-A\hat {\bold{x}})=\hat {\bold{x}}^TA^T\bold{b}-\hat {\bold{x}}^TA^TA\hat {\bold{x}}=0
Ax^⋅(b−Ax^)=(Ax^)T(b−Ax^)=x^TATb−x^TATAx^=0,然而这样推导却丢失了很多约束条件,最终无法取得正确结果。其原因就是对正交性的约束,
b
−
A
x
^
\bold{b}-A\hat {\bold{x}}
b−Ax^不仅正交于
A
x
^
A\hat {\bold{x}}
Ax^,还需要正交于整个
A
A
A的列空间,也就是
A
A
A的各个列向量,于是修改约束条件得到:
A
T
(
b
−
A
x
^
)
=
A
T
b
−
A
T
A
x
^
=
0
⟹
A
T
A
x
^
=
A
T
b
A^T(\bold{b}-A\hat {\bold{x}})=A^T\bold{b}-A^TA\hat {\bold{x}}=0\implies A^TA\hat {\bold{x}}=A^T\bold{b}
AT(b−Ax^)=ATb−ATAx^=0⟹ATAx^=ATb,此时可以求得
A
x
=
b
A\bold{x}=\bold{b}
Ax=b的最小二乘解。
方法三:按照上述思路,还有其他解法,类似的还是先求
A
x
^
A\hat{\bold{x}}
Ax^,但是可以使用格拉姆-施密特方法,先求
A
A
A的各列组成的一组单位正交基
U
=
[
u
1
u
2
.
.
.
u
r
]
U=[\bold{u_1}\ \bold{u_2}...\bold{u_r}]
U=[u1 u2...ur],则
b
=
b
^
+
∑
r
α
i
u
i
\bold{b}=\hat{\bold{b}}+\sum\limits_r\alpha_i\bold{u_i}
b=b^+r∑αiui,则
A
x
^
=
b
−
b
^
A\hat{\bold{x}}=\bold{b}-\hat{\bold{b}}
Ax^=b−b^是最小二乘解。
此时
A
x
^
=
∑
r
(
b
⋅
u
i
)
u
i
=
U
U
T
b
A\hat{\bold{x}}=\sum_r(\bold{b}\cdot\bold{u_i})\bold{u_i}=UU^T\bold{b}
Ax^=r∑(b⋅ui)ui=UUTb