线性代数知识笔记

来自MIT线性代数公开课与《线性代数及其应用》艺术

Vonng

MIT线性代数课程 +《线性代数及其应用》合并笔记。

线性方程组

1.1 方程组的几何解释

基本概念

包含未知数\(x_1,x_2,...,x_n\)的的一个线性方程是形如\(a_1x_1+a_2x_2+...+a_nx_n=b\)的方程。

线性方程组是由一个或几个包含相同变量\(x_1,x_2,...,x_n\)线性方程组成的

方程组所有可能的解的集合称为线性方程组的解集。两个方程组称为是等价的,若它们拥有相同的解集。

若一个方程组有不少于一个解,则称其是相容的;若它无解,则称其是不相容的

直观理解

有三种理解线性方程组的图像:

  • 第一种:Row Picture 行图像 :从这个角度来看,每一个方程都代表着一个平面,而多个方程相交得到一个确定的点(线,面,空集),就是方程组的解。(几何体交集)
  • 第二种:Column Picture 列图像:从这个角度看,每一列代表各方程在某一特定维度上的分量。通过对于这些向量的组合,得到方程右边解向量。(向量方程)
  • 第三种:Matrix Picture 矩阵图像,将方程组系数写作相关系数矩阵 (Coefficient Matrix)的形式。则一个方程组可以表示成一个等价的矩阵代数等式\(Ax=b\)(矩阵方程)

要注意系数矩阵(Coefficient Matrix)/增广炬阵(Augmented Matrix)的区别:系数矩阵A添上右边的常数列b,得到增广矩阵。 矩阵的大小(Size)说明它包含的行数和列数,一个\(m \times n\)矩阵是一个有m行n列的矩形阵列

\[ \left[\begin{matrix} a & b \\ c & d \\ \end{matrix}\right] \left[\begin{matrix} x \\ y \\ \end{matrix}\right]= x\left[\begin{matrix} a \\ c \\ \end{matrix}\right]+ y\left[\begin{matrix} b \\ d \\ \end{matrix}\right]= \left[\begin{matrix} ax+by \\ c x+dy \\ \end{matrix}\right] \]

1.2 行初等变化

行初等变换

  1. 倍加变换:把某一行换成它本身与另一行的倍数的和
  2. 对换变换:把两行对换
  3. 倍乘变换:把某一行的所有元素乘以同一个非零常数
性质
  • 方程组进行行初等变换解集不变。解集相同的线性方程组相互等价
  • 两个线性方程组的增广矩阵是行等价的,则它们具有相同的解集
定义
  • 非零行(列):指矩阵中至少包含一个非零元素的行(列);
  • 先导元素:非零行的先导元素是指该行中最左边非零元素

初等矩阵E

初等矩阵是由单位矩阵经过一次矩阵初等变换得到的矩阵。

初等变换有三种
  • 一个矩阵左乘E,则E对右边的矩阵做同样的行变换
  • 一个矩阵右乘E,则E对左侧矩阵进行同样的列变换
  • 每一个初等矩阵都可逆,逆矩阵为一个同类型的矩阵。
  • 矩阵乘法可结合(Associative Law),不可交换
定义
  • 置换矩阵(Permutation Matrix):交换单位矩阵的两行得到的矩阵
  • n阶矩阵共有\(n!\)个置换矩阵。这是一个n阶全排列的问题。
性质
  • 三类初等矩阵都是可逆矩阵,即非奇异矩阵。
  • 三类初等矩阵行列式的值是:
    • 倍加变换:1
    • 对换变换:-1
    • 倍乘变换:k
  • \(E\)左乘一个矩阵,对右边的矩阵做同样的行变换。
  • \(E\)右乘一个矩阵,对左侧矩阵进行同样的列变换。
  • 矩阵乘法可结合(AssociativeLaw),不可交换。

阶梯型矩阵

定义

一个矩阵称为阶梯形(或行阶梯形),若它有以下三个性质

  1. 每一非零行在每一零行之上
  2. 某一行的先导元素所在的列,位于前一行先导元素的右面
  3. 某一先导元素所在列下方元素都是零

如果一个阶梯型矩阵还满足以下性质:称它为简化阶梯型(或简化行阶梯形)

  1. 每一非零行的先导元素是1;
  2. 每一先导元素1是该元素所在列的唯一非零元素。

若一个矩阵具有阶梯形(简化阶梯形),它就称为阶梯形(简化阶梯形)矩阵

  • 主元位置:矩阵中的主元位置是\(A\)中对应于它的阶梯形中先导元素的位置。
  • 主元列:主元列是\(A\)的含有主元位置的列。
  • 与主元列相对应的变量\(x_n\) 称为基本变量,其他变量称为自由变量
定理1:简化阶梯形矩阵(Row Reduced Echelon Form)的唯一性
  • 每个矩阵行等价于唯一的简化阶梯形矩阵(RREF)

1.3 高斯消元法

高斯消元法 (Gaussian elimination),是线性代数规划中的一个算法,可用来为线性方程组求解。该算法的算法复杂度为\(O(n^3)\)

消元的目的是从一个普通矩阵\(A\)得到上三角矩阵\(U\)

  • 每次消元(Elimination),选取一列作为主元(pivot)列。运用行倍加变换将该列其他项削减为0。

  • 0不能作为主元,若0占据了主元位置,则需要进行对换变换,从下面的行中找出非0的元素。

  • 行交换可以暂时解决失效的问题,但是如果这一列全是零,就彻底失效了,该列消元中止。

  • 若干次后,得到一个上三角矩阵U(Upper Triangular Matrix)

  • 最终回代,将右侧常数向量做同样的变换即可。

相关内容:LU分解

在数值计算中通常采用部分主元法:消元时取该列绝对值最大的元素作为主元,以减少计算中的舍入误差。

Matlab中,通过命令[R jb] = rref(A)可以求得简化行阶梯形式(Reduced Row Echelon Form)。

1.4 方程组的解

方程组的解

定理2:方程组解的存在与唯一定理

线性方程组相容(有解)的充要条件是增广矩阵的最右列不是主元列 即增广矩阵没有形如:\(\left[ \begin{matrix} 0 & \cdots & 0 & b\end{matrix}\right] , b \ne 0\) 的行。

齐次方程组的解

线性方程组称为齐次的,若它可以写成\(Ax= \vec{0}\)的形式。 其中\(A\)\(m×n\)矩阵,而0是\(\mathbb{R}^m\) 中的零向量。 这样的方程组至少有一个解,即\(x=\vec{0}\) ,这个解称为齐次方程组的平凡解

但我们更关心的是它是否有非平凡解,即满足该方程的非零向量\(x\) 齐次方程组\(Ax= \vec{0}\)有非平凡解,当且仅当方程至少有一个自由变量

非齐次方程组的解

形如\(Ax=b\)的方程组称为非齐次方程组。

非齐次方程组解的形式 :\(x=p+v_h\) ,其中:

\(p\):非齐次方程组\(Ax=b\)的特解

\(v_h\):非齐次方程组\(Ax=0\)的解集(\(A\)的零空间)

\(p\)可通过对增广矩阵进行RREF取最右的一列计算得到。将\(A\)的各个列向量按\(p\)进行组合,得到右侧的\(b\)

\(v_h\)\(Ax=0\)的解集,若A满秩时,\(v_h\) 中只有零向量。

具体算法
  1. 对A进行RREF,化简其为简化阶梯形
  2. 为所有自由变量赋值0,使方程未知数个数等于方程个数
  3. 解出对应的主元。求出特解\(p\)
  4. 对于矩阵A,求解其零空间\(v_h\)
  5. 特解\(x_p\) 加上方程组\(Ax=b\)的通解\(x_h\),就得到方程\(Ax=b\)的解空间

\((Ax_p=b)∧(Ax_h=0)⇒\) \(A(x_p+x_h )= Ax_p+Ax_h=b+0=0\)

通解\(x_h\) 经由\(A\)变换后为零向量\(\vec{0}\),特解\(x_h\) 经由\(A\)变换得到向量\(\vec{b}\)。 换而言之,对零空间\(Nul(A)\) 中的所有向量加上偏移向量\(b\),就得到了解空间。

1.5 线性变换

线性变换

\(\mathbb{R}^n\)\(\mathbb{R}^m\) 的线性变换\(T\)是一个映射,将\(\mathbb{R}^n\)中每个向量\(x^m\)映射到\(\mathbb{R}^m\)中的一个向量\(T(x)\)

这是线性代数的另一个视角,物理学家更喜欢线性变换的视角。

矩阵变换

\(A\)\(m\times n\)矩阵,对\(\mathbb{R}^n\)的每个\(x\),映射\(x↦Ax\)称为一个矩阵变换

一个\(m\)\(n\)列的矩阵,将一个\(n\)维向量变换为一个\(m\)维向量。

线性变换定义

变换\(T\)称为线性的,若线性变换运算对向量加法满足分配率,对向量倍乘满足交换律

  • \(\forall \vec{u},\vec{v} \in \mathbb{R}^n, T(\vec{u}+\vec{v}) = T(\vec{u})+T(\vec{v})\)
  • \(\forall \vec{u} \in \mathbb{R}^n \wedge \forall c \in \mathbb{R}, T(c\vec{u})=cT(\vec{u})\)

每一个线性变换\(T\)都对应一个矩阵变换。对应着一个变换矩阵\(A\)

性质

线性变换具有保持标量乘法运算与向量加法运算的优良性质。 若\(T\)是线性变换,则:

  • \(T(0)=0\)
  • \(\forall \vec{u},\vec{v} \in \mathbb{R}^n \wedge \forall c,d \in \mathbb{R}, T(c\vec{u}+d\vec{v}) = cT(\vec{u})+dT(\vec{v})\)

在工程中,此规则被称为叠加原理。

在计算机图形学中,线性变换矩阵有着极其广泛的应用。

变换名称 变换矩阵 变换说明
\(x_1\)轴对称 \(\left[ \begin{matrix} -1 & 0 \\ 0 & 1\end{matrix}\right]\) 关于\(x_1\)轴的对称
\(x_2\)轴对称 \(\left[ \begin{matrix} 1 & 0 \\ 0 & -1\end{matrix}\right]\) 关于\(x_2\)轴的对称
1-3轴对称 \(\left[ \begin{matrix} 1 & 0 \\ 0 & -1\end{matrix}\right]\) 关于直线\(x_1=x_2\)轴的对称。
2-4轴对称 \(\left[ \begin{matrix} 0 & 1 \\ 1 & 0\end{matrix}\right]\) 关于直线\(x_1 =-x_2\)轴的对称
中心对称 \(\left[ \begin{matrix} -1 & 0 \\ 0 & -1\end{matrix}\right]\) 关于原点的对称
水平缩放 \(\left[ \begin{matrix} k & 0 \\ 0 & 1\end{matrix}\right]\) 水平拉伸\((k>1)\)压缩\((k<1)\)
垂直缩放 \(\left[ \begin{matrix} 1 & 0 \\ 0 & k\end{matrix}\right]\) 垂直拉伸\((k>1)\)压缩$(k)
水平剪切 \(\left[ \begin{matrix} k & 0 \\ 0 & 1\end{matrix}\right]\) 左剪切\((k<0)\)右剪切\((k>0)\)
垂直剪切 \(\left[ \begin{matrix} 1 & 0 \\ 0 & k\end{matrix}\right]\) 下剪切\((k<0)\) 上剪切\((k0>)\)
\(x_1\)轴投影 \(\left[ \begin{matrix} 1 & 0 \\ 0 & 0\end{matrix}\right]\) 投影至\(x_1\)
\(x_2\)轴投影 \(\left[ \begin{matrix} 0 & 0 \\ 0 & 1\end{matrix}\right]\) 投影至\(x_2\)
旋转 \(\left[ \begin{matrix} cos(\phi) & -sin(\phi) \\ sin(\phi) & cos(\phi) \end{matrix}\right]\) 逆时针旋转角度\(\phi\)
二维投影 \(\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0\end{matrix}\right]\) \(\mathbb{R}^3\)中的点投影到\(x_1x_2\)坐标平面上

平移变换并不是线性变换 。想要实现需要升维,用仿射矩阵来实现。

如同初等矩阵一般,变换矩阵会对左乘的矩阵进行列变换,对右乘的矩阵进行行变换。

所以变换的数据矩阵,要么放在变换矩阵的左侧,高瘦,每行为一条数据。要么放在变换矩阵右侧,矮宽,每列一行数据。

1.6 坐标系

每一个线性变换矩阵,都可以视为一组由新的基向量构成的坐标系

坐标系

\(\mathbb{R}^n\)中,假设\(\mathfrak{B}=\lbrace b_ 1, b_2, … ,b_n \rbrace\)是子空间\(H\)的一组基,对\(H\)中的每一个向量\(x\)

相对于基\(\mathfrak{B}\)的坐标是使\(x=c_1 b_1+…+c_ nb_n\)成立的权值\((c_1,\cdots,c_p)\)

\(\mathbb{R}^p\) 中的向量\([x]_{\mathfrak{B}} = \left[ \begin{matrix} c_1 \\ \vdots \\ c2 \end{matrix} \right]\) 称为\(x\)相对于\(\mathfrak{B}\)的坐标向量,或\(x\)\(\mathfrak{B}\)-坐标向量。

性质
  • 向量方程\(x = c_1b_1+…+c_2b_2\)等价于 \(x = \mathfrak{B}[x]_{\mathfrak{B}}\)
  • \(\mathfrak{B}^{-1}x = [x]_{\mathfrak{B}}\)
  • \(\mathfrak{B}\)的列构成\(\mathbb{R}^n\)的一组基所以是线性无关,可逆的。

\[ \left[\begin{matrix} a & b \\ c & d \\ \end{matrix}\right] \left[\begin{matrix} x \\ y \\ \end{matrix}\right]= x\left[\begin{matrix} a \\ c \\ \end{matrix}\right]+ y\left[\begin{matrix} b \\ d \\ \end{matrix}\right] = \left[\begin{matrix} ax+by \\ c x+dy \\ \end{matrix}\right] \]

坐标变换

一个向量左乘一个坐标系矩阵\(\mathfrak{B}^-1\),得到向量在该坐标系中的坐标。

应用

通过坐标变换,我们可以将各式各样空间中的样本点,转变为\(\mathbb{R}^n\)中的样本点,建立各种空间,比如复数空间,多项式空间到\(\mathbb{R}\)同构(isomorphism)。

2. 矩阵代数

矩阵记号

  • 矩阵\(A\)的第\(i\)行第\(j\)列元素可用\(a_{ij}\)来表示,称为A的\((i,j)\)元素。
  • 矩阵\(A\)的第\(i\)行,第\(i\)个行向量可用\(a_{i:}\)来表示。
  • 矩阵\(A\)的第\(j\)列,第\(j\)个列向量可用\(a_{:j}\)来表示。

标量乘法

标量乘法是最简单的运算,若\(r\)是标量而\(A\)是矩阵,则标量乘法\(rA\)的结果是一个与\(A\)同尺寸的矩阵,各元素扩大为\(A\)对应元素的\(r\)倍。

性质 表述
\(r(A+B) = rA+rB\) 标量数乘对矩阵加法的分配律
\(r(AB)=(rA)B=A(rB)\) 数乘和乘法的结合交换律
\((r+s)A = rA+sA\) 标量数乘对实数加法的分配律
\(r(sA) =(rs)A\) 标量数乘结合律

矩阵加法

矩阵加法是向量加法的推广,只有维度相同的矩阵相加才有意义。\(A+B\)的每个元素等于\(A\)\(B\)的对应元素相加。

性质 表述
\(∀A,B∈M_{m×n}: A+B∈ M_{m×n}\) 加法==封闭==性
\((A+B)+C = A+(B+C)\) 加法==结合==律
\(∃0 ∈ M_{m×n} : A+0 = 0+A = A\) 加法==单位元==
\(∀A∈M_{m×n}∃-A: A+(-A) = (-A)+A = 0\) 加法==逆元==
\(A+B = B+A\) 加法==交换==律

因为定义在\(m×n\)上的矩阵加法满足封闭性,结合律,存在单位元和逆元,且满足交换律,所以\(\left< M_{m×n}, + \right>\)构成一个Abel群

零矩阵0

零矩阵是由矩阵加法运算的单位元引出的,元素全为0的矩阵称为零矩阵,用\(0\)表示,\(0\)的维度通常由上下文给出,否则由下角标显示标明。

任何矩阵与\(0\)进行矩阵加法仍然是本身。

矩阵乘法

矩阵乘法有着丰富的几何涵义。它可以从內积,外积,按行展开,按列展开,变换的复合,坐标系变换等不同方式与角度去解读与看待。

\(A\)\(n\)阶矩阵,\(B,C\)的维度使下列各式矩阵乘法有定义。

性质 表述
\(∀A,B∈M_{n}(ℝ): A·B∈ M_{n}(ℝ)\) 乘法==封闭==性
\((A·B)·C = A·(B·C)\) 乘法==结合==律
\(∀A∈M_{n}∃E ∈ M_{n}(ℝ) : A·E = E·A = A\) 乘法==单位==元
\(∃A∈M_{n}(ℝ)∃A^T: A·(A^T) = (A^T)·A = E\) 乘法==逆元==(部分存在)
\(A·(B+C) = A·B+A·C\) 乘法对加法==左分配律==
\((B+C)·A = B·A+C·A\) 乘法对加法==右分配律==

由性质1~3可知,定义在\(M_{n}(ℝ)\)上的矩阵乘法满足封闭性,结合律,存在单位元,但是并不是所有的矩阵都存在逆元。所以\(\left<M_{n}(ℝ), · \right>\)不是,只是一个含幺半群(独异点)

但是由矩阵加法的性质可知,\(\left<M_{n}(ℝ), + , · \ \right>\)构成一个

矩阵乘法的理解

从计算上,矩阵乘法\(A_{m×n}B_{n×l}=C_{m×l}\)可以有四种解读方法:


内积形式(行列展开)

\(A\)的第\(i\)行与\(B\)的第\(j\)列进行内积运算,结果放入C的第\(i\)\(j\)列。

\[ c_{ij} = a_{i:}·b_{:j} = \sum_{k=1}^n a_{ik}b_{kj} \]

这种视角下,结果矩阵的每一个元素,都等于==左阵行向量==与==右侧列向量==进行==内积运算==。通常手工计算时便采用此种视角。左阵有\(m\)个行向量,右阵有\(l\)个列向量,使用\(m×l\)个内积填充结果矩阵。


外积形式(列行展开)

\(A\)的第\(i\)列与\(B\)的第\(j\)行进行外积运算,将所有的结果矩阵求和。

\[ C= a_{:i} × b_{j:} \]

\(A\)的列向量与\(B\)的行向量进行外积运算,其实就是\(m×1\)矩阵与\(1×l\)矩阵的乘法,结果是一个\(m×l\)的矩阵。左阵和右阵都有\(n\)个向量,这\(n^2\)个矩阵再进行矩阵加法,即可得到结果。


左阵(A)列的线性组合(按列展开,坐标系)

将左阵\(A\)视作\(n\)\(m×1\)的列向量组成的基底,右阵\(B\)的每一列视作相应的==列向量权重==。

结果的第\(j\)\(c_{:j}\),正是以左阵全体列向量作为坐标系,右阵第\(j\)列为坐标得到的结果。

\[ c_{:j} = b_{1j}\vec{a_{:1}}+ \cdots + b_{nj}\vec{a_{:n}} \]

\[ \left[\begin{matrix} a & b \\ c & d \\ \end{matrix}\right] \left[\begin{matrix} x \\ y \\ \end{matrix}\right] = x \left[\begin{matrix} a \\ c \\ \end{matrix}\right] + y \left[\begin{matrix}b \\ d \\ \end{matrix}\right] \]

这种视角下,左边的矩阵是坐标系,每个列向量代表一根坐标轴向量。右边的矩阵是坐标点,每一列数据是一组坐标。矩阵乘法将若干列坐标(B)使用相应的坐标系(A)进行翻译。


右阵(B)行的线性组合(按行展开,行变换)

反之亦然,将右阵\(B\)视作\(n\)\(1×l\)的行向量组成的基底,左阵\(B\)的每一行视作相应的==行向量权重==。

结果的第\(i\)\(c_{i:}\),正是以右阵全体行向量作为坐标系,左阵第\(i\)行为坐标得到的结果。

\[ c_{i:} = a_{i1}\vec{b_{1:}}+ \cdots + a_{in}\vec{b_{n:}} \]

如果左阵是方阵,还可以将其视作一系列行初等变换的复合结果。


单位矩阵I/E

零矩阵是由矩阵乘法运算的单位元引出的,对角线元素全为1而其他元素都为0的\(n\)阶方阵称为n阶单位阵,用\(E\)\(I\)表示( eye & identity )。

逆矩阵

逆矩阵由矩阵乘法的逆元引出。一个\(n\)阶方阵\(A\)是可逆的,若存在一个\(n\)阶方阵\(A^{-1}\)使得:

\(AA^{-1}= I \wedge A^{-1}A=I\) 。此时称\(A\)可逆,其逆元为\(A^{-1}\)

矩阵乘幂

\(A\)\(n\)阶方阵,\(k\)是正整数,则\(A^k\)表示\(k\)\(A\)的乘积。

\[ A^k = \underbrace {AAA...A}_k \]

一个关于矩阵乘幂的重要恒等式:

\[ (I-C)(I+C+C^2+\cdots+C^n)=1-C^{m+1} \]

矩阵转置

给定\(m × n\)矩阵\(A\),则\(A\)的转置是一个\(n×m\)的矩阵,它的列由\(A\)的相应行构成,用\(A^T\)表示。

矩阵转置操作具有以下性质

性质 说明
\((A^T)^T = A\) 转置自反性
\((A+B)^T = A^T + B^T\) 转置分配律
\(∀r∈ℝ: (rA)^T = rA^T\) 数乘保持
\((AB)^T = B^T A^T\) 矩阵乘法与转置

矩阵求逆

矩阵求逆实际上是矩阵乘法的逆运算:找出一个将一个矩阵变为单位阵的矩阵来。

\[ AA^{-1}= I \wedge A^{-1}A=I \]

左逆元和右逆元同时存在且相等时,逆元存在,此时称\(A\)可逆,其逆元为\(A^{-1}\)

逆元的性质有:

性质 说明
\(A\)可逆则\(A^{-1}\)亦可逆,\((A^{-1})^{-1} = A\) 求逆自反
A可逆则A^{T}亦可逆,\((A^{T})^{-1} = (A^{-1})^T\) 转置求逆交换
\((AB)^{-1} = B^{-1} A^{-1}\) 矩阵乘法与求逆交换

可逆矩阵又称为非奇异矩阵(Non-Singular Matrix),不可逆矩阵又称为奇异矩阵(Singular Matrix),并不是所有的矩阵都是可逆的。

逆元的求法

求逆元,等价于求解一个形如下式的方程:

\[ \underbrace {\left[\begin{matrix} 1 & 2 \\ 3 & 5 \\ \end{matrix}\right]}_A \underbrace {\left[\begin{matrix} a & b \\ c & d \\ \end{matrix}\right]}_{A^{-1}} = \underbrace {\left[\begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix}\right]}_{I} \]

通过高斯消元法(Gauss Jordan Idea),将矩阵\(\left[\begin{matrix} A & I \\ \end{matrix}\right]\)化为最简阶梯型,将左边的\(A\)化简为单位矩阵\(I\),则右边的\(I\)自然而然的就变为\(A\)的逆矩阵\(A^{-1}\)

\[ \left[\begin{matrix} A & I \\ \end{matrix}\right] \sim \left[\begin{matrix} I & A^{-1} \\ \end{matrix}\right] = E \left[\begin{matrix} A & I \\ \end{matrix}\right] \]

因为高斯消元法过程完全是行初等变换,而这一系列行初等变换又可以写成左乘一个复合变换矩阵\(E\)。这样,因为\(EI=A^{-1}\),所以\(E\)就是\(A^{-1}\)

就是矩阵\(A\)的逆阵\(A^{-1}\),这一过程,用矩阵代数来表示,就是LU分解。最简阶梯型是一个上三角矩阵,而相应的行变换矩阵因为只有向下消元操作,是一个下三角矩阵。