##基本概念
1.方程组解的问题
(1)对于n*n的方程组来说,在仅有一个解的情况下,在高斯消元得到的一定是一个“严格三角形方程组”。
(2)对于m*n的方程组来说,也就是m个方程式,n个变量,如果经过高斯消元之后,舍弃掉所有的全0项,最后留下的行数就是矩阵的秩,rank(matrix)。
如果rank(matrix)<n,那么说明这个矩阵中有n-rank(matrix)个自由变元,解集空间也就是无限大。我们总是将每一行第一次出现的非0位置作为限制变元(自己瞎取的名字- -),它们随着其他的n-rank(matrix)个变元的变化而变化。
如果在消元过程中出现了[0 0 … 0 | 1]项,那就说明是无解的。
如果rank(matrix)=n,那么只存在唯一解。
2.齐次方程组
如果线性方程组的右端项全为0,则称其是齐次的,齐次方程组是相容的(线性方程组相容就说明有解),因为它至少存在一个所有未知变量都是0的解集。否则就存在自由变元,有无数的解。
3.行向量和列向量
(1)所有n1的实矩阵构成的集合称为**n维欧几里得空间(Euclidean n-space)*,通常记作 $\mathbf R^{n}$
由于列向量被大量使用,列向量的标准记号采用黑斜体小写字母。
$$
\boldsymbol x = \begin{bmatrix}
x_{1} \\
x_{2} \\
\vdots \\
x_{n}
\end{bmatrix}
$$
(2)对于行向量,没有通用的标准记号,通常采用黑斜体小写字母表示行向量及列向量,但为了区分,行向量字母上方加一个水平箭头。
$$
\overrightarrow {\boldsymbol x} = (x_{1} , x_{2} , … , x{n}) \\
\boldsymbol x = \begin{bmatrix}
x_{1} \\
x_{2} \\
\vdots \\
x_{n}
\end{bmatrix}
$$
那么一个n∗r的矩阵B,用行向量或者列向量可以表示如下:
$$
B = (\mathbf b_{1} , \mathbf b_{2} , … , \mathbf b_{r}) =
\begin{bmatrix}
\overrightarrow{\mathbf b_{1}} \\
\overrightarrow{\mathbf b_{2}} \\
\vdots \\
\overrightarrow{\mathbf b_{n}}
\end{bmatrix}
$$
4.矩阵乘法
定义 若 $A = (a_{ij}) $为一个m×n的矩阵,且$B = (b_{ij})$为一个n×r的矩阵,则乘积$AB=C=(c_{ij})$为一个m×r的矩阵,它的元素定义为
$$
c_{ij} = \overrightarrow{\mathbf a_{i}} \mathbf b_{j} = \sum_{k=1}^{n}{a_{ik} b_{kj}}
$$
更为一般地,如果矩阵A的列数等于矩阵B的行数,则矩阵A可以和矩阵B相乘,乘积的第一列由矩阵B的第一列求得,即AB的第一列为$A \mathbf b_{1}$, AB的第二列为$A \mathbf b_{2}$,等等。因此乘积AB是:
$$
AB = (A \mathbf b_{1} , A \mathbf b_{2} , \dots , A \mathbf b_{n})
$$
这里可以理解的一点是A如果是个n×m的矩阵,对于$A \mathbf b_{1}$,A是由n个$\mathbf R^m$中的向量组成,我们也称$A \mathbf b_{1}$是这n个向量的线性组合。
那很明显可以看出$\mathbf b_{1}$作为一个线性方程组的解,A就是这n个线性方程组上的参数,最后得到的是线性方程组右侧项的$\mathbf R^m$向量。
5.矩阵的转置
定义 一个m×n的矩阵A的转置(transpose)为n×m的矩阵B,那么$b_{ji} = a_{ij}$,其中j=1,2,…,n和i=1,2,…,m. A的转置矩阵B记做$A^T$.
定义 一个n×n的矩阵A,满足$A = A^T$,则称为A是对称的(symmetric).
6.代数法则
定理 在定义了需要的运算后,下述法则对任何标量α和β及矩阵A,B和C都是成立的。
- A+B = B+A
- (A+B)+C = A+(B+C)
- (AB)C = A(BC)
- A(B+C) = AB+AC
- (A+B)C = AC+BC
- (αβ)A = α(βA)
- α(AB) = (αA)B = A(αB)
- (α+β)A = αA+βA
- α(A+B) = αA+αB
7.单位矩阵
正如数1为实数乘法中的单位元一样,也存在一个特殊矩阵 $\mathbf I$ 是矩阵乘法中的单位元,即
$$
\mathbf I \mathbf A = \mathbf A \mathbf I = \mathbf A
$$
对于任意的n×n的矩阵都成立。容易验证,我们定义一个主对角元素均为1、其他元素均为0的n×n矩阵,则对任意的n×n矩阵 $\mathbf A$ ,$\mathbf I$ 满足上述公式。
定义 n×n的单位矩阵(identity matrix)为矩阵 $\mathbf I = (δ_{ij})$ , 其中
$$
δ_{ij} =
\begin{cases}
1 \quad 当i=j \\
0 \quad 当i≠j
\end{cases}
$$
n×n单位矩阵中的列向量为用于定义n维欧几里得坐标空间的标准向量。$\mathbf I$ 的第j列向量的标准记号为 $\mathbf e_j$,而不是普通的 $\mathbf i_{j}$ ,因此,n×n单位矩阵可写为
$$
\mathbf I = (\mathbf e_{1} , \mathbf e_{2} , \dots , \mathbf e_{n})
$$
8.矩阵在网络和图中的运用 (线性代数P51)
定理 设A为某图的n×n邻接矩阵,且$a^{(k)}_{ij}$表示$A^k$的(i,j)元素$a^{(k)}_{ij}$等于顶点Vi和Vj间长度为k的路的条数。
例如如下的包含5个点的邻接矩阵:
$$
A =
\begin{bmatrix}
0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 \\
0 & 1 & 1 & 1 & 0
\end{bmatrix}
$$
当前状态是表示的初始图,当然我们也能从中获取到等价地信息就是2 -> 1距离为1的路径有一条,因为这是个无向图,所以1 -> 2距离为1的路径也是一条
当我们想知道两个点之间的距离为3的路径有多少条时,可以这么做:
$$
A^3 =
\begin{bmatrix}
0 & 2 & 1 & 1 & 0 \\
2 & 0 & 1 & 1 & 4 \\
1 & 1 & 2 & 3 & 4 \\
1 & 1 & 3 & 2 & 4 \\
0 & 4 & 4 & 4 & 2
\end{bmatrix}
$$
9.初等矩阵
定义 如果从单位矩阵 $\mathbf I$ 开始,只进行一次初等运算,得到的矩阵称为初等矩阵。
初等矩阵一共存在三种类型,对应了三种行(列)变换。
(1) 交换两行
$$
E_1 =
\begin{bmatrix}
0 & 1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 1
\end{bmatrix}
\quad
A =
\begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{bmatrix}
\\
E_1A =
\begin{bmatrix}
a_{21} & a_{22} & a_{23} \\
a_{11} & a_{12} & a_{13} \\
a_{31} & a_{32} & a_{33}
\end{bmatrix}
\quad
AE_1 =
\begin{bmatrix}
a_{12} & a_{11} & a_{13} \\
a_{22} & a_{21} & a_{23} \\
a_{32} & a_{31} & a_{33}
\end{bmatrix}
$$
很容易发现:
初等矩阵乘在前面,会导致A同等于初等矩阵两行进行了交换。
初等矩阵乘在后面,会导致A同等于初等矩阵两列进行了交换。
后面两种类型的初等矩阵同样道理
(2)由单位矩阵的某一行乘以一个非零常数得到
$$
E_2 =
\begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 3
\end{bmatrix}
$$
(3)由单位矩阵某一行的倍数加到另一行得到
$$
E_3 =
\begin{bmatrix}
1 & 0 & 3 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{bmatrix}
$$
重要性质
若E为初等矩阵,则E一定是非奇异的,且$E^{-1}$为一与它同类型的初等矩阵,改变的方式反一下即可,很容易理解。
初等矩阵就相当于将行(列)变化用多重初等矩阵相乘的方式来表示。
若存在一个有限初等矩阵的序列$E_1 , E_2 , … , E_k$,使得
$$
B =E_k ∗ E_k-1 ∗ … ∗ E_1 ∗ A
$$
则称A与B是行等价的。换句话说就是B可以通过A经过有限次行运算得到。若A与B是行等价的,则B与A是行等价的。
若A与B行等价,B与C行等价,那么A与C行等价。
那么根据这个性质就很容易求出n阶非奇异矩阵的逆矩阵了。
对于矩阵A来说,经历一系列行变换得到了单位矩阵 $\mathbf I = E_k ∗ E_k-1 ∗ … ∗ E_1 ∗ A$ ,那么$E_k ∗ E_k-1 ∗ … ∗ E_1 = A^{-1}$ , 因为$A^{-1} \mathbf I = A^{-1}$ , 所以只要在另一个单位矩阵上做同样的行变化就能得到逆矩阵了。
利用基本的高斯消元的思想就很容易写出代码了。大致过程图片如图所示。
10.行列式 (线性代数P87)
对每一个n×n的矩阵A,均可对应一个标量det(A),它的值是否为0将告诉我们矩阵是否为非奇异的。A的行列式往往表示如下:
$$
det(A) =
\begin{vmatrix}
A
\end{vmatrix}
$$
情形一 1阶矩阵
$$
A = [a] \\
det(A) = a
$$情形二 2阶矩阵
$$
A =
\begin{bmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{bmatrix} \\
det(A) = a_{11}∗a_{22}-a_{12}∗a_{21}
$$情形三 3阶矩阵
$$
A =
\begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33} \\
\end{bmatrix} \\
det(A) = a_{11}∗(a_{22}∗a_{33}-a_{23}∗a_{32}) - \\
a_{12}∗(a_{21}∗a_{33}-a_{31}∗a_{23})+ \\
a_{13}∗(a_{21}∗a_{32}-a{31}∗a_{22})
$$
定义 令$A = (a_{ij})$ 为一n×n的矩阵,并用$M_{ij}$表示删除A中包含$a_{ij}$的行和列得到的(n-1)×(n-1)矩阵,矩阵$M_{ij}$的行列式称为$a_{ij}$的子式(minor)。定义$a_{ij}$的余子式(cofactor)$A_{ij}$ 为
$$
A_{ij} = (-1)^{i+j}det(M_{ij})
$$
定义 一个n×n矩阵A的行列式(determinant),记为det(A),是一个与矩阵A对应的标量,它可递归定义如下:
$$
det(A) =
\begin{cases}
a_{11} & 当n =1时 \\
a_{11}A_{11}+a_{12}A_{12}+…+a_{1n}A_{1n} & 当n>1时
\end{cases}
$$
当然这是为了比较方便默认选择第一行提取出来相加求和,你也可以选择其他行或者其他列的所有项与其余子式的乘积和。用式子表示为如下定理
定理 设A为一n×n矩阵,其中n≥2,则det(A)可表示为A的任何行或列的余子式展开,即
$$
det(A) = a_{i1}A_{i1}+a_{i2}A_{i2}+…+a_{in}A_{in} \\
\quad \quad \quad = a_{1j}A_{1j}+a_{2j}A_{2j}+…+a_{nj}A_{nj} \\
其中i=1,…,n,且j=1,…,n
$$
定理 设A为一n×n的矩阵,则$det(A^T)=det(A)$。
定理 设A为一n×n的三角形矩阵,则A的行列式等于A的对角元素的乘积。
定理 设A为一n×n的矩阵:
(i) 若A有一行或者一列的元素全为0,那么det(A)=0
(ii) 若A有两行或两列相等,则det(A)=0
定理 若A和B均为n×n的矩阵,那么det(AB) = det(A)*det(B)