1 特征分解(Eigen decomposition)

注意:只有可对角化的矩阵才能进行特征分解

特征分解(Eigen decomposition),又称谱分解(Spectral decomposition),

是将矩阵分解为一组 成对特征值与特征向量, 每一对的分解都满足:

将 \(n\) 阶方阵 \(M\) 分解出如下式的 非零n维向量 \(v\)作为 特征向量 和 \(\lambda\) 作为 特征向量;

\(\large \begin{array}{ll} \\
\begin{equation} \\
M v=\lambda v,\ v \neq 0 \ \tag{EigenDecomposition} \\
\end{equation} \\
\end{array}\)

注意:

  • \(n\) 阶方阵\(M\), 非零n维向量\(v\) 和左侧 矩阵乘法\(\large Mv\) 的结果向量, 全都为 \(n\);

  • 特征向量\(v\) 被施以 线性变换函数\(M\) 只会使其伸缩, 而其方向不改变

    假设 (\(\lambda_0\), \(v\)) 是 \(n\) 阶方阵\(M\) 的特征值-特征向量对, 那么 (\(\lambda_0\), \(k v\))也是:

    \(\begin{array}{ccl} \\
    & M v &=& \lambda_0 v \\
    \Rightarrow & M (k v) &=& k(M v) = k(\lambda_0 v) = \lambda_0 (k v) \\
    & & & k \neq 0,\ \text{and k is a scalar} \\
    \\ \end{array}\)

  • 由上式 \(\text{(EigenDecomposition)}\) 可得\(n\) 阶方阵\(M\)的特征方程:

    \(\begin{array}{ccl} \\
    p(\lambda) = det(M-\lambda I) = 0 \\
    \\ \end{array}\)

    称多项式 \(\large p(\lambda)\) 为矩阵的特征多项式。特征多项式是关于未知数 \(\lambda\) 的 \(N\) 次多项式。

    由代数基本定理,特征方程的解集有\(N\)个解, 这些解就是特征值的集合,也称为“谱”(Spectrum)

    我们可以对多项式 \(p\) 进行因式分解,而得到:

    \(\begin{array}{ccl} \\
    p(\lambda) &=& (\lambda - \lambda_1)^{n_1}(\lambda - \lambda_2)^{n_2} ... (\lambda - \lambda_k)^{n_k} = 0\ ,\ \sum_{i=1}^{k}{n_i} = N \\
    (M-\lambda_i I) v &=& 0\ ,\forall\ i \in [\ 1, k\ ] \\
    \\ \end{array}\)

    对每一个特征方程:都会:

    • 有\(m_i\ (1 < m_i < n_i)\)个线性无关的解(向量), 这 \(m_i\) 个解向量与一个特征值 \(\lambda\) 对应.
    • 整数 \(m_i\) 称为特征值 \(\lambda\) 的几何重数,而 \(n_i\) 称为代数重数

      要注意, 几何重数 与 代数重数 可相等,也可以不相等。

      一种最简情况是 \(m_i = n_i = 1\)。

    特征向量的 极大线性无关向量组向量个数 可以由所有特征值几何重数之和来确定

矩阵的特征分解

令 \(M\) 是一个 $N \times N $ 的方阵,且有 \(N\) 个线性无关的特征向量\(q_i, i \in [\ 1, N\ ]\)。

这样, \(M\) 可以被分解为:

\(\large \begin{array}{ccl} \\
M = Q \Lambda Q^{-1} \\
\\ \end{array}\)

  • \(Q\) 是$N \times N $ 方阵,且其第 \(i\) 列为 \(M\) 的特征向量
  • \(\Lambda\) 是对角矩阵,其对角线上元素为对应的特征值,也即 \(\large \Lambda_{ii} = \lambda_i\)

    要注意只有可对角化矩阵才可以作特征分解

    特征向量一般被正交单位化(但这不是必须的)。

    未被正交单位化的特征向量组也可以作为 \(Q\) 的列向量。

    这一事实可以这样理解: \(Q\) 中向量的长度都被抵消了。

通过特征分解求矩阵的逆

若矩阵 \(M\) 可被特征分解, 并且特征值中不含零,则矩阵 \(M\) 为非奇异矩阵,且其逆矩阵可由下式给出:

\(\large \begin{array}{ccl} \\
M^{-1} = Q \Lambda^{-1}Q^{-1} \\
\\ \end{array}\)

因为 \(\Lambda\) 为对角矩阵,其逆矩阵容易计算出:\(\large \begin{array}{ccl} [\ \Lambda^{-1} \ ]_{ii} = \frac{1}{\lambda_i} \\ \end{array}\)

对特殊矩阵的特征分解

  • 对称矩阵

    任意的 \(N \times N\) 实对称矩阵 都有 \(N\) 个线性无关的特征向量

    并且这些特征向量都可以正交单位化, 而得到一组正交且模为 1 的向量

    故实对称矩阵 \(M\) 可被分解成:

    \(\large \begin{array}{ccl} \\
    M = Q \Lambda Q^{T} \\
    \\ \end{array}\)

    其中 \(Q\) 为 正交矩阵, \(\Lambda\) 为实对角矩阵。

  • 正规矩阵

    类似地,一个 复正规矩阵一组正交特征向量基,故正规矩阵可以被分解成:

    \(\large \begin{array}{ccl} \\
    M = U \Lambda U^{H} \\
    \\ \end{array}\)

    其中, \(U\) 为一个Unitary Matrix

    进一步地,若 \(M\) 是Hermitian Matrix,那么对角矩阵 \(\Lambda\) 的对角元全是实数。

    若 \(M\) 还是Unitary Matrix,则 \(\Lambda\) 的所有对角元在复平面的Unit Cycle上取得。

  • 常用用途:

    • “降维”: \(n\)阶方阵 \(M\) 分解为 特征向量-特征值对, 由 $n \times n $ 变为 \(1 \times n\), 极大降维.
    • “分解-合成”: 分解出特征向量-特征值对, 就可合成其它维度上或需要矩阵/向量.
  • 最优分解: 用约束条件来选取 特征向量-特征值 对; 例如正交特征向量变化最大的方向上;

    实际应用多分解为正交基(特征向量), 如果不是正交的,就要做奇异值分解

  • 数学解读: 换将 \(n\) 阶方阵 \(M\) 看作 矩阵函数 \(f\), 解读以上矩阵乘法表达式:

    \(\large \begin{array}{ccl} f(v) &=& M v,\ v \neq 0 \\
    f(v) &=& \lambda v \end{array}\)

    即对 非零n维向量 \(v\) 作以下两种变换得到的结果一致:

    • 左乘 “\(n\) 阶方阵 \(M\)”,
    • 数乘实数\(\lambda\)” (初等线性变换),

    则称:

    • \(\lambda\) 是 \(n\) 阶方阵 \(M\) 的一个特征值
    • \(v\) 为 \(M\) 的对应于特征值 \(\lambda\) 的特征向量
  • 用实例证明不仅可以分解出,甚至还可以分解出多对 特征向量特征值:

    速度\(\overrightarrow{M}\)用矩阵表示, 可分解到其它方向(维度)上, 分速度大小特征值方向特征向量

    速度\(\overrightarrow{M}\)可以分解为 \(3D\)空间的 \((x, y, z)\) 三个维度上的分量\((\overrightarrow{M_x}, \overrightarrow{M_y}, \overrightarrow{M_z})\),

    也可以任意分解为其他的三个向量为基的空间的三个向量方向上:

    • 三个基向量作为\(\overrightarrow{M}\)的特征向量,
    • 三个向量方向上的坐标值作为\(\overrightarrow{M}\)的每个特征向量对应的特征值;

    当然, 类似的可以分解到 \(4D\)时空上也是可以的.

SciTech-Mathmatics-LinearAlgebra-特征分解/谱分解(Eigen decomposition)方阵分解出 特征值和特征向量 + 矩阵函数视角: n维向量左乘n阶方阵 化为数乘变换.的更多相关文章

  1. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  2. 矩阵分解---QR正交分解,LU分解

    相关概念: 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等.两个向量正交的意思是两个向量的内积为 0 正定矩阵:如果对于所有的非零实系数向量x ,都有 x ...

  3. shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性

    shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...

  4. 04.LoT.UI 前后台通用框架分解系列之——轻巧的弹出框

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  5. 埃及分解:将2/n分解成为1/x+1/y的格式

    算法 古埃及以前创造出灿烂的人类文明,他们的分数表示却非常令人不解.古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式. 这里,a 和 b 必须是不同的两个整数,分子必须为 1 比方,2/1 ...

  6. Eigen学习之简单线性方程与矩阵分解

    Eigen提供了解线性方程的计算方法,包括LU分解法,QR分解法,SVD(奇异值分解).特征值分解等.对于一般形式如下的线性系统: 解决上述方程的方式一般是将矩阵A进行分解,当然最基本的方法是高斯消元 ...

  7. PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法. 我们都知道,图片 ...

  8. 雅克比(Jacobi)方法

    可以用来求解协方差矩阵的特征值和特征向量. 雅可比方法(Jacobian method)求全积分的一种方法,把拉格朗阶查皮特方法推广到求n个自变量一阶非线性方程的全积分的方法称为雅可比方法. 雅克比迭 ...

  9. R语言数据集的技术

    特征值选择技术要点 特征值选择技术要点(特征值分解) 作者:王立敏 文章来源:xiahouzuoxin 一.特征值分解 1.特征值分解 线性代数中,特征分解(Eigendecomposition),又 ...

  10. 奇异值分解(SVD)原理与在降维中的应用

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...

随机推荐

  1. 1安装docker

    1安装docker 1.1主机环境 ssh://192.168.30.30:22   root   123QWEasd 1.2安装依赖 docker依赖于系统的一些必要的工具,可以提前安装. yum ...

  2. crypto14解题思路

    crypto14解题思路 ##二进制 001100110011001100100000001101000011010100100000001101010011000000100000001100100 ...

  3. SpringMVC返回值

    字符串 /** * 测试返回字符串 * @param model model * @return 返回的字符串,通过视图解析器调整到jsp页面 */ @RequestMapping("/te ...

  4. spring boot迁移计划 第Ⅰ章 --chapter 1. rust hyper 结合rust nacos-client开发nacos网关 part ① tracing 日志

    1. 引子 最近想要迁移一部分java应用至rust,在实际体验了tklog,log4rs,和tracing三款流行的日志框架后,最后选用了tracing,log4rs的文件备份文件名没有时间,不便于 ...

  5. 天翼云出席DCIC2025,“翼立方”创新力拉满!

    近日,由中国通信企业协会主办的DCIC2025(第14届)数据中心产业发展大会在北京召开.大会以"共筑算力基石,护航产业生态"为主题,邀请众多知名算力企业代表以及生态合作伙伴代表, ...

  6. 【SQL周周练】:利用行车轨迹分析犯罪分子作案地点

    大家好,我是"蒋点数分",多年以来一直从事数据分析工作.从今天开始,与大家持续分享关于数据分析的学习内容. 本文是第 7 篇,也是[SQL 周周练]系列的第 6 篇.该系列是挑选或 ...

  7. C++强制类型转换运算符(static_cast、reinterpret_cast、const_cast和dynamic_cast)

    C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast.reinterpret_cast.const_cast和dynamic_cast,当然C++为保持与C的兼容, ...

  8. 定制Django的Tag和Filter(一)

    1.在 app 目录下创建 templatetags 目录(目录名只能是 templatetags). 如: app/ __init__.py models.py templatetags/ __in ...

  9. ES查询优化随记1: 多路向量查询 & KNN IO排查 & 高效Filter使用

    哈哈最近感觉自己不像算法倒像是DB,整天围着ES打转,今天查IO,明天查内存,一会优化查询,一会优化吞吐.毕竟RAG离不开知识库,我们的选型是ES,于是这一年都是和ES的各种纠葛.所以顺手把近期获得的 ...

  10. Web前端入门第 64 问:JavaScript 几种函数定义方式有什么区别?

    函数 作为 JS 的一等公民,随处可见它的身影. 我理解的它最主要作用就是用来提取重复代码,但凡有 JS 代码需要复制粘贴的时候,那么这时候就可以考虑使用函数封装了. 当函数写在对象中的时候,这时候它 ...