Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • 线性代数

    • 线性代数知识点总结
    • 方程组的几何解释
    • 矩阵消元
    • 乘法和逆矩阵
    • 矩阵的LU分解
    • 转换、置换、向量空间R
    • 列空间和零空间
    • 求解Ax=0主变量——特解
    • 求解Ax=b 可解性和解的结构
    • 线性相关性、基、维数
    • 四个基本子空间
    • 矩阵空间、秩1矩阵和小世界图
    • 图和网络
    • 正交向量与子空间
    • 子空间投影
    • 投影矩阵和最小二乘
    • 正交矩阵和Gram-Schmidt正交化法
    • 行列式及其性质
    • 行列式公式和代数余子式
    • 克拉默法则、逆矩阵、体积
    • 特征值和特征向量
    • 对角化和$A$的幂
      • 对角化矩阵
      • 求$u{k+1}=Auk$
    • 微分方程
    • 马尔科夫矩阵、傅里叶级数
    • 对称矩阵及正定性
    • 对称矩阵及正定性
    • 复数矩阵和快速傅里叶变换
    • 正定矩阵和最小值
    • 相似矩阵和若尔当形
    • 奇异值分解
    • 线性变换及对应矩阵
    • 基变换和图像压缩
    • 左右逆和伪逆
  • 概率论与数理统计

  • 矩阵

  • 分布

  • 数学笔记
  • 线性代数
Geeks_Z
2024-05-01
目录

对角化和$A$的幂

对角化矩阵

上一讲我们提到关键方程Ax=λx,通过det(A−λI)=0得到特征向量λ,再带回关键方程算出特征向量x。

在得到特征值与特征向量后,该如何使用它们?我们可以利用特征向量来对角化给定矩阵。

有矩阵A,它的特征向量为x1,x2,⋯,xn,使用特征向量作为列向量组成一个矩阵S=[x1x2⋯xn],即特征向量矩阵, 再使用公式$$S^{-1}AS=\Lambda\tag{1}$$将A对角化。注意到公式中有S−1,也就是说特征向量矩阵S必须是可逆的,于是我们需要n个线性无关的特征向量。

现在,假设A有n个线性无关的特征向量,将它们按列组成特征向量矩阵S,则AS=A[x1x2⋯xn],当我们分开做矩阵与每一列相乘的运算时,易看出Ax1就是矩阵与自己的特征向量相乘,其结果应该等于λ1x1。那么AS=[(λ1x1)(λ2x2)⋯(λnxn)]。可以进一步化简原式,使用右乘向量按列操作矩阵的方法,将特征值从矩阵中提出来,得到[x1x2⋯xn][λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λn]=SΛ。

于是我们看到,从AS出发,得到了SΛ,特征向量矩阵又一次出现了,后面接着的是一个对角矩阵,即特征值矩阵。这样,再继续左乘S−1就得到了公式(1)。当然,所以运算的前提条件是特征向量矩阵S可逆,即矩阵A有n个线性无关的特征向量。这个式子还要另一种写法,A=SΛS−1。

我们来看如何应用这个公式,比如说要计算A2。

  • 先从Ax=λx开始,如果两边同乘以A,有A2x=λAx=λ2x,于是得出结论,对于矩阵A2,其特征值也会取平方,而特征向量不变。
  • 再从A=SΛS−1开始推导,则有A2=SΛS−1SΛS−1=SΛ2S−1。同样得到特征值取平方,特征向量不变。

两种方法描述的是同一个现象,即对于矩阵幂运算A2,其特征向量不变,而特征值做同样的幂运算。对角矩阵Λ2=[λ120⋯00λ22⋯0⋮⋮⋱⋮00⋯λn2]。

特征值和特征向量给我们了一个深入理解矩阵幂运算的方法,Ak=SΛkS−1。

再来看一个矩阵幂运算的应用:如果k→∞,则Ak→0(趋于稳定)的条件是什么?从SΛkS−1易得,|λi|<1。再次强调,所有运算的前提是矩阵A存在n个线性无关的特征向量。如果没有n个线性无关的特征向量,则矩阵就不能对角化。

关于矩阵可对角化的条件:

  • 如果一个矩阵有n个互不相同的特征值(即没有重复的特征值),则该矩阵具有n个线性无关的特征向量,因此该矩阵可对角化。

  • 如果一个矩阵的特征值存在重复值,则该矩阵可能具有n个线性无关的特征向量。比如取10阶单位矩阵,I10具有10个相同的特征值1,但是单位矩阵的特征向量并不短缺,每个向量都可以作为单位矩阵的特征向量,我们很容易得到10个线性无关的特征向量。当然这里例子中的I10的本来就是对角矩阵,它的特征值直接写在矩阵中,即对角线元素。

    同样的,如果是三角矩阵,特征值也写在对角线上,但是这种情况我们可能会遇到麻烦。矩阵A=[2102],计算行列式值det(A−λI)=|2−λ102−λ|=(2−λ)2=0,所以特征值为λ1=λ2=2,带回Ax=λx得到计算[0100]的零空间,我们发现x1=x2=[10],代数重度(algebraic multiplicity,计算特征值重复次数时,就用代数重度,就是它作为多项式根的次数,这里的多项式就是(2−λ)2)为2,这个矩阵无法对角化。这就是上一讲的退化矩阵。

我们不打算深入研究有重复特征值的情形。

求uk+1=Auk

从u1=Au0开始,u2=A2u0,所有uk=Aku0。下一讲涉及微分方程(differential equation),会有求导的内容,本讲先引入简单的差分方程(difference equation)。本例是一个一阶差分方程组(first order system)。

要解此方程,需要将u0展开为矩阵A特征向量的线性组合,即u0=c1x1+c2x2+⋯+cnxn=[x1x2⋯xn][c1c2⋮cn]=Sc。于是Au0=c1Ax1+c2Ax2+⋯+cnAxn=c1λ1x1+c2λ2x2+⋯+cnλnxn。继续化简原式,Au0=[x1x2⋯xn][λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λn][c1c2⋮cn]=SΛc。用矩阵的方式同样可以得到该式:Au0=SΛS−1u0=SΛS−1Sc=SΛc。

那么如果我们要求A100u0,则只需要将λ变为λ100,而系数c与特征向量x均不变。

当我们真的要计算A100u0时,就可以使用SΛ100c=c1λ1100x1+c2λ2100x2+⋯+cnλn100xn。

接下来看一个斐波那契数列(Fibonacci sequence)的例子:

0,1,1,2,3,5,8,13,⋯,F100=?,我们要求第一百项的公式,并观察这个数列是如何增长的。可以想象这个数列并不是稳定数列,因此无论如何该矩阵的特征值并不都小于一,这样才能保持增长。而他的增长速度,则有特征值来决定。

已知Fk+2=Fk1+Fk,但这不是uk+1=Auk的形式,而且我们只要一个方程,而不是方程组,同时这是一个二阶差分方程(就像含有二阶导数的微分方程,希望能够化简为一阶倒数,也就是一阶差分)。

使用一个小技巧,令uk=[Fk+1Fk],再追加一个方程组成方程组:{Fk+2=Fk+1+FkFk+1=Fk+1,再把方程组用矩阵表达得到[Fk+2Fk+1]=[1110][Fk+1Fk],于是我们得到了uk+1=Auk,A=[1110]。我们把二阶标量方程(second-order scalar problem)转化为一阶向量方程组(first-order system)。

我们的矩阵A=[1110]是一个对称矩阵,所以它的特征值将会是实数,且他的特征向量将会互相正交。因为是二阶,我们可以直接利用迹与行列式解方程组{λ1+λ2=1λ1⋅λ2=−1。在求解之前,我们先写出一般解法并观察|A−λI|=|1−λ11−λ|=λ2−λ−1=0,与前面斐波那契数列的递归式Fk+2=Fk+1+Fk→Fk+2−Fk+1−Fk=0比较,我们发现这两个式子在项数与幂次上非常相近。

  • 用求根公式解特征值得{λ1=12(1+5)≈1.618λ2=12(1−5)≈−0.618,得到两个不同的特征值,一定会有两个线性无关的特征向量,则该矩阵可以被对角化。

我们先来观察这个数列是如何增长的,数列增长由什么来控制?——特征值。哪一个特征值起决定性作用?——较大的一个。

F100=c1(1+52)100+c2(1−52)100≈c1(1+52)100,由于−0.618在幂增长中趋近于0,所以近似的忽略该项,剩下较大的项,我们可以说数量增长的速度大约是1.618。可以看出,这种问题与求解Ax=b不同,这是一个动态的问题,A的幂在不停的增长,而问题的关键就是这些特征值。

  • 继续求解特征向量,A−λI=[1−λ111−λ],因为有根式且矩阵只有二阶,我们直接观察[1−λ111−λ][??]=0,由于λ2−λ−1=0,则其特征向量为[λ1],即x1=[λ11],x2=[λ21]。

最后,计算初始项u0=[F1F0]=[10],现在将初始项用特征向量表示出来[10]=c1x1+c2x2,计算系数得c1=55,c2=−55。

来回顾整个问题,对于动态增长的一阶方程组,初始向量是u0,关键在于确定A的特征值及特征向量。特征值将决定增长的趋势,发散至无穷还是收敛于某个值。接下来需要找到一个展开式,把u0展开成特征向量的线性组合。

  • 再下来就是套用公式,即A的k次方表达式Ak=SΛkS−1,则有u99=Au98=⋯=A99u0=SΛ99S−1Sc=SΛ99c,代入特征值、特征向量得u99=[F100F99]=[1+521−5211][(1+52)9900(1−52)99][55−55]=[c1λ1100+c2λ2100c1λ199+c2λ299],最终结果为F100=c1λ1100+c2λ2100。

  • 原式的通解为uk=c1λkx1+c2λkx2。

上次更新: 2025/06/25, 11:25:50
特征值和特征向量
微分方程

← 特征值和特征向量 微分方程→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式