2.9 Diagonalization and Powers of A 阅读笔记

矩阵对角化, 乘幂和一阶系统

reference的内容为唯一教程,接下来的内容仅为本人的课后感悟,对他人或无法起到任何指导作用。

Reference

  1. Course website: Diagonalization and Powers of A | Linear Algebra | Mathematics | MIT OpenCourseWare and Markov Matrices; Fourier Series | Linear Algebra | Mathematics | MIT OpenCourseWare
  2. Course video: 【完整版-麻省理工-线性代数】全34讲 配套教材_哔哩哔哩_bilibili and 【完整版-麻省理工-线性代数】全34讲 配套教材_哔哩哔哩_bilibili
  3. Course summary: Lecture 22: Diagonalization and powers of A (mit.edu) and Lecture 24: Markov matrices; Fourier series (mit.edu)

特征值和特征向量有什么用呢? 这一节说, 可以通过对矩阵 A 对角化用来求矩阵 A 的乘幂 (是有条件的!), 那乘幂又有什么用呢? 可以求连续或者离散的一阶系统的长期性质. 连续部分在下一讲, 线代这块讲的感觉不太严谨, 想要从零学可以从现代控制理论开始看, 大概在 \(e^{At}\) 的部分吧.

自认为连续系统, 傅里叶变换那块应该用不上了 (再也不学自控了), 所以 2.10 直接跳过. 此外我把 2.11 的 Markov Matrices 放到这里作为一阶系统的另一个例子了, 又把傅里叶级数跳过.

Diagonalizing a matrix \(\boldsymbol{A}\)

假设 n*n 阶方阵 A 具有 n 个独立的特征向量, x1, x2, ..., xn.

令 S = [x1, x2, ..., xn]

则 AS = [λ1x1, ..., λnxn]

相当于第一列乘以 λ1, 第二列乘以 λ2, ..., 需要用列变换, 矩阵右乘.

AS = \(\begin{bmatrix} \boldsymbol{x}_1 & \cdots & \boldsymbol{x}_n \end{bmatrix}\begin{bmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{bmatrix}\) = SΛ

由于 S 列线性无关, 因此可逆, 故有:

S-1ΛS = A, 又可以写作 SAS-1 = Λ

注意: 方阵 A 必须具有 n 个独立的特征向量!!!! 所以对角化有什么用呢?

Powers of \(\boldsymbol{A}\)

A2 的特征值和特征向量是什么?

A2x = AAx = Aλx = λAx = λλx = λ2x

所以特征值平方, 特征向量不变.

递推之后发现 Akx = λkx

于是有 \(A^k=(S\Lambda S^{-1})^k = S\Lambda (S^{-1}S)\Lambda (S^{-1}\cdots S)\Lambda S^{-1} = S\Lambda^kS^{-1}\)

\[A^k = S\Lambda^kS^{-1} \]

Independent Eigenvectors

要想要对角化, 则必须保证矩阵 \(A\) 有 n 个独立的特征向量.

  • \(\lambda\) 各不相同, 特征向量必定独立
  • \(\lambda\) 相同, 则不知道. 代数重数必须等于几何重数

比如单位矩阵 \(I\) 所有的特征值都为 1, 但是特征向量为单位向量, 相互独立.

又比如上三角矩阵 \(\begin{bmatrix} 1 & 1 \\ 0 & 1 \\\end{bmatrix}\) 所有的特征值为 1, 解 \((A-I)\boldsymbol{x}=\boldsymbol{0}\) 经过行变换变成 \(\begin{bmatrix} 0 & 1 \\ 0 & 0 \\\end{bmatrix} \boldsymbol{x}=\boldsymbol{0}\), 解只有一个独立的特征向量, 这时就不行了.

给出一个方法, 就是如果特征值有重根, 把这个数量叫做这个特征值的代数重数. 代入 \(A-\lambda I=\boldsymbol{0}\) 后零空间的维度 (独立非零解的个数) 叫做几何重数. 只有代数重数等于几何重数的情况下才能其可以对角化.

1st Order System: \(\boldsymbol{u}_{k+1}=A \boldsymbol{u}_k\)

满足 \(\boldsymbol{u}_{k+1}=A \boldsymbol{u}_k\) 的叫做一阶系统 (在自控里面学过的东西, 早忘了). 由递推式可得:

\[\boldsymbol{u}_k=A \boldsymbol{u}_{k-1}=A^2 \boldsymbol{u}_{k-2} = \cdots = A^k \boldsymbol{u}_{k-k} = A^k \boldsymbol{u}_0 \]

前面我们知道 \(A^k = S\Lambda^kS^{-1}\), 所以 \(\boldsymbol{u}_k=S\Lambda^kS^{-1}\boldsymbol{u}_0\)

由于 A 的特征向量独立, 因此可以用来张成 \(\mathbb{R}^n\), 所以在 \(\mathbb{R}^n\) 中的向量 \(\boldsymbol{u}_0\) 也可以用 A 的特征向量线性表示:

\[\boldsymbol{u}_0=c_1 \boldsymbol{x}_1 + \cdots + c_n \boldsymbol{x}_n = S \begin{bmatrix} c_1 \\ \vdots \\ c_n \end{bmatrix} = S \boldsymbol{c} \]

于是有

\[\boldsymbol{u}_k = S \Lambda^k \boldsymbol{c} \]

Example: Fibonacci Sequence

地球人都知道什么叫做斐波那契数列. 斐波那契数列就是满足 \(F_{k+2} = F_{k+1} + F_k\) 的数列, 一般会设初始值 \(F_0 = 0, F_1 = 1\). 然后求 \(F_n\).

这次我们想探究在 n 充分大的时候 \(F_n\) 的趋势是什么. 这便需要用到特征值和特征向量的知识了. 但是这个式子和上面的一阶系统不太一样啊. 我们可以用数感玄学发现这个式子可以转化为一阶系统:

\[\begin{cases} F_{k+2} &= &F_{k+1} &+ &F_k \\ F_{k+1} &= &F_{k+1} & & \end{cases} \Rightarrow \begin{bmatrix} F_{k+2} \\ F_{k+1} \end{bmatrix}=\begin{bmatrix} 1 & 1 \\ 1 & 0 \\\end{bmatrix} \begin{bmatrix} F_{k+1} \\ F_k \end{bmatrix} \Rightarrow \boldsymbol{u}_k=A \boldsymbol{u}_{k-1} \]

于是有:

\[\boldsymbol{u}_k = \begin{bmatrix} 1 & 1 \\ 1 & 0 \\\end{bmatrix}^k \begin{bmatrix} F_1 \\ F_0 \\\end{bmatrix} = S \Lambda^k \boldsymbol{c} \]

现在需要求 S, Λ, c, 很容易得到解在这个一元二次方程里面: $\lambda^2 - \lambda - 1 = 0 $, 解得 \(\lambda_1 = \displaystyle\frac{1 + \sqrt{5}}{2}\), \(\lambda_2 = \displaystyle\frac{1-\sqrt{5}}{2}\). 把特征值带回去求特征向量, 对矩阵做行变换:

\[\begin{bmatrix} 1-\lambda & 1 \\ 1 & -\lambda \\\end{bmatrix} \Rightarrow \begin{bmatrix} 1-\lambda & 1 \\ 1+\lambda(1-\lambda) & -\lambda+\lambda \\\end{bmatrix} \Rightarrow \begin{bmatrix} 1-\lambda & 1 \\ -(\lambda^2-\lambda-1) & 0 \\\end{bmatrix} \]

这里第二行第一列的表达式由上面的二次方程约束, 为 0, 于是解得 \(\bm{x} = \begin{bmatrix} 1 \\ \lambda-1 \\\end{bmatrix}\), 得到两个特征向量. 接下来只要解 \(\bm{u}_0 = S \bm{c}\) 即可. 然后你就会发现这个形式的 \(\bm{x}\)\(\bm{c}\) 会崩溃的.

大佬用数感蒙出来 \(\bm{x} = \begin{bmatrix} \lambda \\ 1 \\\end{bmatrix}\), 按理说咱们算的 x 一定和大佬算的共线啊, 这是怎么回事呢? 此时根据韦达定理, \(\lambda_1 + \lambda_2 = -\displaystyle\frac{b}{a} = 1\), 所以 \(\lambda - 1 = -\lambda'\) (另一个解), 此时 \(\bm{x} = \begin{bmatrix} 1 \\ \lambda-1 \\\end{bmatrix} = \begin{bmatrix} 1 \\ -\lambda' \\\end{bmatrix}\), 乘以常数 \(\lambda'\), 根据 \(\lambda_1\lambda_2 = \displaystyle\frac{c}{a} = -1\), 得 \(\begin{bmatrix} \lambda \\ -\lambda\lambda' \\\end{bmatrix} = \begin{bmatrix} \lambda \\ 1 \\\end{bmatrix}\)

接下来解 \(\begin{bmatrix} \lambda_1 & \lambda_2 \\ 1 & 1 \\\end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\\end{bmatrix} = \begin{bmatrix} 1 \\ 0 \\\end{bmatrix}\), 很容易解得 \(c_1 = \displaystyle\frac{1}{\sqrt{5}}\), \(c_2 = -\displaystyle\frac{1}{\sqrt{5}}\).

于是有 \(\bm{u}_k = \begin{bmatrix} \displaystyle\frac{1}{\sqrt{5}} \lambda_1^{k+1} - \displaystyle\frac{1}{\sqrt{5}}\lambda_2^{k+1}\\ \displaystyle\frac{1}{\sqrt{5}} \lambda_1^{k} - \displaystyle\frac{1}{\sqrt{5}}\lambda_2^{k} \\\end{bmatrix}\)

所以解得 \(F_k = \displaystyle\frac{\sqrt{5}}{5} \lambda_1^{k}-\displaystyle\frac{\sqrt{5}}{5} \lambda_2^{k}\).

由于 \(\left\vert \lambda_2 \right\vert < 1\), 所以 \(\displaystyle \lim_{k \to \infty}F_k = \lim_{k \to \infty}\displaystyle\frac{\sqrt{5}}{5} \lambda_1^k\).

发现原来特征值可以决定一阶系统得长期效应. \(\lambda = 1\) 会维持一个定值, 存在稳态误差. \(\left\vert \lambda \right\vert < 1\) 的部分最终会趋于零, 稳定. \(\left\vert \lambda \right\vert > 1\) 的部分最终会发散, 不稳定. (\(\lambda=-1\) 的情况应该是震荡了, 好像是临界稳定? 我记不住了, 自控还给老师了)

插个题外话, 涉及到矩阵乘幂, 可以令 \(\Theta(n)\) 复杂度的递推求解法变成 \(\Theta(\log n)\) 求解

Example: Markov Matrices

马尔可夫矩阵是一种转移概率矩阵, 举个例子, 假设在渣交大学要读很多年 (?), 大一的时候一届 1000 人, 这些人全都被忽悠得喜欢去自动化了 (CS 有的自动化都有, 自动化还能学 AI, 自动化还万金油, 资源多老师好...), 都不想去计算机, 可惜分流自动化只录 500 人. 此时 \(\bm{u}_0 = \begin{bmatrix} u_{cs} = 500 \\ u_{auto} = 500 \\\end{bmatrix}\).

然而过了一年自动化的同学们很快发现自己被骗了, 自动化跟 CS 也没沾什么边, 更跟 AI 没啥关系, 老师讲的也不咋地, 啥都学但除了自控和信号处理傅里叶变换别的连入门大概都不算, 而且卷的一批.

于是这 500 人有 20% 的人 (严谨地讲, 是这些人中有 20% 的概率) 开始讨厌自动化想去计算机, 还有 80% 觉得还行, 还能接着卷. 而计算机确实也挺坑的, 不仅要学 64 学时的金工实习, 学生们完全不知道有什么意义, 而且还要学三大电 (电路, 模电, 数电), 数据结构的学时还没自动化的多, 老师也很烂, 考试考背诵... 但毕竟全民 CS 嘛, 于是就只有 10% 的人讨厌计算机想去自动化, 90% 还喜欢计算机. (老二极管了, 非计算机就自动化 😅)

于是下一年喜欢 CS 和 Automation 的人数发生了变化:

\[\begin{bmatrix} u_{cs} \\ u_{auto} \\\end{bmatrix}_1 = \begin{bmatrix} 0.9 & 0.2 \\ 0.1 & 0.8 \\\end{bmatrix} \begin{bmatrix} u_{cs} \\ u_{auto} \\\end{bmatrix}_0 \]

再过一年, 加入还是按照上述的概率, 就要再左乘一个同样的方阵, n 年之后, 喜欢自动化的计算机的人数比例会怎么变化, 这和初始状态有关吗?

这不是又一个一阶系统嘛. \(A = \begin{bmatrix} 0.9 & 0.2 \\ 0.1 & 0.8 \\\end{bmatrix}\). 但是这个矩阵有点特点, 名字叫 Markov Matrix.

Definition & Properties

首先这个矩阵 A 的每个元素非负 \(a_{ij} \ge 0\), 因为是概率嘛. 而且列元素和为 1, 即 \(\displaystyle\sum_{i}^{} a_{ij} = 1\). 这便是 Markov 矩阵的定义.

而且 \(A^k\) 仍然是 Markov 矩阵. 其实直觉上确实是这样, 过了 k 年, \(\boldsymbol{u}_{k}=A^{k} \boldsymbol{u}_0\), 相对于最初, 仍然是最初的 500 人有 p 的概率过了 k 年后坚持初心, 则另外一定是 1-p 的概率讨厌自己的专业了, 不可能还剩一部分或多出来一部分人, 更不能出现负数. 手算一下很容易验证.

而且其特征值必有 1, 其他特征值无 \(\left\vert \lambda \right\vert > 1\). 为什么呢? 因为 \(A^k\) 仍然是 Markov 矩阵, 因此绝对不能发散, 就没有 \(\left\vert \lambda \right\vert > 1\) 项. 此外 \(A-I\) 会令每列元素和从 1 变为 0, 把上面每一行都加到最后一行, 就会出现全 0 行, 矩阵奇异, 行列式为 0. 因此特征值一定有 1.

Calculation

同样按照一阶系统, \(\bm{u}_k = S \Lambda^k \bm{c}\), 还是要求特征值, 特征向量和 \(\bm{c}\).

根据 Markov 矩阵的性质, \(\lambda_1 = 1\), 因为 \(\lambda_1 + \lambda_2 = 0.9 + 0.8 = 1.7\), \(\lambda_2 = 0.7\). 求得 \(\bm{x}_1 = (2, 1)\), \(\bm{x}_2 = (1, -1)\).

继续求 \(\bm{c}\), 需要解

\[\begin{cases} 2c_1 &+ &c_2 &= &500 \\ c_1 &- &c_2 &= &500 \end{cases} \]

解得 \(\bm{c} = (\displaystyle\frac{1000}{3}, -\displaystyle\frac{500}{3})\), 于是有

\[\begin{matrix} u_{cs} &= &c_1 \cdot 2 &+ &c_2 \cdot (0.7)^k &\rightarrow &2c_1\\u_{auto} &= &c_1 \cdot 1 &- &c_2 \cdot (0.7)^k &\rightarrow & c_1 \end{matrix} \]

最终喜欢计算机和自动化的"人数"比例为 2:1, 而总人数是 1000, 因此无论最初多少人喜欢计算机和自动化, 最后都会形成同样的趋势. 也就是说上面的二元方程只要保证 b 的和为 1000, \(c_1\) 永远为 \(\displaystyle\frac{1000}{3}\). (严谨地说, 并不是人数, 人数是不可能出现分数的. 上面说过, 其实是概率. 那么这里应该是人数的期望)

posted @ 2022-04-14 16:24  WIND_LIKE  阅读(47)  评论(0编辑  收藏  举报
Live2D