线性代数中矩阵的特征值与特征向量
作者:禅与计算机程序设计艺术
1.简介
1.1 什么是特征值?
在线性代数中,如果一个$n\times n$的方阵$A$满足如下两个条件之一:
- $A$存在实数特征值,即$\exists x\neq 0:Ax=kx$,其中$k\in \mathbb{R}$;
- $\lambda_{max}(A)\neq 0$($\lambda_{max}(A)$表示$A$的最大特征值),且$||x_{\lambda_{max}(A)}||=\sqrt{\frac{\lambda_{max}(A)}{\lambda_{min}(A)}}$,其中$x_{\lambda_{max}(A)}\neq 0$($x_{\lambda_{max}(A)}$表示$A$的最大特征向量)。那么称$A$为无奇异的。 显然,无奇异矩阵有唯一确定特征值的充要条件就是上述两个条件。而且,特征值具有大小的意义,不同的特征值对应着不同的特征空间,不同的特征空间对应着不同的几何变换。对于正定矩阵来说,所有特征值为正数。
1.2 什么是特征向量?
设$\det(A-\lambda I)=0$,其中$\lambda$是矩阵$A$的一个特征值,则称$x_{\lambda}$为矩阵$A$关于$\lambda$的特征向量。$\lambda$称为矩阵$A$的特征值,$x_{\lambda}$称为矩阵$A$的特征向量,对应的特征向量组成了$A$的特征空间。根据特征向量的定义可知,当$A$为实对称矩阵时,只有实数特征向量;而当$A$为复对称矩阵时,有实部和虚部均为零的特征向量。对于一般的$n\times n$的矩阵$A$,其特征空间由$n$个一维向量的笛卡尔积生成。1.3 为什么需要特征值与特征向量?
矩阵的特征值与特征向量有很多重要的应用。其一是解决线性系统的矩阵求解问题,如矩阵相乘、求逆等问题;其二是用于描述物体的运动轨迹、形状变化过程、重力系数等;其三是研究多变量函数的极限、变化点等。除此之外,特征值与特征向量还可以帮助我们理解矩阵的本质属性,例如为什么正交矩阵不可能有特征向量等等。因此,理解矩阵的特征值与特征向量十分重要。2.基本概念术语说明
2.1 列空间与行空间
设$A$是一个$m\times n$矩阵,则$A^T$是一个$n\times m$矩阵,它代表着$A$的转置矩阵。其列空间与行空间分别记做$C(A)$和$R(A)$。$C(A)$表示的是$A$的所有列的span集合,也就是说,$C(A)$是一个由向量组成的空间,这些向量构成了$A$的所有列的线性组合。$R(A)$同样表示的是$A$的所有行的span集合,也就是说,$R(A)$是一个由向量组成的空间,这些向量构成了$A$的所有行的线性组合。特别地,如果$r(A)={r_1,\cdots, r_p}$,则$C(A)=Span{a_i | a_i=(a_{i1},\cdots,a_{ip})^T, i=1,\cdots,m}$, 也就是说,$A$的所有列向量构成了$C(A)$的一组基。类似地,如果$c(A)={c_1,\cdots, c_q}$,则$R(A)=Span{e_j | e_j=(e_1,e_2,\cdots,e_j)^T, j=1,\cdots,n}$, 也就是说,$A$的所有行向量构成了$R(A)$的一组基。2.2 代数余子式与代数余裕子式
设$A$是一个$n\times n$矩阵,如果$P(A)$是一个非奇异的$n\times n$矩阵,那么$det P(A)=0$. 设$A$的一个元素$a_{ij}$的代数余子式是指将$a_{ij}$所在的元素行和列去掉后剩下的元素所形成的新矩阵,记作$\hat A_{ij}=(-1)^{i+j}M_{ij}$,其中$M_{ij}=M[1,\ldots,i-1][1,\ldots,j-1]$,这里$M$表示$A$的minor matrix。显然,$\det(\hat A_{ij})=-\delta_{ij}\det M$. 令$J={j|a_{ij}\neq 0}$,那么$|\det P(A)|=\prod_{\forall j\in J}(\det[\hat A_{ij}]/|\hat A_{ij}|)$,其中$\delta_{ij}$是Kronecker delta符号,即$\delta_{ij}=1$当$i=j$,$0$否则。2.3 代数引理与相似矩阵
设$A$和$B$都是$n\times n$矩阵,若存在非奇异矩阵$P(A),Q(B)$使得$PAQ^{-1}=BQAQ^{-1}$,则称$(A, B)$为相似矩阵。利用代数余子式及代数引理,易证明对任意两个相似矩阵,它们的共轭对也是相似矩阵。2.4 对角化矩阵
设$A$是一个$n\times n$矩阵,如果存在矩阵$P,D$和酉矩阵$S$使得$AP=PDSD^{-1}$,则称$A$为对角化矩阵。如果矩阵$A$为对角化矩阵,那么$P$为酉矩阵,$D$为对角矩阵,并且$D$中的元素$d_i$称为矩阵$A$第$i$个特征值,对应的单位特征向量称为矩阵$A$的特征向量。由特征值与特征向量的定义,我们得到,$Av_{\lambda_i}=v_{\lambda_i}$, 其中$v_{\lambda_i}$是矩阵$A$的第$i$个特征向量,$\lambda_i$是矩阵$A$的第$i$个特征值。一般来说,对任何对角化矩阵,都存在一种对应关系——特征值相同的特征向量对应于相同的维度。3.核心算法原理和具体操作步骤以及数学公式讲解
3.1 求矩阵的秩
设$A$是一个$n\times n$矩阵,$rank(A)$表示$A$的秩,即$\text{dim}{v:\ v\neq 0}\leq rank(A)$,这里$v$为$A$的某个非零向量。秩是矩阵分析中经常使用的重要概念。秩的计算有两种方式,第一种方法是直接用元素的个数计算,第二种方法是使用SVD分解法。3.1.1 用元素个数计算秩
给定一个$n\times n$矩阵$A$,计算其秩$rank(A)$的方法是统计$A$中非零元素的个数。具体做法是,把$A$的每一列看作一个$1\times n$矩阵,然后合并所有的非零列并删除重复的列,这样就可以得到一个新的$n$维列向量$col(A)$,这个列向量的元素个数即是矩阵的秩。 $$ col(A)=\left{ \begin{array}{ll} col_1 & (\text{$col_1$ 是矩阵 $A$ 的第1列的元素构成的列向量}) \ col_2 & (\text{$col_2$ 是矩阵 $A$ 的第2列的元素构成的列向vedctor}) \ \vdots & ( \ddots )\ col_n & (\text{$col_n$ 是矩阵 $A$ 的第n列的元素构成的列向量}) \end{array} \right. $$ 考虑$col(A)$的线性组合: $$ y = u + sv = \sum_{j=1}^nu_jv_j+\sum_{j=1}^nv_js_j $$ 其中$u=\text{col}1$, $s=\text{diag}(A)$, $v=\text{col}{n-1}\text{col}n^{T}$. 显然,$y$包含了矩阵$A$的所有元素,但是其一定是线性无关的,因为$\text{col}_i$、$\text{col}{n-1}\text{col}n^{T}$不能同时包含矩阵$A$的某个非零元素。根据特征值与特征向量的概念,我们知道$y$的最小二乘拟合可以得到以下表达式: $$ y = sF\Lambda F^{-1}u $$ 注意到,$\Lambda$的第一行的第$k$个元素是矩阵$A$的第$k$个特征值,对应的单位特征向量为$v{\lambda_k}$. 因此,我们可以根据$y$关于$v_{\lambda_k}$的坐标分解,得到$u_{\lambda_k}$作为$v_{\lambda_k}$的最佳线性组合,同时确定出$s_{\lambda_k}$作为残差,进一步求得矩阵$A$的其他特征值与特征向量。3.1.2 使用SVD分解法计算秩
另一种计算矩阵秩的办法是用SVD分解法,即将矩阵$A$分解为三个矩阵的乘积:$U\Sigma V^{\rm T}$, 其中$U$为$n\times n$实对角矩阵,$V$为$n\times n$实对角矩阵。其中$U$的$k$列为$A$的左奇异基,$V$的$k$列为$A$的右奇异基,$\Sigma$是一个$n\times k$实对角矩阵,其$k$个对角元按降序排列,它们的值是矩阵$A$的各个奇异值。从直观上看,由于矩阵$A$的奇异值满足由大到小的排序,所以$k$等于矩阵的秩。但事实上,这是基于置换群的假设,只能保证找到$k$个最大的奇异值,无法确保找出的$k$个奇异值就是矩阵的秩。3.2 求矩阵的行列式与伴随矩阵
设$A$是一个$n\times n$矩阵,$det(A)$表示$A$的行列式,$adj(A)$表示$A$的伴随矩阵。行列式具有重要的物理意义,它反映了一个矩阵的曲面张力,也是一个变换的旋转对称性。它的计算有四种常用的方法,包括通过消去行列式的余子式、通过伴随矩阵的定义、通过对角矩阵的乘积计算和通过二次型展开计算。3.2.1 通过消去行列式的余子式计算行列式
计算$det(A)$的一种简单方法是先对主对角线元素进行运算,再对次对角线元素进行运算。如果主对角线上的元素都消除了,那么余下的元素就不能消除,且其绝对值的和就是行列式。如果存在零行或者零列,那么行列式为零。3.2.2 通过伴随矩阵的定义计算行列式
给定一个$n\times n$矩阵$A$,它的伴随矩阵是指$A$左乘其转置矩阵$A^{\rm T}$或右乘其转置矩阵$A^{\rm T}$,结果等于单位矩阵。因此,$adj(A)=-A^{\rm T}$。而$det(A)=\det adj(A)$, 从而我们可以利用伴随矩阵的定义快速计算矩阵的行列式。3.2.3 通过对角矩阵的乘积计算行列式
给定一个$n\times n$矩阵$A$,如果它为对角矩阵,那么它的行列式可以直接从它的对角元素计算出来。比如,如果$A$是对角矩阵,那么$det(A)=\pm \sigma_1\cdot\sigma_2\cdots\sigma_n$,其中$\sigma_i$是矩阵$A$的第$i$个对角元素。3.2.4 通过二次型展开计算行列式
计算$det(A)$的另一种方法是利用二次型展开。设$A=\begin{pmatrix}a&b\c&d\end{pmatrix}$, 那么$A$关于$\vec{v}$的二次型可以表示为$\vec{v}^TA\vec{v}=v_1av_1d-2v_1bv_2c+v_2cv_2d$, 将其对角线上的值依次进行三角函数展开并消去参数,得到: $$ det(A)=ad-bc=v_1dv_2-v_1bv_2+v_2^2v_1 $$3.3 求矩阵的逆矩阵
设$A$是一个$n\times n$矩阵,$A^{-1}$表示$A$的逆矩阵。通过两个条件的判断,我们可以判断$A$是否为非奇异矩阵。首先,如果$\det(A)\neq 0$,那么$A$为非奇异矩阵,它一定存在逆矩阵$A^{-1}$。另外,如果$AA^{-1}=I_n$,其中$I_n$是单位矩阵,那么$A^{-1}$是存在的。3.3.1 通用公式求矩阵的逆矩阵
给定一个$n\times n$矩阵$A$,我们可以通过求解下面的方程组,来求得其逆矩阵: $$ \left{ \begin{array}{ccccccc} 1 & -1 & \cdots & -1 & y & z \ 0 & 1 & \cdots & 0 & w & t \ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \ 0 & 0 & \cdots & 1 & v & s \ 0 & 0 & \cdots & 0 & 1 & q \ 0 & 0 & \cdots & 0 & 0 & 1 \end{array} \right} \cdot A = \begin{pmatrix} 1 & 0 & \cdots & 0 \ 0 & 1 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & 1 \end{pmatrix} $$ 其中$y,w,z,t,v,s,q$为任意标量。根据这六个变量的取值情况不同,可以判别出$A$的逆矩阵。例如,当$y=w=z=t=v=s=q=0$, 则$A^{-1}=(\text{adj}(A))^{-1}$,其中$\text{adj}(A)$是$A$的伴随矩阵。当$y=w=z=t=v=s=q=1$, 则$A^{-1}=\text{adj}(A)$。3.3.2 使用LU分解求矩阵的逆矩阵
如果$A$是一个非奇异矩阵,则$A^{-1}=P^{-1}L^{-1}U^{-1}$,其中$P$是一个置换矩阵,$L$是一个上三角矩阵,$U$是一个上三角矩阵。可以利用PLU分解求出其逆矩阵。首先,利用伴随矩阵的定义求得$adj(A)=-P^{-1}L^{-1}U^{-1}$,其中$-P$是$P$的伴随矩阵。然后,将其对角线元素设置为$1$,即可求得逆矩阵。3.4 求矩阵的秩与初等因子
设$A$是一个$n\times n$矩阵,$n$是偶数。如果$A$有特征值,那么有$A=UDU^{\rm T}$,其中$U$是$n\times n$实对角矩阵,对角线上的元素为矩阵$A$的特征值,单位特征向量构成$U$的列向量。我们知道,对于矩阵$A$,其初等因子可以分解为$PAQ$: $$ A=P\Lambda Q $$ 其中$\Lambda$是$n\times n$实对角矩阵,对角线上的元素为矩阵$A$的特征值。3.4.1 求矩阵的秩
矩阵的秩等于矩阵的特征值个数。矩阵的特征值和特征向量一起构成了矩阵的特征空间。因此,矩阵的秩是衡量矩阵的复杂度的重要指标。在使用SVD分解求矩阵的特征值和特征向量的时候,其秩等于矩阵的秩。3.4.2 求矩阵的初等因子
对角矩阵的初等因子是它的对角线元素。对于一般的矩阵$A$, 有$A=PP'QR$,其中$P$、$Q$是相同的$n\times n$矩阵,$R$是$n\times p$矩阵。3.5 求矩阵的特征值与特征向量
矩阵的特征值与特征向量是矩阵的重要性质,也是线性代数中最重要的概念。特征值与特征向量之间的联系既重要又紧密,涉及到矩阵的很多性质,如矩阵的奇异值分解、矩阵的相似性、矩阵的秩、矩阵的逆矩阵等。这里,我们先讨论如何求矩阵的特征值与特征向量。3.5.1 矩阵的特征值与特征向量
如果矩阵$A$为对角化矩阵,即$A=VDV^{\rm T}$, 其中$D$是$n\times n$实对角矩阵,对角线上的元素为矩阵$A$的特征值,单位特征向量构成$V$的列向量。则有$AV_{\lambda_i}=v_{\lambda_i}$, 其中$v_{\lambda_i}$是矩阵$A$的第$i$个特征向量,$\lambda_i$是矩阵$A$的第$i$个特征值。3.5.2 直接求特征值与特征向量
如果矩阵$A$为实对称矩阵,那么它一定存在实数特征值,因为它的特征向量只有实数分量。否则,我们可以通过一些高效的矩阵算法来求出它的特征值与特征向量。比如,对于一个$n\times n$的实对称矩阵$A$,可以使用Gram-Schmidt正交化算法来计算它的特征向量。 Gram-Schmidt正交化算法是一个迭代算法,首先选择一个基$v_1$, 然后构造另一个基$v_2$,使得$v_2$是由$v_1$和其他向量$v_i$构成的线性无关向量。接着,再选取另一个向量$v_3$,使得它和$v_1,v_2$构成一个直角坐标系,构造第三个基$v_3$,直到所有向量都成为基。这样,得到的基将刚好构成一个正交基。Gram-Schmidt正交化算法的时间复杂度是$O(n^2)$。而对于一个$n\times n$的实矩阵$A$,如果采用QR分解,则时间复杂度可以达到$O(n^3)$。3.5.3 分解奇异值分解
给定一个$m\times n$矩阵$A$, 我们希望将其分解成三个矩阵的乘积:$A=USV^{\rm T}$, 其中$U$是$m\times m$实正交矩阵,$S$是$m\times n$实对角矩阵,$V$是$n\times n$实正交矩阵。那么,矩阵$A$的奇异值分解总是存在的。3.5.3.1 SVD分解法
首先,进行SVD分解,即$A=USV^{\rm T}$, 其中$U$、$V$都是酉矩阵。如果$A$是奇异矩阵,那么$S$是一个$m\times n$实对角矩阵,其对角线上的值为矩阵$A$的奇异值。设$S$的对角元按升序排列,那么第一个奇异值为$\sigma_1$,第二个奇异值为$\sigma_2$,以此类推,最后一个奇异值为$\sigma_n$.3.5.3.2 对角化法
对于一个实对称矩阵,它一定可以由一些实数特征值和对应的单位特征向量表示。通过对角化法,我们可以快速求得矩阵的特征值与特征向量。对角化法是将矩阵视为带有固定的特征向量的矩阵,每个特征向量对应于某个固定的特征值。对角化法的时间复杂度是$O(n^3)$。3.5.4 谱分解与高斯消元法求解线性方程组
设$A\vec{x}=\vec{b}$, 其中$\vec{x}$是$n$维向量,$\vec{b}$是$n$维向量,那么可以将$A$表示为其对角形式的乘积$Q\Lambda Q^{\rm T}$, 其中$Q$是$n\times n$酉矩阵,$Q^{\rm T}Q=I_n$, $\Lambda$是$n\times n$实对角矩阵,对角线上的元素为矩阵$A$的特征值。因此,$A\vec{x}=\vec{b}$等价于$Q\Lambda Q^{\rm T}\vec{x}=\vec{b}$。3.5.4.1 使用特征分解求解线性方程组
设$A\vec{x}=\vec{b}$有一个非奇异的解,那么其特征向量构成的空间为矩阵$A$的特征空间。如果矩阵$A$是对称矩阵,那么$Q=Q^\ast$, 其中$Q^\ast$表示$A$的共轭转置矩阵。如果$A$是奇异矩阵,那么有$Q=P\Lambda P^\ast$, 其中$P$是一个$n\times n$实对角矩阵,对角线上的元素为矩阵$A$的特征值,$P^\ast$表示$P$的共轭转置矩阵。3.5.4.1.1 特征值法求解线性方程组
特征值法的基本想法是,先对矩阵$A$进行特征分解$A=QR$, 其中$Q$是一个酉矩阵,$R$是一个下三角矩阵。然后,对$b$进行归一化:$b^\prime=Pb$. 在$x=Rx^\prime$中求解$R\vec{x}^\prime=\vec{b}^\prime$的问题。如果矩阵$A$是对称矩阵,那么$R$的对角元就是特征值。如果矩阵$A$是奇异矩阵,那么$P$的对角元就是特征值,$R$的对角元就是矩阵$A$除这些特征值外的其他奇异值。但是,上面方法计算量过大。3.5.4.1.2 行列式分解法求解线性方程组
设$A$是一个$n\times n$矩阵,它的行列式$\det A$存在且恒正。设$A$的固有特征值序列为$\lambda_1>\lambda_2>\cdots>\lambda_n$,那么$|A-k\lambda_iI|=0$是一个方程组,其中$k$是某个常数。从而,$det(A-k\lambda_iI)=0$是一个$n$元一次方程组。通过求解该方程组,就可以得到矩阵$A$的$k$倍的特征值,而非$k=\pm1$倍的特征值。而在$k$倍的特征值处,矩阵$A$的行列式为$0$。因此,$k$倍的特征值是一个$n$维线性无关向量,它与特征向量之间存在着一个映射关系。因此,在行列式分解法中,求解线性方程组$A\vec{x}=\vec{b}$非常有效。3.5.4.2 高斯消元法求解线性方程组
设$A\vec{x}=\vec{b}$是一个线性方程组,有$A$的$n$个线性无关列向量。设$G$是$A$的系数矩阵,$g_{jk}=a_{jk}$。为了解出$A\vec{x}=\vec{b}$, 可以采用高斯消元法。首先,将$A$的第一列除以$g_{11}$,使得第一列的元素变为$1$。然后,对第$i$列的第$j$个元素$g_{ij}$,找一个非零数$f_{kj}$,使得$g_{ik}-fg_{ki}=0$, 其中$k
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
