======Matrix Algebra for Engineers====== //Week 1 Notes// ---- ====Matrices Definitions==== ===Definition of a Matrix=== ==m x n 的含义== * $m$ 代表**行数**(//row//) *$n$ 代表**列数**(//columns//) * 每行 / 每列的元素为 $m$ (也就是第几行)/ $n$ 的值 (也就是第几列) {{ :math:linear_algebra:matrix_engineers:m_times_n_arrow.svg?300 |}} ==Vector== * //column vector//:$m \times 1$ 矩阵,也就是**列数**为 $1$ 的矩阵 * //row vector//: $1\times n$ 矩阵,也就是**行数**为 $1$ 的矩阵 ==矩阵的表示== 矩阵的表示分为三部分: * 矩阵的符号 $A$ * 矩阵的元素符号 $a$ * 矩阵元素的下表 $i$,和 $j$ $i$ 和 $j$ 通常从 $1$ 开始。一个 $m \times n$ 的矩阵可以表示如下: $$A=\begin{bmatrix} a_{11}&a_{12} &a_{13} &... &a_{1n} \\ a_{21}&a_{22} &a_{23} &... &a_{2n} \\ ...& ...& ...& ... &...\\ a_{m1}&a_{m2} &a_{m3} &... &a_{mn} \end{bmatrix}$$ ===Addition and Multiplication=== ==矩阵的加法== 按位相加即可: $$ \begin{pmatrix} a & b\\ c&d \end{pmatrix} + \begin{pmatrix} e & f\\ g&h \end{pmatrix} = \begin{pmatrix} a+e & b+f\\ c+g&d+h \end{pmatrix} $$ * 矩阵的**加减法**要求参与运算的矩阵**大小相同**,否则运算为未定义运算。 ==矩阵与标量的乘法== 按位相乘即可: $$ k \cdot \begin{pmatrix} a & b\\ c&d \end{pmatrix} = \begin{pmatrix} k\cdot a & k\cdot b\\ k\cdot c&k\cdot d \end{pmatrix} $$ ==矩阵的乘法== * 依照顺序,使用第一个矩阵的行,乘以第二个矩阵中的列。 * 第一个矩阵中的行需要与所有第二个矩阵中的列相乘完毕之后,才能换行。 * 行列相乘按**点积**计算 * 结果按照从左到右,从上倒下的顺序写进新矩阵中 {{ :math:linear_algebra:matrix_engineers:matrix_mult.svg?300 |}} ==矩阵的乘法不遵循交换律== 矩阵的乘法不遵循交换律: $$ A \times B \neq B \times A $$ ==矩阵乘法对矩阵的要求== 根据矩阵的乘法,矩阵的要求**第一个矩阵的列数**与**第二个矩阵的行数**匹配。相乘之后的新矩阵大小为第一个矩阵的行数乘以第二个矩阵的列数,即: $$ (m \times n) \cdot (n \times p) = (m \times p) $$ ==矩阵乘法的通用形式== 对于指定的 $i$ 行 $j$ 列的成员 $c_{ij}$,其值等于第一个矩阵的 $i$ 行元素和第二个矩阵的 $j$ 行元素按位相乘,最后相加的总和,也就是第一个矩阵的 $i$ 行与第二个矩阵的 $j$ 行点积的结果。因此,通项公式可以写作: >$$ c_{ij} = \sum_{k=1}^{n} a_{ik}\cdot b_{kj} $$ \\ \\ 来看看这个公式的详细过程。假设参与相乘的两个矩阵名为 $A$, $B$。$A$ 为 $m \times n$ 矩阵,$B$ 为 $n \times p$ 矩阵。我们希望求出 $C$ 中第 $i$ 行,第 $j$ 列的值 $C_{ij}$。由于矩阵的乘法是用第一个矩阵的行与第二个矩阵的对应列进行点积,也就是按号相乘再求和,那么参与运算的行列应该是: * 第一个矩阵的第 $i$ 行 * 第二个矩阵的第 $j$ 列 {{ :math:linear_algebra:matrix_engineers:cij.svg?400 |}} \\ \\ 通过观察可以从上图看出,矩阵的乘法首先会确定第一个矩阵的行位置与第二个矩阵的列位置,然后开始累加。累加的次数正好是第一个矩阵的列数(也是第二个矩阵的行数),也就是 $n$。唯一不同的地方在于$n$ 代表的意义(下标不同)。假设 $k$ 为当前 $n$ 的值,可知: * $k$ 的范围是 $[1,n]$ * $k$ 说明当前的计算发生在第一个矩阵的 第$k$ 列,与第二个矩阵中的第 $k$ 行的元素之间 {{ :math:linear_algebra:matrix_engineers:cij_ik_kj.svg?400 |}} \\ \\ 由于 $k$ 可以表示任意 $[1,n]$ 的值,因此 $C_{ij}$ 的通项公式就可以写成 $i$,$j$ 固定,但是 $k$ 在变化的累积和形式了。 ==证明矩阵乘法的结合律== 矩阵乘法遵循结合律,即: >$$(AB)C = A(BC)$$ 由于左右两边的结果矩阵的大小相同,因此这个结论的证明实际可以转化为证明左右两边的结果矩阵中的**通项**是否相等,即: $$C=[A(BC)]_{ij}$$ 假设: * $A$ 是 $m\times n$ 矩阵 * $B$ 是 $n\times p$ 矩阵 * $C$ 是 $p\times q$ 矩阵 对于左边,$AB$ 的通项可以表示为: $$(AB)_{ij} = \sum_{k=1}^{n}a_{ik} \cdot b_{kj} $$ 此时,$AB$ 通过乘法得到的新矩阵,其大小为 $m\times p$,因此在 $AB$ 与 $C$ 的乘法中,$p$ 代替 $n$ 作为了下一次的累加次数。假设 $l$ 为当前 $p$ 的值,那么 $l$ 的取值范围就是 $[1,p]$,而 $AB$ 与 $C$ 的乘法中通项可以表示为: $$ [A(BC)]_{ij} = \sum_{k}^{n} a_{ik} \cdot b_{kl} \cdot \sum_{l=1}^{p}c_{lj} $$ 整理一下,也就是: $$ [A(BC)]_{ij}= \sum_{k}^{n}\sum_{l=1}^{p} a_{ik} \cdot b_{kl} \cdot c_{lj} $$ 注意这里 $AB$ 中的 $b_{ki}$ 在下一个通项公式中转换为了 $b_{kj}$。实际上,这里的 $j$ 与 $l$ 是对应起来的。因为 $AB$ 的大小为 $m\times p$,因此 $j$ 的取值范围是 $[1,p]$。也就是说,$j$ 与 $l$ 都在表示当前 $AB$ 与 $C$ 的乘法中,通项和的累积次数。因此,$b_{kj}=b_{kl}$: \\ \\ {{ :math:linear_algebra:matrix_engineers:ab_c.svg?600 |}} \\ \\ 同理来计算右边的结果。首先从 $BC$ 开始算,$BC$ 的矩阵乘法是 $n\times p$ 与 $p\times q$ 相乘,因此此处是 $p$ 作为通项累积和的积累次数。我们应该用 $l$ 来代表当前的次数,即: $$ (BC)_{ij} = \sum_{l=1}^{p}b_{il}\cdot c_{lj} $$ 然后我们将 $A$ 与 $BC$ 的结果相乘,此时是一个 $m\times n$ 与 $n\times q$ 的乘法。 待完善。 ===Special Matrices=== ==Zero matrix== //Zero Matrix//(**零矩阵**)指矩阵中所有的元素都为 $0$ 的矩阵: * 该矩阵扮演了矩阵中 $0$ 的角色 * 其尺寸不固定 ($m \times n$) 一个 $2 \times 3$ 的零矩阵表示如下: \\ $$\begin{pmatrix} 0& 0& 0\\ 0& 0&0 \end{pmatrix}$$ \\ 任意矩阵乘以零矩阵,得到的结果都是 $0$,即: >$$A0 = 0$$ ==Identity matrix== //Identity Matrix//(**单位矩阵**),记作 $I$,指矩阵主对角线上元素都是 $1$,其他位置的元素都是 $0$ 的矩阵。 * 普通列表项目该矩阵扮演了矩阵中 $1$ 的角色 * 单位矩阵必须是**方阵** $n \times n$ 一个 $2 \times 2$ 的单位矩阵表示如下: \\ $$ \begin{pmatrix} 1& 0\\ 0 &1 \end{pmatrix} $$ \\ 任意矩阵乘以对称矩阵都会得到原矩阵,且单位矩阵满足交换律,即: >$$AI=A=IA$$ ==Diagonal matrix== //Diagonal Matrix//(**对角矩阵**),记作 $D$,指只有主对角线上有元素的矩阵。一个 $3 \times 3$ 的对角矩阵表示如下: \\ $$ \begin{pmatrix} d1& 0& 0\\ 0& d2& 0\\ 0& 0 &d3 \end{pmatrix} $$ 性质一:令 $C=AB$,如果 $A$,$B$ 均为对角矩阵,那么 $C$ 也是对角矩阵。 ==Banded matrix== //Banded Matrix//(**带状矩阵**),指元素分布在主对角线附近的矩阵。具体的来说,除了主对角线上的元素以外,其他元素会分别填满对角线的上/下的 $n$ 条对角线。下面是一个带状矩阵的例子: \\ $$ \begin{pmatrix} d1& {\color{Peach} a1} & 0\\ {\color{Blue} b1} & d2& {\color{Orange} a2} \\ 0& {\color{Blue} b2} &d3 \end{pmatrix} $$ \\ ==Triangular matrix== //Triangular Matrix//(**三角矩阵**),指元素分布在主对角线及以上(以下)的矩阵。其中: * 元素分布在对角线以上的矩阵被称为**上三角矩阵**(//upper Triangular matrix//),记作 $U$ * 元素分布在对角线以下的矩阵被称为**下三角矩阵**(//lower Triangular matrix//),记作 $L$ 下面是两个示例: $$U=\begin{pmatrix} a& b& c\\ 0& d& e\\ 0& 0&f \end{pmatrix}$$ $$L=\begin{pmatrix} a& 0& 0\\ b& c& 0\\ d& e&f \end{pmatrix}$$ \\ 令 $C=AB$,如果 $A,B$ 均为三角矩阵,那么: * $C$ 也为三角矩阵 * $C$ 对角线上的元素为 $A,B$ 对角线上元素的乘积,即 $c_{ii}=\sum a_{ii} \cdot b_{ii} $ 可以使用下标来筛选三角矩阵中为 $0$ 的元素,比如上三角矩阵的元素 $a_{ik}$,当 $i>k$ 时元素为 $0$。 ====Transpose and Inverses==== ===Transpose matrix=== //Transpose matrix//(**转置矩阵**)指将原矩阵中的行变为列(列变为行)后形成的矩阵,记作 $A^T$。下面是 $m \times n$ 的转置矩阵示例: \\ \\ {{ :math:linear_algebra:matrix_engineers:tanspose.svg?450 |}} \\ 几个 facts: * 转置实际上是基于主对角线的反射 * 转置以后,元素的位置(下标)基于主对角线对调,即 $a^T_{ij}=a_{ji}$ * 由于转置是行列转换,因此转换后的 $A^T$ 的尺寸会变为 $n \times m$ ==转置运算的几个性质== * $(A^T)^T = A$ * 结合律:$(A+B)^T = A^T+B^T$ * $(AB)^T = B^TA^T$ ==基于转置的特殊矩阵:Symmetric matrix== //Symmetric matrix//(**对称矩阵**)指矩阵元素基于主对角线对称的矩阵。一个$3\times 3$ 的对称矩阵表示如下: \\ \\ $$ \begin{pmatrix} a& {\color{red} b} & {\color{Violet} c} \\ {\color{Red} b } & d& {\color{Orange} e} \\ {\color{Violet} c} & {\color{Orange} e} &f \end{pmatrix} $$ \\ * 对称矩阵的转置矩阵是对称矩阵本身,即 $A^T = A$ ==基于转置的特殊矩阵:Skew-symmetric matrix== //Skew-symmetric matrix//(**反对称矩阵**)。此类矩阵满足如下关系: >$$A^T = -A$$ 一个 $3\times 3$ 的简单示例如下: \\ $$ \begin{pmatrix} 0& {\color{red} b} & {\color{Violet} c} \\ {\color{Red} -b } & 0& {\color{Orange} e} \\ {\color{Violet} -c} & {\color{Orange} -e} &0 \end{pmatrix} $$\\ * 元素按主对角线进行对称,并取负 * 由于主对角线上的元素转置后是其自身,为满足 $A^T=-A$,所以都必须为 $0$ 几个扩展结论: * 任意方阵可以由对称矩阵与反对称矩阵的和表示,即 $A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T)$ * $A^TA$ 是对称矩阵 ===Inner & outer Products=== ==Inner product== //Inner products//(**内积**),也被称为 //dot product// (**点积**)。矩阵中的内积可以表示为一个**列向量矩阵的转置**乘以另外一个列向量矩阵。示例如下:\\ \\ 令: $$ u=\begin{pmatrix} u_1\\ u_2\\ u_3 \end{pmatrix} \,\,\,\text{and}\,\,\, v=\begin{pmatrix} v_1\\ v_2\\ v_3 \end{pmatrix} $$ 则内积可以表示为: \\ \[ \begin{align*} u^Tv & = \begin{pmatrix} u_1 &u_2 &u_3 \end{pmatrix}\cdot \begin{pmatrix} v_1\\ v_2\\ v_3 \end{pmatrix} \\ & = u_1\cdot v_1+u_2\cdot v_2+u_3\cdot v_3 \end{align*} \] * 内积的结果是一个**标量**(//scalar//) * $u^Tv=0$ 意味着 $u$ 与 $v$ //**orthogonal**// ,也就是内积中的**垂直**。 * **norm(范数)** : * 向量的范数可以表示为:$||u|| = (u^Tu)^{(\frac{1}{2})} = \sqrt{(u_1^2+u_2^2+u_3^2)}$ * $u$ is **normalized** if $||u||=1$ * 如果 $u,v$ **orthogonal** and **normalized**,那么这些向量被称为 //**orthonormal**// ==outer product== 矩阵中的 //Outer product//(**外积**),可以表示为一个列向量与另外一个列向量的转置的乘积。示例如下(以之前的 $u,v$ 为例):\\ \\ \[ \begin{align*} uv^T & = \begin{pmatrix} u_1\\ u_2\\ u_3 \end{pmatrix}\cdot\begin{pmatrix} v_1 &v_2 &v_3 \end{pmatrix} \\ & = \begin{pmatrix} u_1v_1& u_1v_2& u_1v_3\\ u_2v_1& u_2v_2& u_2v_3\\ u_3v_1& u_3v_2&u_3v_3 \end{pmatrix} \end{align*} \] 其结果是一个**矩阵**。 ==trace of matrix== //trace//(**迹**),记作 $Tr$,指方阵主对角线上元素的和。 * 令 $A$ 为 $n\times n$ 方阵, $Tr(A^TA) = \sum_{k=1}^{n} (a_{ki})^2$($A$ 中所有元素的平方之和) ===Inverse Matrix=== //Inverse matrix//(**逆矩阵**)可以想象为矩阵的"倒数"。矩阵 $A$ 的逆矩阵记作 $A^{-1}$,逆矩阵的定义从用如下的性质描述: >$$AA^{-1}=I=A^{-1}A$$ 也就是矩阵与自身的逆矩阵的乘积等于单位矩阵;同时也可以看到,矩阵与逆矩阵的乘法满足**交换律**。 * 不是所有的矩阵都有逆矩阵 * 只有**方阵**才可能拥有逆矩阵 ==逆矩阵的性质== * $(AB)^{-1} = B^{-1}A^{-1}$ * $(A^T)^{-1} = (A^{-1})^T$ ==如何求二阶方阵的逆矩阵== 假设我们有矩阵: $$ \begin{pmatrix} a& b\\ c&d \end{pmatrix} $$ 根据逆矩阵的定义,可得到下面的等式: \\ $$ \begin{pmatrix} a& b\\ c&d \end{pmatrix} \begin{pmatrix} x_1& x_2\\ y_1&y_2 \end{pmatrix} =\begin{pmatrix} 1 &0 \\ 0 &1 \end{pmatrix} $$ \\ 将上述的等式按矩阵的乘法展开,有: $$ \begin{cases} ax_1+by_1=1\\ ax_2+by_2=0\\ cx_1+dy_1=0\\ cx_2+dy_2=1 \end{cases} $$ 化简后最后可得到二阶逆矩阵的表达式: >$$A^{-1} = \frac{1}{{\color{Red} ad-bc} }\begin{pmatrix} d & -b\\ -c&a \end{pmatrix}$$ ==矩阵的 Determinant== 上面的表达式中,红色部分 $ad-bc$ 被称为矩阵的 //Determinant//,记作: \\ \\ $$ det\begin{pmatrix} d & -b\\ -c&a \end{pmatrix}={\color{Red} ad-bc} $$ \\ //Determinant// 用于判断一个矩阵的逆矩阵是否存在。当 //Determinant// 为 $0$ 时,逆矩阵不存在。\\ \\ [[https://zhuanlan.zhihu.com/p/101219058|计算四边形面积的公式,用于证明 determinant]] ====Orthogonal Matrices==== ===Orthogonal Matrices=== //Orthogonal Matrices//(**正交矩阵**)记作 $Q$,其满足以下的定义: >$$Q^{-1} = Q^T$$ ==orthogonal 和 orthonormal 向量== 理解 $Q^{-1} = Q^T$ 这一条需要弄明白 //orthogonal vector// 和 //orthonormal vector// 两个概念: * //orthogonal vector// 指两个向量的**内积**为 $0$,即 $u \cdot v = 0$ * //orthonormal vector// 指: * 两个向量的内积为 $0$,即 $u \cdot v = 0$ * 且两个向量的长度均为 $1$,即 $||u|| = ||v|| = 1$ ==理解 Orthogonal Matrices 的定义== 由逆矩阵的性质:$QQ^{-1}=I$,可将定义转化为如下形式: \\ $$ QQ^T = I $$ \\ 什么样的矩阵才能由这种性质呢?假设 $Q$ 是一个 $n \times n$ 的方阵,首先来看看 $QQ^T$ 是什么样子的: \\ \\ $$ \begin{pmatrix} q_{11}&q_{12} &... & q_{1n}\\ q_{21}&q_{22} &... & q_{2n}\\ ...& ...& ...& ...\\ q_{n1}&q_{n2} & ... &q_{nn} \end{pmatrix} \times \begin{pmatrix} q_{11}&q_{21} &... & q_{n1}\\ q_{12}&q_{22} &... & q_{n2}\\ ...& ...& ...& ...\\ q_{1n}&q_{2n} & ... &q_{nn} \end{pmatrix} =I $$ \\ \\ 我们发现在矩阵乘法中,$Q$ 中每一个列向量都有与自身内积的一次机会,而该结果的位置正好在主对角线上,比如 $Q$ 的第一行与 $Q^T$ 的第一列,其结果位置在 $i_{11}$ 上: \\ \\ {{ :math:linear_algebra:matrix_engineers:orthonormal.svg?350 |}} \\ \\ 由于单位矩阵的对角元素均为 $1$,其他位置的元素均为 $0$,因此我们得到结论: * $Q$ 中的列向量与自身的内积等于 $1$。 * $Q$ 中的列向量与 $Q$ 中其他**非自身**的列向量内积为 $0$ 也就是 $Q$ 中: * 任意列向量的单位长度为 $1$ * 任意列向量**两两垂直**(即互为 //orthogonal vector//) 也就是说,$Q$ 中所有的列向量均互为 //orthonormal vector// 时,$Q$ 被称为** //Orthogonal Matrix//**。\\ \\ 由于 $Q^TQ=I$ 也成立,因此行向量也满足上述的推论。因此:$Q$ 是 //Orthogonal Matrix// 成立的前提是 $Q$ 中**所有的向量两两互为** //orthonormal vector//。 ==正交矩阵的重要特性1:preserve lentgh== 正交矩阵的第一个重要特性,是在使用正交矩阵进行变换的时候,正交矩阵**不会改变**原有矩阵中向量的**长度**。简单的证明如下:\\ \\ 假设 $Q$ 是 $n \times n$ 的正交矩阵,$x$ 为 $n \times 1$ 的列向量。如果正交矩阵可以保留长度,那么我们只需要证明变换前与变换后的矩阵长度一致即可,即: \\ $$ ||Qx|| = ||x|| $$ \\ 证明该等式的过程只需要下面的形式: \\ $$ (Qx)^T(Qx) $$ \\ 上述的形式是 $Qx$ 的内积形式,因此其结果是 $Qx$ 的 norm 的平方,也就是: \\ $$ (Qx)^T(Qx) = ||Qx||^2 $$ \\ 接下来再对 $(Qx)^T(Qx)$ 变形,可得: \\ \[ \begin{align*} (Qx)^T(Qx) & = x^TQ^TQx\\ & = x^TIx\\ & = x^Tx\\ &= ||x||^2 \end{align*} \] \\ 到此即可得正我们需要的关系: \\ $$ ||Qx||^2 = ||x||^2 \Rightarrow ||Qx|| = ||x|| $$ ==正交矩阵与旋转== 正交矩阵可以应用于矩阵的旋转操作。假设有以下列向量 $u$ $$\displaystyle \begin{pmatrix} x \\ y \end{pmatrix}$$ 我们希望将其旋转角度 $\theta$: {{ :math:linear_algebra:matrix_engineers:rotation.svg?250 |}} 令旋转矩阵为 $R$,那么有: $$ R_{\theta} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x' \\ y' \end{pmatrix} $$ 令向量 $u$ 的长度为 $r$,由三角关系可得: \\ \\ \[ \begin{align*} x’ & = r\cdot cos(\theta+\phi) \\ & = r(cos(\theta)cos(\phi)-sin(\theta)sin(\phi))\\ & = cos(\theta){\color{Orange} rcos(\phi)} -sin(\theta){\color{Orange} rsin(\phi)} \\ & = xcos(\theta)-ysin(\theta) \\ \\ y' & = r\cdot sin(\theta+\phi)\\ & = r(sin(\theta)cos(\phi)+cos(\theta)sin(\phi))\\ & = (sin(\theta){\color{Orange} rcos(\phi)}+cos(\theta){\color{Orange} rsin(\phi)} )\\ & = xsin(\theta)+ycos(\theta) \end{align*} \] \\ \\ 将上述的结果带入之前的旋转等式,即可得到结果: \\ \\ $$ {\color{Blue} \begin{pmatrix} cos(\theta)&-sin(\theta) \\ sin(\theta)&cos(\theta) \end{pmatrix}} \begin{pmatrix} x\\y \end{pmatrix} =\begin{pmatrix} xcos(\theta)-ysin(\theta)\\ ycos(\theta)+xsin(\theta) \end{pmatrix} $$ \\ 而 $R_0$ 很容易被证明是正交矩阵。 //orthgonal martix// 在实际应用中就是作为旋转矩阵使用的。旋转的过程中,该矩阵不但能保持被旋转矩阵中向量的大小不变,也能保证向量的夹角不变。 ===Permutation Matrices=== //Premutaion matrix//(**交换矩阵**)是//orthogonal matrix// 的一种,其功能是可以交换被乘矩阵的行(列)。交换矩阵必须是方阵。一个 $2 \times 2$ 的交换矩阵示例如下: \\ $$ \begin{pmatrix} 0&1 \\ 1&0 \end{pmatrix} \begin{pmatrix} a & b\\ c&d \end{pmatrix} = \begin{pmatrix} c&d \\ a&b \end{pmatrix} $$ \\ 上面的例子中,使用交换矩阵**左乘**目标矩阵,达到了**行交换**的效果。对应的是,如果使用交换矩阵右乘目标矩阵,那实现的是对目标矩阵的**列交换**。 单位矩阵与目标矩阵相乘可以视作不改变行(列)顺序的交换矩阵;因此**单位矩阵也是交换矩阵**的一种。 ==交换矩阵对应的行(列)== 交换矩阵可以被视作行列交换过的单位矩阵。以左乘为例,那么**单位矩阵**中 $a_{ii}$ 代表的是目标矩阵的第 $i$ 行;而交换矩阵中 $a_{ii}$ 所在的位置,则是目标矩阵的第 $i$ 行经过交换后的位置。