线性代数精华——矩阵的特征值与特征向量

今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念——矩阵的特征值与特征向量。

我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数\(\lambda\),使得我们可以找到一个非零向量x,满足:

\[Ax=\lambda x\]

如果能够找到的话,我们就称\(\lambda\)是矩阵A的特征值,非零向量x是矩阵A的特征向量。

几何意义

光从上面的式子其实我们很难看出来什么,但是我们可以结合矩阵变换的几何意义,就会明朗很多。

我们都知道,对于一个n维的向量x来说,如果我们给他乘上一个n阶的方阵A,得到Ax。从几何角度来说,是对向量x进行了一个线性变换。变换之后得到的向量y和原向量x的方向和长度都发生了改变。

但是,对于一个特定的矩阵A来说,总存在一些特定方向的向量x,使得Ax和x的方向没有发生变化,只是长度发生了变化。我们令这个长度发生的变化当做是系数\(\lambda\),那么对于这样的向量就称为是矩阵A的特征向量,\(\lambda\)就是这个特征向量对应的特殊值。

求解过程

我们对原式来进行一个很简单的变形:

\[(A-\lambda I)x = 0\]

这里的I表示单位矩阵,如果把它展开的话,可以得到一个n元的齐次线性方程组。这个我们已经很熟悉了,这个齐次线性方程组要存在非零解,那么需要系数行列式

\[|A-\lambda I|\]

不为零,也就是系数矩阵的秩小于n。

我们将这个行列式展开:

\[
\left|
\begin{matrix}
a_{11}-\lambda & a_{12} & \cdots & a_{1n} \a_{21} & a_{22} - \lambda & \cdots & a_{2n} \\
\vdots & \vdots & & \vdots \\
a_{n1} & a_{n2} & \cdots & a_{nm} - \lambda
\end{matrix}
\right|
\]

这是一个以\(\lambda\)为未知数的一元n次方程组,n次方程组在复数集内一共有n个解。我们观察上式,可以发现\(\lambda\)只出现在正对角线上,显然,A的特征值就是方程组的解。因为n次方程组有n个复数集内的解,所以矩阵A在复数集内有n个特征值。

我们举个例子,尝试一下:

假设:

\[
A=\left[
\begin{matrix}
a_{11}-\lambda & a_{12} \a_{21} & a_{22}-\lambda \\end{matrix}
\right]
\]

那么\(f(\lambda)=(a_{11}-\lambda)(a_{22}-\lambda)-a_{12}a_{21}=\lambda^2-(a_{11}+a_{22})\lambda-|A|\),我们套入求根公式可以得出使得\(f(\lambda)=0\)的两个根\(\lambda_1, \lambda_2\),有:\(\lambda_1+\lambda_2=a_{11}+a_{22},\quad \lambda_1\lambda_2=|A|\)。

这个结论可以推广到所有的n都可以成立,也就是说对于一个n阶的方阵A,都可以得到:

  1. \(\lambda_1+\lambda_2+\cdots+\lambda_n=a_{11}+a_{22}+\cdots+a_{nn}\)
  2. \(\lambda_1\lambda_2\cdots\lambda_n=|A|\)

案例

我们下面来看一个例子:

\[A=\left[
\begin{matrix}
3 & 1 \1 & 3
\end{matrix}
\right]\]

我们带入\((A-\lambda I)x=0\),可以得到:

\[
\left|
\begin{matrix}
3-\lambda & 1 \1 & 3 - \lambda
\end{matrix}
\right|=0
\]

所以: \((3-\lambda)^2 - 1 = 0\),可以看出来\(\lambda_1=2, \quad \lambda_2=4\)

当\(\lambda=2\)时:

\[
\left[
\begin{matrix}
3 & 1\1 & 3
\end{matrix}
\right]x = 2x
\]

\[
\left[
\begin{matrix}
3 & 1\1 & 3
\end{matrix}
\right][a_1, a_2]^T = [2a_1, 2a_2]^T
\]

\[
\begin{aligned}
3a_1 + a_2 &= 2a_1 \a_1 + 3a_2 &= 2a_2
\end{aligned}
\]

解之,可以得到:\(a_1+a_2=0\),所有\((x, -x)\)向量都是A的特征向量。

同理,当\(\lambda = 4\)时:
\[
\begin{aligned}
\left[
\begin{matrix}
3 & 1\1 & 3
\end{matrix}
\right]x &= 4x \\left[
\begin{matrix}
3 & 1\1 & 3
\end{matrix}
\right][a_1, a_2]^T &= [4a_1, 4a_2]^T \3a_1 + a_2 &= 4a_1 \a_1 + 3a_2 &= 4a_2
\end{aligned}
\]

解之,可以得到:\(a_1=a_2\),所有\((x, x)\)向量都是A的特征向量。

使用Python求解特征值和特征向量

在我们之前的文章当中,我们就介绍过了Python在计算科学上的强大能力,这一次在特征值和特征矩阵的求解上也不例外。通过使用numpy当中的库函数,我们可以非常轻松,一行代码,完成特征值和特征向量的双重计算。

我们一起来看代码:

import numpy as np

a = np.mat([[3, 1], [1, 3]])
lam, vet = np.linalg.eig(a)

np.linalg.eig 方法会返回两个值,第一个返回值是矩阵的特征值,第二个返回值是矩阵的特征向量,我们看下结果:

这里的特征向量为什么是0.707呢?因为Python自动帮我们做好了单位化,返回的向量都是单位向量,不得不说实在是太贴心了。

总结

关于矩阵的特征值和特征向量的介绍到这里就结束了,对于算法工程师而言,相比于具体怎么计算特征向量以及特征值。理解清楚它们的概念和几何意义更加重要,因为这两者在机器学习的领域当中广泛使用,在许多降维算法当中,大量使用矩阵的特征值和特征向量。

对于降维算法的原理,这里不过多赘述,我们会在以后的文章当中更新相关内容。感兴趣的同学可以小小期待一下。

文章到这里就结束了,这也是线性代数专题的最后一篇文章,短短六篇文章当然不能涵盖线性代数这门学科当中的所有知识点,但实际当中常用的内容基本上已经都包括了。下周我们将开始全新的Python专题,希望大家多多期待。

如果觉得有所收获,请顺手点个关注或者转发吧,你们的支持是我最大的动力。

原文地址:https://www.cnblogs.com/techflow/p/12258342.html

时间: 2024-10-14 11:56:55

线性代数精华——矩阵的特征值与特征向量的相关文章

线性代数 - 05 矩阵的特征值与特征向量

线性代数 - 05 矩阵的特征值与特征向量 一.特征值与特征向量 二.矩阵的相似与矩阵的对角化 三.实对称矩阵的对角化 1.向量的内积与正交矩阵 2.实对称矩阵的特征值与特征向量 线性代数 - 05 矩阵的特征值与特征向量,码迷,mamicode.com

线性代数之矩阵的特征值与特征向量

数学上,线性变换的特征向量(本征向量)是一个非退化的向量,其方向在该变换下不变.该向量在此变换下缩放的比例称为其特征值(本征值). 一个线性变换通常可以由其特征值和特征向量完全描述.特征空间是相同特征值的特征向量的集合.“特征”一词来自德语的eigen.1904年希尔伯特首先 在这个意义下使用了这个词,更早亥尔姆霍尔兹也在相关意义下使用过该词.eigen一词可翻译为”自身的”.“特定于……的”.“有特征的”.或者“个体 的”.这显示了特征值对于定义特定的线性变换有多重要. 线性变换的特征向量是指

矩阵的特征值和特征向量的雅克比算法C/C++实现

矩阵的特征值和特征向量是线性代数以及矩阵论中很重要的一个概念.在遥感领域也是经经常使用到.比方多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量. 依据普通线性代数中的概念,特征值和特征向量能够用传统的方法求得,可是实际项目中一般都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量. 雅克比方法用于求实对称阵的所有特征值.特征向量. 对于实对称阵 A,必有正交阵 U.使 U TA U = D. 当中 D 是对角阵,其主对角线元 li 是

浅浅地聊一下矩阵与线性映射及矩阵的特征值与特征向量

都说矩阵其实就是线性映射,你明白不?反正一开始我是不明白的: 线性映射用矩阵表示:(很好明白的) 有两个线性空间,分别为V1与V2, V1的一组基表示为,V2的一组基表示为:(注意哦,维度可以不一样啊,反正就是线性空间啊), 1, 现在呢,有一个从V1到V2的映射F, 它可以把V1中的一组基都映射到线性空间V2中去,所以有: 用矩阵可以表示为: 2,现在我们把在V1中有一个向量A,经过映射F变为了向量B,用公式表示为:                                 所以呢,坐标

利用QR算法求解矩阵的特征值和特征向量

利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了好久 1.我要求特征值和特征向量. 2.找到一种算法QR分解矩阵求解特征值 3.QR矩阵分解需要Gram-schimidt正交化分解 有一种很明显的感觉,往往在现在很难有 很系统 很深入 的学习某一个学科的某一门知识. 往往学的时候"靠,学这东西有什么用""学了这么久,也不知道怎么用,不想学" 到后

雅可比算法求矩阵的特征值和特征向量

目的 求一个实对称矩阵的所有特征值和特征向量. 前置知识 对于一个实对称矩阵\(A\),必存在对角阵\(D\)和正交阵\(U\)满足\[D=U^TAU\]\(D\)的对角线元素为\(A\)的特征值,\(U\)的列向量为\(A\)的特征向量. 定义\(n\)阶旋转矩阵\[G(p,q,\theta)= \begin{bmatrix} 1 & & & & & \cdots& & & & & 0\ &\ddots &

特征值和特征向量的几何意义、计算及其性质(一个变换(或者说矩阵)的特征向量就是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已)

  对于任意一个矩阵,不同特征值对应的特征向量线性无关. 对于实对称矩阵或埃尔米特矩阵来说,不同特征值对应的特征向量必定正交(相互垂直).   一.特征值和特征向量的几何意义 特征值和特征向量确实有很明确的几何意义,矩阵(既然讨论特征向量的问题,当然是方阵,这里不讨论广义特征向量的概念,就是一般的特征向量)乘以一个向量的结果仍是同维数的一个向量.因此,矩阵乘法对应了一个变换,把一个向量变成同维数的另一个向量. 那么变换的效果是什么呢?这当然与方阵的构造有密切的关系,比如可以取适当的二维方阵,使得

好文!特征值和特征向量的几何和物理意义 【转载东山狼的blog】

我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量.在这个变换的过程中,原向量主要发生旋转.伸缩的变化.如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值. 实际上,上述的一段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物理含义.物理的含义就是运动的图景:特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定.特征值大于1,所有属于此特征值的特征向量身形

特征值与特征向量的几何意义

特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩阵的列数等于后一个矩阵的行数才能相乘”,然而,这里却会和你说——那都是表象. 矩阵乘法真正的含义是变换,我们学<线性代数>一开始就学行变换列变换,那才是线代的核心——别会了点猫腻就忘了本——对,矩阵乘法 就是线性变换,若以其中一个向量A为中心,则B的作用主要是使A发生如下变化: 伸缩 clf; A = [0, 1, 1, 0, 0;... 1, 1, 0, 0, 1]