线性代数之——对角化和 A 的幂
利用特征向量的属性,矩阵 \(A\) 可以变成一个对角化矩阵 \(\Lambda\)。
1. 对角化
假设一个 \(n×n\) 的矩阵 \(A\) 有 \(n\) 个线性不相关的特征向量 \(x_1,\cdots,x_n\) ,把它们作为特征向量矩阵 \(S\) 的列,那么就有 \(S^{-1}AS=\Lambda\)。

矩阵 \(A\) 被对角化了,因为所有的特征向量位于矩阵 \(\Lambda\)的对角线上。
证明过程也很简单,首先我们计算 \(AS\)。

一个技巧就是将 \(AS\) 分解成 \(S\Lambda\)。

所以我们有
\[AS=S\Lambda \quad S^{-1}AS=\Lambda \quad A=S\Lambda S^{-1}\]
矩阵 \(S\) 有逆矩阵,因为我们假设它的列是 \(n\) 个线性不相关的特征向量。如果没有 \(n\) 个线性不相关的特征向量,我们就不能进行对角化。

由 \(A=S\Lambda S^{-1}\) 可得,\(A^2=S\Lambda S^{-1}S\Lambda S^{-1} = S\Lambda^2 S^{-1}\),平方后我们得到\(S\) 中相同的特征向量和 \(\Lambda\) 中平方的特征值。同理,我们可以得到 \(k\) 次方为 \(A^k=S\Lambda^k S^{-1}\)。

当 \(k=1\) 时,我们得到 \(A\).当 \(k=0\) 时,我们得到 \(A^0=I\)。当 \(k=-1\) 时,我们得到 \(A^{-1}\)。
再继续往下进行之前,有几点需要我们注意。
- 如果特征值 \(\lambda_1,\cdots,\lambda_n\) 全部都不相同,那么自动地特征向量 \(x_1,\cdots,x_n\) 就是线性不相关的。任意没有重复特征值的矩阵都可以被对角化。
证明:
假设 \(c_1x_1 + \cdots+c_nx_n = 0\),我们乘以矩阵 \(A\),有
\[\tag{1} c_1\lambda_1x_1 + \cdots+c_n\lambda_nx_n = 0\]
然后,乘以 \(\lambda_{n}\) 并减去上面的式子 (1),有
\[\tag{2} c_1\lambda_{n}x_1 + \cdots+c_n\lambda_{n}x_n = 0\]
\[\tag{3} c_1(\lambda_{n}-\lambda_1)x_1 + \cdots+c_{n-1}(\lambda_{n}-\lambda_1)x_{n-1} = 0\]
这会消去 \(x_n\),我们继续用 (3) 式分别乘以 \(A\) 和 \(\lambda_{n-1}\),再相减, \(x_{n-1}\) 就也被消去了。一直重复这个过程,最后,我们就只剩下了 \(x_1\)。
\[\tag{4} c_1(\lambda_{n}-\lambda_1)(\lambda_{n-1}-\lambda_1)\cdots(\lambda_{2}-\lambda_1)x_1= 0\]
因为特征值互不相同,因此有 \(c_1 = 0\),同理我们可得所有的系数都为 0,也即零空间只有零向量,所以这些特征向量是线性不相关的。
特征向量乘以任意非零常数后,\(Ax = \lambda x\) 仍然成立。
特征向量在 \(S\) 中的顺序和特征值在 \(\Lambda\) 中的顺序是一样的,也就是特征向量和特征值必须一一对应。
在上面的例子中,如果我们互换特征向量的顺序,那么 \(\Lambda\) 中特征值的顺序也要相应改变。

- 一些矩阵没有足够的特征向量,因此不能被对角化,特别是注意有重复特征值的情况。

而且要注意,可逆性和可对角化性之间没有联系。可逆性和是否存在零特征值有关,而可对角化性和是否有足够的特征向量有关。
2. 斐波那契数列
斐波那契序列满足 \(F_{k+2} = F_{k+1} + F_{k}\)。为了找到 \(F_{100}\),我们可以从 \(F_{2}\) 开始,每次求出一个新的值,直至得到 \(F_{100}\)。线性代数则给出了一个更好的方法,我们将之转化为 \(u_{k+1}=Au_k\) 的问题。

每一次我们都乘以矩阵 \(A\),100 次后我们就得到了 \(u_{100}=A^{100}u_0\)。

这样,我们就可以利用特征值来求解了。

求解特征方程,我们可以得到两个特征值分别为:

进而得到两个特征向量分别为:
\[x_1 = \begin{bmatrix}\lambda_1\\ 1\end{bmatrix} \quad x_2 = \begin{bmatrix}\lambda_2\\ 1\end{bmatrix}\]
然后我们将 \(u_0\) 表示为特征向量的线性组合。

那么就有
\[u_{100}=A^{100}u_0 = \frac{1}{\lambda_1 - \lambda_2}A^{100}(x_1-x_2) = \frac{\lambda_1^{100}x_1 - \lambda_2^{100}x_2}{\lambda_1 - \lambda_2}\]

上式中的第二项底数小于 0.5,因此会渐渐趋向于 0,也就是说随着 \(n\) 增大逐渐只有第一项有效。
\[\frac{F_{101}}{F_{100}} \approx \frac{1+\sqrt{5}}{2}\approx 1.618\]
这个数字就是我们众所周知的黄金比例。
3. \(A\) 的幂
斐波那契数列是一个典型的差分方程,每一步我们都乘以矩阵 \(A\)。下面我们来看一下对角化是怎么来快速计算 \(A^k\) 的。
\[A^k u_0= (S\Lambda S^{-1})\cdots(S\Lambda S^{-1})u_0 = S\Lambda^{k} S^{-1}u_0\]
然后我们将 \(u_0\) 表示为特征向量的线性组合
\[u_0 = c_1x_1+\cdots+c_nx_n \to u_0=Sc \to c = S^{-1}u_0\]
- \[Au_0 = c_1Ax_1+\cdots+c_nAx_n =c_1\lambda_1x_1+\cdots+c_n\lambda_nx_n\]
\[A^ku_0 = c_1\lambda_1^kx_1+\cdots+c_n\lambda_n^kx_n = S\Lambda^kc\]

4. 不可对角化矩阵
特征值 \(\lambda\) 可能会有重复情况,这时候我们想知道它的重复度(multiplicity),有两种方法来计量。
- 几何重数(Geometric Multiplicity)与特征值 \(\lambda\) 对应的线性不相关的特征向量的个数
- 代数重数(Algebraic Multiplicity)特征值 \(\lambda\) 的重复次数,也就是 \(det(A-\lambda I)\) 的重根数
几何重数小于等于代数重数。

几何重数小于代数重数说明特征向量数量不够,也就是说 \(A\) 不能被对角化。
5. \(AB\) 和 \(A+B\) 的特征值
让我们来猜一猜 \(AB\) 的特征值是多少?
你可能会说是它们各自特征值的积。
\[ABx = A\beta x = \beta Ax=\beta\lambda x\]
但是,通常情况下 \(A\) 和 \(B\) 的特征向量是不相同的,因此上面的证明是错误的。同样,两个矩阵各自特征值的和也通常不是两个矩阵和的特征值。
但是,如果 \(x\) 同时是 \(A\) 和 \(B\) 的特征向量。那么有
\[ABx = \lambda\beta x = BAx \to AB = BA\]
因此,如果 \(A\) 和 \(B\) 都可以被对角化,它们拥有相同的特征向量当且仅当 \(AB=BA\)。
获取更多精彩,请关注「seniusen」!

线性代数之——对角化和 A 的幂的更多相关文章
- MIT线性代数:22.对角化和A的幂
- 基于mindwave脑电波进行疲劳检测算法的设计(4)
上一次的实验做到可以从pc端读取到MindWave传输过来的脑电波原始数据了. 我是先定义一个结构体,该结构体对应保存所有能从硬件中取到的原始数据. struct FD_DATA { int batt ...
- 【模板整合计划】NB数论
[模板整合计划]NB数论 一:[质数] 1.[暴力判] 素数.コンテスト.素数 \(\text{[AT807]}\) #include<cstdio> #include<cmath& ...
- Solution -「CF 923E」Perpetual Subtraction
\(\mathcal{Description}\) Link. 有一个整数 \(x\in[0,n]\),初始时以 \(p_i\) 的概率取值 \(i\).进行 \(m\) 轮变换,每次均匀随机 ...
- 【线性代数】6-2:对角化(Diagonalizing a Matrix)
title: [线性代数]6-2:对角化(Diagonalizing a Matrix) categories: Mathematic Linear Algebra keywords: Eigenva ...
- Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)
手动博客搬家: 本文发表于20181212 09:37:21, 原地址https://blog.csdn.net/suncongbo/article/details/84962727 呜啊怎么又是数学 ...
- 【线性代数】7-3:对角化和伪逆(Diagonalization and the Pseudoinverse)
title: [线性代数]7-3:对角化和伪逆(Diagonalization and the Pseudoinverse) categories: Mathematic Linear Algebra ...
- 线性代数笔记24——微分方程和exp(At)
原文:https://mp.weixin.qq.com/s/COpYKxQDMhqJRuMK2raMKQ 微分方程指含有未知函数及其导数的关系式,解微分方程就是找出未知函数.未知函数是一元函数的,叫常 ...
- 2019暑期金华集训 Day2 线性代数
自闭集训 Day2 线性代数 高斯消元 做实数时,需要找绝对值最大的作为主元,以获取更高精度. 在欧几里得环(简单例子是模合数)意义下也是对的.比如模合数意义下可以使用辗转相除法消元. 欧几里得环:对 ...
随机推荐
- 关于H5 移动端css 文本超出时省略号 失效的问题
之前写代码的时候遇到一个问题,就是用了下面这段css代码来让文字超出范围隐藏并显示省略号. overflow: hidden; text-overflow: ellipsis; display: -w ...
- Oracle恢复误删数据
1.先查出被删除的时间点: select * from flashback_transaction_query where table_name='表名'; 2.根据时间点恢复数据: insert i ...
- OC之block 和协议
一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. BOLCK和函数的相似性:(1)可以保存代码(2 ...
- 给出一个整数,将这个整数中每位上的数字进行反转(JavaScript编程)
一.问题描述:给出一个整数,将这个整数中每位上的数字进行反转.示例:输入:123,输出321:输入-123,输出-321:输入120,输出-21 二.问题分析与解决: 需要将给出的整数反转,注意示例中 ...
- BufPay.com 个人收款接口 接入步骤
作为独立开发者产品需要收款是非常麻烦的,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好. 看到 「BufPay.com 个人收款」 这个收款工具,挺有意思的.原理是监 ...
- shell习题第1题:每日一文件
[题目要求] 请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件 例如生成的文件为2019-04-25.log,并且把磁盘使用情况写入到这个文件中 不用考虑cron,仅仅写脚本即可 [核心要 ...
- Python 3 字符串转MD5形式
Python 字符串转MD5: def getStrAsMD5(parmStr): #1.参数必须是utf8 #2.python3所有字符都是unicode形式,已经不存在unicode关键字 #3. ...
- shell脚本实现目录的“5S”作业
shell,又称为命令解释器.首先它是一个软件,有很多个版本,现在最流行的为bash,它作为用户和内核沟通的中间桥梁,在系统中起着举足轻重的作用 shell脚本,是一个以.sh结尾的文件,里面是诸如l ...
- TinyMCE插件:FileManager [4.x-6.x] 配置及BUG处理
FileManager最新版已升级到9.x,9.x新增了对文件的批量处理,但仍然有部分同学在继续使用6.x,这里大叔整理了一份自己在配置6.x时,遇到的问题和解决方案. 安装 下载安装包解压后,在根目 ...
- Lavavel5.5源代码 - RedisQueue是怎么实现
队列的基本功能: 1.立即执行:yes 2.延迟执行:yes 3.保证至少执行一次:yes 4.必须执行且最多执行一次:no 用到的数据结构: list.Sorted sets 延迟执行的机制: 1. ...