【线性代数】矩阵的特征值分解(对角化、谱分解)

article/2025/9/1 18:32:51

目录

  • 1 前言
  • 2 矩阵的特征值分解
    • 2.1 从定义的角度理解
    • 2.2 从变换的角度理解(来自参考文献[3])
  • 3 对角矩阵(补充)
    • 3.1 对角矩阵的定义
    • 3.2 对角矩阵线性变换的几何意义
  • 4 矩阵对角化
  • 5 相似矩阵与特征值
  • 6 参考文献

1 前言

   矩阵的特征值分解又可以称作矩阵的对角化、谱分解。目的是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法(百度百科)。其在机器学习和图机器学习中有非常广泛的应用。本节主要介绍矩阵的特征分解的解法,意义,实际应用。除此之外,矩阵的特征值分解与矩阵的特征值和特征向量有关联,相关内容可以参考【线性代数】理解特征值和特征向量。
  内容为自己的学习总结,其中多有借鉴他人的地方,最后一并给出链接。如果相关内容影响了相关作者,请私信联系,我将会加以修改。

2 矩阵的特征值分解

  矩阵的特征值分解是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。

2.1 从定义的角度理解

  从特征值分解的定义,可以了解到矩阵的特征值分解就是将矩阵的特征值和特征向量分开。从特征值和特征向量的定义: A x = λ x Ax=\lambda x Ax=λx,可以明确 A 、 λ 、 x A、\lambda 、x Aλx三者之间建立了一种关系。但是仅用单独的一个 λ 、 x \lambda、x λx是无法表示矩阵 A A A,因为这个式子不是完备的。对于一个秩为 m m m的矩阵 A A A ,应该存在 m m m个这样的式子,完备式子应该是:
A ( x 1 , x 2 , … , x m ) = ( λ 1 x 1 , λ 2 x 2 , … , λ m x m ) = ( x 1 , x 2 , … , x m ) [ λ 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ λ m ] 上面的式子可以写作       A X = X Λ A\left(x_{1}, x_{2}, \ldots, x_{m}\right)=\left(\lambda_{1} x_{1}, \lambda_{2} x_{2}, \ldots, \lambda_{m} x_{m}\right)\\[8mm] =\left(x_{1}, x_{2}, \ldots, x_{m}\right)\left[\begin{array}{ccc} \lambda_{1} & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & \lambda_{m} \end{array}\right] \\[10mm] 上面的式子可以写作~~~~~~A X=X \Lambda\\ A(x1,x2,,xm)=(λ1x1,λ2x2,,λmxm)=(x1,x2,,xm) λ100λm 上面的式子可以写作      AX=XΛ
进一步的做变换    A = X Λ X − 1 进一步的做变换~~~A=X \Lambda X^{-1} 进一步的做变换   A=XΛX1
这种形式就可以看成矩阵 A A A被分解了。

2.2 从变换的角度理解(来自参考文献[3])

  从运动变换的角度理解,矩阵乘以向量可以分三步:

  • 首先将这个向量使用特征向量组成的正交基向量进行分解
  • 然后目标向量在每个特征向量方向上的分量分别进行拉伸操作
  • 对所有特征向量方向上的拉伸结果进行合并

举个例子:
在这里插入图片描述
如果使用这个矩阵对向量进行变换操作,我们会发现
在这里插入图片描述
特征值分解其实就是将矩阵的变换操作分解了,将旋转与拉伸分离开来,最后达到上述意义的效果。

  为什么说方阵才能进行特征值分解:
  这是因为只有方阵或者说实对称方阵才能够在矩阵空间提取出符合完全正交基的特征向量,这样对于任何一个目标向量进行变换时,才能使用特征向量对目标向量进行完全表示。如果不能提取出满足条件的特征向量,则特征值分解的公式是不成立的!
  对于不能进行特征值分解的时,可以采用奇异值分解。

特征值和特征向量是为了研究向量在经过线性变换后的方向不变性而提出的

  • 一个矩阵和该矩阵的非特征向量相乘是对该向量的旋转变换
  • 一个矩阵和该矩阵的特征向量相乘是对该向量的伸缩变换,其中伸缩程度取决于特征值大小

3 对角矩阵(补充)

3.1 对角矩阵的定义

  对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为 0 0 0的矩阵,写作 d i a g ( a 1 , a 2 , . . . , a n ) diag(a_1, ~a_2,...,~a_n) diag(a1, a2,..., an)。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为1的对角矩阵称为单位矩阵。对角矩阵的运算包括和、差运算、数乘运算、同阶对角阵的乘积运算,且结果仍为对角阵。

3.2 对角矩阵线性变换的几何意义

  对角矩阵是对基向量进行拉伸,也就是我们常说的坐标轴单位向量进行拉伸(收缩),从几何直观上来讲,只有坐标轴上的向量还在原来的方向上。(可以参考【线性代数】理解特征值和特征向量中给出的例子)。

4 矩阵对角化

5 相似矩阵与特征值

  相似矩阵定义:设 A A A B B B都是 n n n阶矩阵,若有可逆矩阵 P P P, 使 P − 1 A P = B P^{-1}AP=B P1AP=B ,则称 B B B A A A的相似矩阵。
  物理意义 :相似矩阵的几何意义是同一个线性变换不同的基下的表达形式。

  相似矩阵的性质:

  • 相似矩阵有相同的行列式
  • 有相同的秩、相同的迹、相同的特征方程、特征值、相同的Jondan标准型、相同的特征多项式、相同的最小多项式

  这些统称为相似不变量,“相似矩阵有若干相似不变量”,特征值是最重要的相似不变量,利用这个相似不变量可以方便的得出上面所有的不变量。

  不变量的几何意义:

  • 相同行列式:相似矩阵的线性映射,膨胀系数不变
  • 相同的秩:相似矩阵的线性映射,对空间的维数的影响一致
  • 相同的特征方程:相似矩阵的线性映射,对向量的主变化方向和变化速度影响一致

6 参考文献

[1]特征值(eigenvalue)特征向量(eigenvector)特征值分解(eigenvalue decomposition)
[2]一文解释 矩阵特征分解
[3]矩阵的特征值分解
[4]Diagonalization 矩阵对角化
[5]实对称矩阵相同特征值对应的特征向量正交吗?


http://chatgpt.dhexx.cn/article/LRcBVeQ6.shtml

相关文章

矩阵的谱分解 (详细推导步骤~~~特征值分解特征向量

所谓矩阵的分解,就是将一个矩阵写成结构比较简单的或性质比较熟悉的另一些矩阵的乘积。矩阵的分解方法有很多种,包括三角分解、QR(正交三角)分解、最大秩分解、奇异值分解和谱分解,所有这些分解在数值代数和最优化问题…

c语言-gotoxy实现先全部输出再做全部输入操作

需要用到的头文件&#xff1a; #include<windows.h> #include <iostream>代码&#xff1a; gotoxy(a,b)光标控制函数 a为行&#xff0c;b为列&#xff0c;坐标原点在左上角向右是行正方向&#xff0c;向下为列正方向 中文符号汉字在列方向为2个空间&#xff0c;英…

C语言 时钟模拟(gotoxy函数的运用)

时钟模拟&#xff0c;运用gotoxy()函数和Sleep()函数。 效果&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> #define XHOUR 40 //打印小时的起始x坐标&#xff0c;即a&#xff0c;g交点横坐标 #define YHOUR 27 #define HOUR 1 …

一些神奇的小函数(一)——gotoxy篇

一、gotoxy 1.作用&#xff08;1&#xff09;控制输出的位置① 样例 2.实现&#xff08;1&#xff09;c版 1.作用 &#xff08;1&#xff09;控制输出的位置 ① 样例 : 在代码中写上一句gotoxy(1,1)&#xff0c;然后cout<<“噢&#xff01;这个函数真有用&#xff01;…

Matlab sim函数的用法

一、引言 最近用Simulink做仿真的时候&#xff0c;需要从m文件里运行Simulink模型&#xff0c;而且需要在m文件中传递一些参数到Simulink模型&#xff0c;也需要将Simulink模型的运行结果发送回m文件&#xff0c;所以要用到sim函数。 查看了sim函数的help文档&#xff0c;并百…

CUDA10.0官方文档的翻译与学习之硬件实现

背景 在之前的文章中&#xff0c;我翻译了cuda10.0官方文档的前三章&#xff0c;这次就来翻译第四章——硬件实现 英伟达GPU架构通过由多线程的流式多处理器(SM)组成的可变数组编译&#xff0c;当一个主机CPU上的cuda程序调用了一个核网格&#xff0c;网格内的线程块将会被枚…

近距离看GPU计算(3)

在先前文章《近距离看GPU计算&#xff08;2&#xff09;》中&#xff0c;我们谈到现代GPU发展出SIMT(Single Instruction Multiple Thread)的执行结构&#xff0c;硬件线程池的线程们有相对独立的运行上下文&#xff0c;以Warp为单位分发到一组处理单元按SIMD的模式运行。这些W…

CPU线程与超线程技术

文章目录 一、CPU线程与OS线程1. CPU中的thread2. OS中的thread 二、HT/SMT技术1. 定义2. 原理3. 带来的问题 三、SIMT与SIMD1. SIMT2. SIMD3. 对比 一、CPU线程与OS线程 1. CPU中的thread CPU中的线程来自同步多线程&#xff08;SMT&#xff0c;Simultaneous Multi-threadin…

GPU 软硬件基本概念

术语: single instruction, multiple thread (SIMT)&#xff1a; a single instruction is executed on several function units in parallel GPU的硬件结构中与CUDA相关的几个概念&#xff1a;thread block grid warp sp sm streaming processor(sp): 最基本的处理单元&…

GPU异构计算基础知识

CUDA Toolkit Documentation (nvidia.com) host CPU和内存 (host memory)Device GPU和显存 (device memory) SIMT模型与SIMD模型的区别 SIMD(Single Instruction Multi Data&#xff0c;单指令多数据)模型要求同一个向量中的所有元素要在统一的同步组中一起执行&#xff0c;…

GPU硬件架构以及运行机制笔记

本文是对向往大神的文章的一个笔记。 想阅读原文章移步博客园搜索向往 原文章比较长&#xff0c;这是一个精简和自己的一些理解 这篇文章要带着下面的问题去看 1、GPU是如何与CPU协调工作的&#xff1f; 2、GPU也有缓存机制吗&#xff1f;有几层&#xff1f;它们的速度差异多…

4. CUDA编程手册中文版---硬件实现

第四章 硬件实现 更多精彩内容&#xff0c;请扫描下方二维码或者访问https://developer.nvidia.com/zh-cn/developer-program 来加入NVIDIA开发者计划 NVIDIA GPU 架构围绕可扩展的多线程流式多处理器 (SM: Streaming Multiprocessors) 阵列构建。当主机 CPU 上的 CUDA 程序调…

SMIT介绍

System Management Interface Tool(系统管理界面工具) 软件安装与维护&#xff08;Sofeware Installation and Maintenance&#xff09; 软件许可管理&#xff08;Sofeware License Management&#xff09; 版本管理&#xff08;Manage Editions&#xff09; 设备管理&#…

GPU硬件结构和编程模型(源于nvidia的CUDA文档)

GPU的硬件结构 GPU通过一个可扩展的多线程流式多处理器(SMs)构建。一个multiprocessor可以在同一时间处理上百个线程。为了管理这些线程&#xff0c;使用一个特殊的结构SIMT。利用单线程中指令级的并行&#xff0c;以及同步硬件多线程实现的广泛线程级并行性。 SIMT Architec…

实例分割文献阅读笔记(一)SimT

阅读 SimT: Handling Open-set Noise for Domain Adaptive Semantic Segmentation 原作者知乎文章链接&#xff1a;知乎文章 GitHub链接&#xff1a;开源数据 SimT (CVPR22)&#xff1a;为了解决域自适应&#xff08;包含UDA和SFDA&#xff09;任务中目标域数据伪标签中存在…

第三章 SIMT 内核:指令和寄存器数据流

在本章和下一章中&#xff0c;我们将研究现代 GPU 的架构和微架构。 我们将对 GPU 架构的讨论分为两部分&#xff1a;(1) 在本章中研究实现计算部分的 SIMT 内核&#xff0c;然后 (2) 在下一章中研究内存系统。 在其传统的图形渲染角色中&#xff0c;GPU 访问数据集&#xff0…

从GPU编程到SIMT核心

本文转自&#xff1a;从GPU编程到SIMT核心 - 知乎 (zhihu.com) 1、前言&本文重点 在 GPGPU 显得愈发重要的今天&#xff0c;仅凭 nVidia, AMD 提供的编程接口来了解 GPU 未免显得太单薄了些。时至今日&#xff0c; GPU 内部如何执行一条指令的对程序员来说依然是透明的、…

并行计算范式-SIMD vs SIMT vs SMT: What’s the Difference Between Parallel Processing Models?

Modern processor architectures utilize various execution models. Out of these, two are most popular: SIMD (Single Instruction Multiple Data) and SIMT (Single Instruction Multiple Threads). There’s also SMT (Simultaneous Multithreading), but that’s someth…

SIMD<SIMT<SMT: NVIDIA GPU的并行机制

原文出处&#xff1a; SIMD < SIMT < SMT: parallelism in NVIDIA GPUs 目录 1、概述 1.1、SIMD 2、SIMD vs SIMT 2.1 单指令、多套寄存器组 2.2 单指令、多个数据访问单元 2.3 单指令、多种运算逻辑路径 3、SIMD vs SIMT 3.1 GPU通过多thread来实现高thro…

关于GPU一些笔记(SIMT方面)

GPU组成 《计算机组成原理 — GPU 图形处理器》已经大概说明出GPU一般都是由比CPU多的core组成&#xff0c;而每个core 相当于一个单独线程进行计算&#xff0c;并且可以同时触发执行相同的单一指令但是每个计算单元数据不同(称之为SIMD)的指令执行。在英伟达GPU中 core一般称…