======Matrix Algebra for Engineers====== //Week 4 Notes// ---- ====Determinants==== ===2阶 / 3阶矩阵的秩=== 之前提到过:[[math:linear_algebra:matrix_engineers:week1#inverse_matrix|二阶逆矩阵的秩]]为 $ad-bc$。**秩**(//Determinants//)的意义在于判断矩阵 $A$ 是否可逆;而我们可以通过矩阵是否可逆判断出 $Ax=b$ 是否存在**独特解**,即: \[ \begin{align*} &detA = ad - bc \neq 0 \\ \Rightarrow & Ax =b \\ \Rightarrow & x = A^{-1}b \end{align*} \] 重要推论:当 $Ax = 0$ 时,如果 $A$ 可逆($Det(A)\neq0$),那么 可知 $x=0$. ==三阶矩阵的秩== 三阶矩阵的秩可以按下面的方式快速记忆: * 正对角线方向,三元素为一组的乘积的和,减去 * 反对角线方向,三元素为一组的乘积的和 {{ :math:linear_algebra:matrix_engineers:det_a_d3.svg?300 |}} * 推论1:三阶矩阵的头两行互换,其 $Det(A)$ 的值为原来秩的负数。 * 推论2:二阶矩阵中:$Det(AB) = Det(A) \cdot Det(B)$ ===Laplace Expansion=== //Laplace Expansion// 是一种求矩阵秩的通用方法。 \\ \\ 以之前已知秩结果的 $3\times3$ 矩阵为例。如果对该结果分别提取公因数进行整理: \[ \begin{align*} &aei + bfg + cdh - ceg -bdi +afh \\ =&a(ei-fh) - b(di-fg)+c(dh-eg) \end{align*} \] 经过观察,我们发现公因数对应括号里的结果实际上是二阶矩阵的秩 因此上面的结果可以改写为: \\ \[ \begin{align*} &a(ei-fh) + b(di-fg)+c(dh-eg) \\ =&a\begin{vmatrix} e&f \\ h&i \end{vmatrix}{\color{Red} -} b\begin{vmatrix} d&f \\ g&i \end{vmatrix}+ c\begin{vmatrix} d&e \\ g&h \end{vmatrix} \end{align*} \] \\ 对上面的结果进行进一步的观察: \\ {{ :math:linear_algebra:matrix_engineers:laplace_expension_1_.svg?400 |}} \\ 可以发现的是,公因数对应的矩阵,实际上是将目标矩阵中公因数所在的行列元素全去掉后,剩下的元素组成的矩阵。这意味着,较大矩阵的秩,可以分解求更小矩阵秩的问题。 ==公因数的正负== 在 //Laplace Expansion// 的过程中,项的符号有正有负。这个正负性可以通过以下办法解决: $$ (-1)^{(x+y)} $$ 其中 $(x,y)$ 是公因数元素所在矩阵的位置。比如 $b$ 在 $(1,2)$,其符号为 $(-1)^3$,因此 $b$ 所在项符号为负。 ==行列的选择== //Laplace Expalnsion// 支持选择**任意行** & **任意列** 作为计算的起点。这也就意味着,选择 $0$ 最多的行或者列,是最易于计算的。 ==实例== 计算下面矩阵的秩: \\ \[ \begin{bmatrix*} 1& 0 & 0&-1 \\ 3 & 0 & 0 & 5\\ 2 & 2 & 4 & -3\\ 1& 0& 5&0 \end{bmatrix*} \] * 首先观察 $0$ 所在的最多行&列: \[ \begin{bmatrix*} 1& {\color{Red} 0} & 0&-1 \\ 3 & {\color{Red} 0} & 0 & 5\\ 2 & {\color{Red} 2} & 4 & -3\\ 1& {\color{Red} 0} & 5&0 \end{bmatrix*} \] \\ \\ 由于这一列只有第三行不为 $0$,因此只需要计算第三行元素与其对应的矩阵的秩的乘积。其位置为第2列第3行,系数为负。因此可得: \\ \\ \[ \begin{bmatrix} 1& {\color{Blue} 0} & 0&-1 \\ 3 & {\color{Blue} 0} & 0 & 5\\ {\color{Blue} 2} & {\color{Red} 2} & {\color{Blue} 4} & {\color{Blue} -3} \\ 1& {\color{Blue} 0} & 5&0 \end{bmatrix} =0+0-2 \begin{vmatrix} 1& 0& -1\\ 3& 0& 5\\ 1& 5&0 \end{vmatrix} +0 \] \\ \\ 再接着对得到的三阶矩阵进行进一步的扩展。这里选取第二列作为起始。该列只有 $(3,2)$ 处元素不为零,因此系数为 $-5$: \\ \\ \[ -2 \begin{vmatrix} 1& {\color{Blue} 0} & -1\\ 3& {\color{Blue} 0} & 5\\ {\color{Blue} 1} & {\color{Red} 5} &{\color{Blue} 0} \end{vmatrix} = -2(0+0-5\begin{vmatrix} 1& -1\\ 3&5 \end{vmatrix}) \] \\ \\ 根据二阶矩阵的秩公式,可得最后结果为 $-2\times-5\times8 = 80$ ===Leibniz Formula=== //Leibniz Formula//,又称 //Big Formula//,是另一种计算秩的方法。该方法通过按照指定规则排列出所有的 term,并使用该 term 的 permutation 的次数来计算 term 的正负;最终得到的所有 term 的**和**即为矩阵的秩。 ==term 的列举== 如果是 $n$ 阶矩阵,那么每个 term 的组成为矩阵的 $n$ 个元素的乘积。term 的列举遵循一个规则:当前元素所在行列不能有其他的元素。因此如果以行优先来计算组合(term 的数量):第一行有 $n$ 种选择,第二行有 $n-1$ 中选择... 容易观察出,$n$ 阶矩阵存在 $n!$ 个 term。 以之前的三阶矩阵为例: \\ \[ \begin{bmatrix} a & b & c\\ d& e& f\\ g& h&i \end{bmatrix} \] 第一行有 $a,b,c$ 三种选择,那么第二行就只能有两种选择,第三行就只能有一种选择。比如以 $a$ 开头,那么第二行就不能选与 $a$ 同列的;因此选择只有 $e,f$,那么第三行中,如果 term 选了 $e$ 就不能再选 $h$,同理 $f$ 与 $i$ 只能二选一。因此,$a$ 开头有两种组合方式:$aei, afh$。同理,$b$ 开头有两种:$bdi, bfg$,$c$ 开头有两种:$cdh,ceg$。一共 6 种组合,正好是 $3!$ 。 ==term 的正负== 列举出所有的 term 之后,我们还需要知道每个 term 的正负。本方法使用当前 term 的**列**顺序转换到**升序**排列所需要的 permutation 的次数,来判定其正负: * 当 permutation 的次数为偶数时,term 为正 * 反之为负 还是以刚才的三阶为例,其列的升序排列为 $123$。以 $aei$ 为例,$a$ 在第一列,$e$ 在第二列,$i$ 在第三列,因此其列顺序为 $123$,与升序一致。因此 permutation 次数为 $0$,因此 $aei$ 是 $+aei$。其他 term 可以参考下面表格: ^term^column order^permutation tlmes(flips)^type^sign(result)^ |aei|1,2,3|0|even|+| |afh|1,3,2|1|odd|-| |bfg|2,3,1|2|even|+| |bdi|2,1,3|1|odd|-| |cdh|3,1,2|2|even|+| |ceg|3,2,1|1|odd|-| 所以最终结果为: $$ Det(A)=aei+bfg+cdh-afh-bdi-ceg $$ ===Properties of a Determinant=== $Det(A)$ 可以被视作一个接收矩阵为参数,返回一个标量的函数。 ==三个基本性质== * $Det(I) = 1$ \[ \begin{vmatrix} 1 & 0\\ 0&1 \end{vmatrix}=1 \] * 矩阵 $A$ 两行互换后,$Det(A) = -Det(A)$ \[ \begin{vmatrix} a & b\\ c&d \end{vmatrix}=- \begin{vmatrix} c & d\\ a&b \end{vmatrix} \] * $Det(A)$ 是矩阵的第一行的线性函数 \[ \begin{align} \begin{vmatrix} ka & kb\\ c&d \end{vmatrix}&=k \begin{vmatrix} c & d\\ a&b \end{vmatrix} \\ \begin{vmatrix} a + a' & b + b'\\ c&d \end{vmatrix}&= \begin{vmatrix} a & b\\ c&d \end{vmatrix}+ \begin{vmatrix} a' & b'\\ c&d \end{vmatrix} \end{align} \] ==其他推广性质== * $Det(A)$ 是**任意行**的线性函数(第三条的推广) * 若矩阵两行相同,则 $Det(A) = 0$ * $k \times row-i + row-j$ 的运算不会改变 $Det(A)$ 的值 * 若矩阵中某行全为 $0$,则 $Det(A) = 0$ * 若 $Det(A) = 0$,则矩阵**不可逆** * 对角矩阵,上三角矩阵,下三角矩阵的秩均为**对角线元素的乘积**(高斯消元法求秩) * $Det(AB) = Det(A)Det(B)$ * $Det(A^{-1}) = \frac{1}{Det(A)}$ * $Det(A^T) = Det(A)$(这条证明了适用于行的性质也适用于列) ====The Eigenvalue Problem==== 假设有矩阵 $A$ 与列向量 $x$ 的乘积 $Ax$。假设该结果可以用一个常量 $\lambda$ 与 $x$ 表示,那么我们称 $\lambda$ 为 $A$ 的 //Egenvalue//,$x$ 为 //Eigen Vector//: \\ \\ {{ :math:linear_algebra:matrix_engineers:eigen.svg?250 |}} ===Eigenvalue 的计算方法=== * 首先,对 $Ax=\lambda x$ 的右边乘上一个单位矩阵 $I$,等式依然成立:$$Ax=Ax=\lambda Ix$$ * 将等式进行变形:\[\begin{align*} &Ax = \lambda Ix \\ &\Rightarrow (A-\lambda I)x = 0 \end{align*}\] 此时,如果 $Det(A-\lambda I)$ 不为零,则该矩阵可逆。如果对上面等式两边都乘以该逆矩阵,得到的结果为 $x=0$,也就是 //trivial solution//。我们无法通过这种解来求得 $\lambda$ 以及其对应的 $x$,因此需要: >$$Det(A-\lambda I) = 0$$ 这个等式被我们称为 //Characteristic Equation//。 ==二阶矩阵的 Eigenvalue== 令二阶矩阵 $A$ 为: \[\begin{bmatrix} a &b \\ c&d \end{bmatrix} \] 根据单位矩阵的定义,$\lambda I$ 是对角线上所有元素都为 $\lambda$ 的矩阵;因此有: $$ A- \lambda I =\begin{bmatrix} a-\lambda &b \\ c&d-\lambda \end{bmatrix} $$ 根据二阶矩阵秩的公式: $$ Det(A- \lambda I) = (a-\lambda)(d-\lambda) + ad - bc = 0 $$ 此时我们得到一个多项式等式。将其展开以后,可得: $$ \lambda^2 -(a+d)\lambda + (ad - bc)= 0 $$ 可以注意到几点: * ''a + d'' 是矩阵 $A$ 对角元素之和,也就是 $T_r(A)$ * ''ad-bc'' 是矩阵 $A$ 的秩 因此二阶矩阵的 //Eigenvalue// 的通用计算公式可以写成: >$$\lambda^2 -T_r(A)\lambda + Det(A) = 0$$ 可见的是,该等式会有三种类型的根,也就是有三种不同类型的 $\lambda$: * 判别式大于 $0$,$\lambda$ 为实数 * 判别式小于 $0$,$\lambda$ 为复数 * 判别式等于 $0$,$\lambda$ 为**单一**实数。这种情况我们称 //Eigenvalue// is //Degenerate//。 ==求解特征值和特征向量:实例1== 现有如下矩阵 $A$: $$ \begin{bmatrix} 0 & 1\\ 1 &0 \end{bmatrix} $$ 求其 //Eigenvalue// 和 //Eigenvector//。\\ \\ 由 $Det(A + \lambda I) = 0$ 可得: \\ \[ \begin{align*} \begin{vmatrix} -\lambda & 1 \\ 1& -\lambda \end{vmatrix} & = 0 \\ \Rightarrow \lambda^2-1=0 \end{align*} \] \\ 可以得到 $\lambda = -1$ 和 $lambda = 1$ 两个特征值。每个值都有其对应的特征向量,因此需要分别讨论。令 $x$ 的分量为 $(v1, v2)$,由 $A + \lambda Ix = 0$: * 当 $\lambda = -1$ 时:\[ \begin{align*} \begin{pmatrix} 1&1 \\ 1 &1 \end{pmatrix}\begin{pmatrix} v_1\\v_2 \end{pmatrix} =\begin{pmatrix} 0\\0 \end{pmatrix} \\ \Rightarrow v_1 +v_2 = 0 \\ \Rightarrow v_1=-v_2 \end{align*}\] 可以看到只要满足上述关系的 $v_1,v_2$ 都可以作为特征值 $-1$ 的特征向量。在这里我们对其进行 normalize,因此:$$x=\begin{pmatrix} 1\\-1 \end{pmatrix} $$ * $\lambda = 1$ 时也按照上面的步骤重新来一遍即可。 上述的例子是对称矩阵(//symmetric matrix//)。对称矩阵的特征值都是实数特征值;特征向量的数量为 $n$ 个,且都为线性无关的向量。 ====Matrix Diagonalization==== 如果矩阵 $A$ 的 //Eigenvector// 都是线性无关的,那么该矩阵可以进行**对角化**(//Diagonalization//)。 ===对角化的推导=== 以二阶矩阵为例。假设有二阶矩阵 $A$,其特征值和特征向量为: \[ \begin{align*} \lambda_1,x_1 = \begin{pmatrix} x_{11}\\x_{21} \end{pmatrix} \\ \lambda_2,x_2 = \begin{pmatrix} x_{21}\\x_{22} \end{pmatrix} \end{align*} \] 根据特征化等式,有: $$ Ax_1=\lambda_1x_1\\ Ax_2=\lambda_1x_2 $$ 将上式以矩阵的乘积表示,有: \[ A\begin{pmatrix} x_{11} & x_{12}\\ x_{21}&x_{22} \end{pmatrix} = \begin{pmatrix} \lambda_1x_{11} & \lambda_2x_{12}\\ \lambda_1x_{21}&\lambda_2x_{22} \end{pmatrix} \] 等式的右边实际上可以写成如下的矩阵乘积: \[ \begin{pmatrix} \lambda_1x_{11} & \lambda_2x_{12}\\ \lambda_1x_{21}&\lambda_2x_{22} \end{pmatrix} =\begin{pmatrix} x_{11} & x_{12}\\ x_{21}&x_{22} \end{pmatrix} \begin{pmatrix} \color{Red}\lambda_1 & \color{Red}0\\ \color{Red}0&\color{Red}\lambda_2 \end{pmatrix} \] \\ 令特征向量组成的矩阵为 $S$,特征值组成的对角矩阵为 $\Lambda$;因此可以得到等式: >$$ AS=S\Lambda $$ 也就是说,矩阵与其特征向量矩阵的乘积,等于其特征向量矩阵与特征值组成的对角矩阵的乘积。该结论可以推广到 $n \times n$ 矩阵,前提是**特征向量矩阵中的向量线性无关**。 ==两个重要的关系== 由于 $S$ 是可逆的(向量线性无关),对 $AS=S\Lambda$ 两边同时乘以 $S^{-1}$ 可得: >\[ A=S\Lambda S^{-1} \] 对 $AS=S\Lambda$ 去掉右边的 $S$ 可得: >\[ \Lambda = S^{-1}AS \] 第一个等式被称为 $A$ 的 //Factorization//,第二个等式被称为 $A$ 的 //Diagonalization//。 ==Matrix Diagonalization workflow== 根据 $\Lambda = S^{-1}AS$,要想将 $A$ 对角化,首先要求出其特征化矩阵 $S$。之前的步骤为: * 根据 $Det(A-\lambda Ix) = 0$ 分别求出特征值与其对应的特征向量 * 将特征向量组成矩阵 $S$ * 之后只需求出 $S^{-1}$ 即可 求 $S^{-1}$ 的时候需要查看矩阵 $S$ 是否是 //Orthagonal Matrix//。如果是的话: * 将特征向量进行单位化 * 应用 //Orthagonal Matrix// 的特性 $S{-1} = S^T$,可以简化求 $S^{-1}$ 的过程。 ===Powers of a Matrix=== 如果矩阵 $A$ 的特征向量是线性无关的话,那么 $A^n$ 会非常好计算。首先,由 $A=S\Lambda S^{-1}$,那么可知: \\ \\ \[ \begin{align*} A^2 & = (S\Lambda S^{-1})(S\Lambda S^{-1}) \\ &=S\Lambda (S^{-1}S)\Lambda S^{-1} \\ &=S\Lambda I\Lambda S^{-1} \\ &=S\Lambda^2 S^{-1} \end{align*} \] 根据上面的推导,非常容易就可以得到 $A^n$ 的表达式: >$$ A^n=S\Lambda^n S^{-1} $$