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

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

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

本文介绍矩阵的谱分解(Eigen decomposition / Spectral decomposition),不多废话了、直接进入正题、

* * *  * * *

设矩阵 A_{(n\times n)} 有特征根 \lambda ,其对应的特征向量为 u , 根据定义有

Au=\lambda u

同时,矩阵A和它的转置 A' 的特征值是相同的,都是 \lambda ,因为它们的特征多项式是相同的:

\left | \lambda I-A \right |=\left | \lambda I-A' \right |

因此,存在向量 v ,使得

A'v=\lambda v

将上式取转置,有

v'A=\lambda v'

这里,称 v'A的左特征向量,u 则为A的右特征向量.

由此可知,对于矩阵A的每一个特征值 \lambda_{i} ,存在向量 u_{i}v_{i} 使

Au_{i}=\lambda u_{i}A'v_{i}=\lambda v_{i}

 A的特征根如果全不同(若相同,此种情况在下文介绍),设为 \lambda _{1},\lambda _{2},\cdots ,\lambda _{n} ,就有2n个向量 u_{i}v_{i},i=1,2,...,n,使

Au_{i}=\lambda u_{i}  , A'v_{i}=\lambda v_{i}  ,i=1,2,\cdots ,n

 记  U=(u_{1},\cdots ,u_{n}),V=(v_{1},\cdots ,v_{n}) ,则有

AU=U\Lambda , A'V=V\Lambda

其中   \Lambda =\begin{pmatrix} \lambda _{1}& &0 \\ &\ddots & \\ 0 & & \lambda _{n} \end{pmatrix}  为对应特征值构成的对角矩阵.

* * *  * * *

要使A表示成其他矩阵的乘积(谱分解的形式),需要上式中的UV可逆(右乘它的逆矩阵),即要证明 U^{-1}V^{-1} 存在,这等同于证明 u_{1},\cdots ,u_{n},v_{1},\cdots ,v_{n} 是线性无关的,下面给出证明(反证法证明其中一组,另一组同理):

u_{1},\cdots ,u_{n} 是线性相关的,那么存在一组不全为0的数 c_{1},\cdots ,c_{n} ,使得

①                                                          \sum_{i=1}^{n}c_{i}u_{i}=0 

于是就有

②                                         0=A0=A(\sum_{i=1}^{n}c_{i}u_{i})=\sum_{i=1}^{n}c_{i}\lambda _{i}u_{i}

 由于 c_{1},\cdots ,c_{n} 中至少有一个不为0,所以可以

③ 将某个 u_{i} 用其他的向量 u 来表示,并将其代入②中的 u_{i} ,这样可以消去一个 u

不妨记为消去 u_{1} ,在代入消去后,就有不全为0的 d_{i} ,使得   \sum_{i=2}^{n}d_{i}u_{i}=0  ,重复③的做法,逐一消去后得到 u_{i}=0 ,考虑到矩阵的特征向量不为零向量,所以原假设错误,由此证明U是可逆的,同理,V也是可逆的.

 * * *  * * *

 又因为

 \lambda _{i}v_{i}'u_{j}=v'_{i}Au_{j}=\lambda _{j}v'_{i}u_{j}

于是,当 i\neq j 时,v'_{i}u_{j}=0 对一切 i,j=1,2,\cdots n 成立,也即

V'U=\begin{pmatrix} d _{1}& &0 \\ &\ddots & \\ 0 & & d _{n} \end{pmatrix}=(define)=D

易见 D^{-1} 存在,且 D^{-1}=U^{-1}(V')^{-1} ,即 U^{1}=D^{-1}V' ,由 AU=U\Lambda ,就有

A=U\Lambda U^{-1}=U\Lambda D^{-1}V'=U(\Lambda D^{-1})V'=\sum_{i=1}^{n}\frac{\lambda _{i}}{d_{i}}u_{i}v_{i}'

 u_{i}A的特征向量,那么 cu_{i} 仍然是A的特征向量,适当选取 u_{i} 以及 v_{i} ,使得v'_{i}u_{i}=1,i=1,2,\cdots ,n ,于是 d\equiv 1 ,因此有

A=\sum_{i=1}^{n}\lambda _{i}u_{i}v_{i}'

上式就是矩阵的谱分解,特征根 \lambda _{1},\lambda _{2},\cdots ,\lambda _{n} 也称为矩阵A的谱.

易见, u_{i}v_{i}' 就是一个矩阵,因此A被分解为n个矩阵 u_{i}v_{i}' 的线性组合的形式,其系数就是A的谱.

* * *  * * *

       另外,若A的特征根有重根,例如 \lambda _{i} 是A的 l_{i} 重根,若相应于 \lambda _{i}l_{i} 个线性无关的特征向量,那么上面的讨论仍可以进行. 但是如果A的某个特征根的重数与它的线性无关的特征向量个数不相同,那么谱分解就不成立.

 *****   分享  *  交流  *  点赞鼓励 :-)  *****


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

相关文章

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一般称…

如何理解GPU中的SIMT(单指令流多线程模型)

随着设备尺寸逐渐变小&#xff0c;使得时钟频率很难有大的提升&#xff0c;人们开始寻找更有效的架构。为了提高能源效率&#xff0c;需要引入支持向量运算的硬件和减少数据的移动。 当下的架构通常是CPUGPU的&#xff0c;CPU在未来一段时间不会完全被GPU所取代&#xff0c;因…