线性代数之六:特征值与特征向量

6.1 特征值与特征向量

特征向量:若A为n阶方阵,如果存在一个非零向量x使得 Ax=λx ,则称标量 λ 为特征值(eigenvalue),称x为属于 λ 的特征向量(eigenvector)。

特征向量与零度空间:方程 Ax=λx 可以写为 (AλI)x=0 ,因此 λ 为特征值的充要条件是方程有一非平凡解,也即零度空间 N(AλI) 中不仅只有零解,其中任意非零向量均为属于 λ 的特征向量。子空间 N(AλI) 称为对应于 λ 的特征空间。

特征方程 (AλI)x=0 有非零解的充要条件是矩阵 AλI 为奇异的,即 det(AλI)=0 ,称此方程为特征方程。特征方程的根即A的特征值。如果方程有重根,且重根也计数,则特征方程恰有n个根,其中可能会有重复,也可能会是复数。

特征值的性质:

  • 矩阵A的行列式的值为所有特征值的积
  • 矩阵A的对角线元素和称为A的迹(trace)等于特征值的和

相似矩阵的特征值:若方阵A和B相似,则这两个矩阵有相同的特征多项式,且它们有相同的特征值。

使用numpy计算矩阵的特征值与特征向量:

import numpy as np
A=np.array([[3,2],[3,-2]])
w,v = np.linalg.eig(A) 
print w #4,-3 特征值
print v #对应的特征向量[[ 0.89442719, -0.31622777],
                        [ 0.4472136 ,  0.9486833 ]]

6.2 对角化

6.2.1 基本概念

定理:若 λ1,λ2,...,λk 为n阶矩阵A的不同特征值,相应的特征向量为 x1,x2,...,xk ,则 x1,x2,...,xk 线性无关。

可对角化:若存在一个非奇异的矩阵X和一个对角矩阵D,使用n阶方阵A满足

X1AX=D
则称A为可对角化(diagonalizable),称X将A对角化。X的列向量为A的特征向量,D的对角元素为A的相应的特征值。一般地有:
Ak=XDkX1=Xλk1λk2λknX1

定理:方阵A是可对角化的,当且仅当A有n个线性无关的特征向量。

退化矩阵:若n阶方阵A有少于n个线性无关的特征向量,则A是退化的(defective),退化矩阵不可对角化。

6.2.2 马尔可夫链

马尔可夫过程:对一个试验,若其每一步的输出都取决于概率,则称为一个随机过程(stochastic process)。马尔可夫过程(Markov process)是随机过程,它有如下性质:

  • 可能的输出集合或状态是有限的
  • 下一步输出的概率仅依赖于前一步的输出
  • 概率相对于时间是常数

马尔可夫链
状态之间的迁移概率可以表示为迁移矩阵A,其第i列表示由第i个状态向其他状态变迁的概率,A的每一列元素均为非负的,且和为1。

若初始状态集记为 x0 ,并记后续各次状态集为 xi ,则后续状态集可通过矩阵乘法计算得到: xi=Aix0 ,并称 xi 的序列是马尔可夫链。

定理:若一个马尔可夫链的转移矩阵为A,且其收敛到一个稳态向量x,则x为一个概率向量, λ=1 为其一个特征值,且x为属于这个特征值的特征向量。

定理:若马尔可夫链的转移矩阵A的其他特征值均不大于1,且存在 λ=1 ,称其主特征值(dominant eiganvalue),此时转移矩阵A可使用得马尔可夫链收敛到稳定向量。

马尔可夫过程的应用
PageRank算法将网页浏览过程看成马尔可夫过程,其转移矩阵A为n*n的,目前n超过200亿。

A的(i,j)元素表示从网站j到i的跳转概率(可由浏览历史统计出来),可证迁移矩阵存在稳态向量,随着浏览的进行最终可以达到惟一的稳态向量x,即到达某个站点k,向量中的元素 xk 的确定了网站k的整体分级。

进行网页搜索时,首先寻找所有和关键字匹配的网页,然后将这些网页按照它们的网页分级递减的顺序列出来。

6.2.3 矩阵指数

由实数的泰勒级数展开式:

ex=1+x+12!x2+...+1n!xn

若对任何的n*n矩阵A,可定义矩阵指数:

eA=I+A+12!A2+...+1n!An

在对角矩阵的情况下,容易计算

eD=eλ1eλ2eλn

对一般的矩阵A,计算比较困难,但若A是可对角化的,则: eA=XeDX1

6.4 埃尔米特矩阵

6.4.1 复内积

Cn 表示所有n元复数构成的向量空间,若 α=a+bi 为标量,则其长度为 |α|=a2+b2 Cn 中的向量 z=(z1,z2,...,zn) 的长度为

||z||=(i=1n|zi|)1/2=(zHz)1/2zHz

定义:令V为一复数域上的向量空间,V上的内积定义为关联一对向量z和w的复数

6.4.2 埃尔米特矩阵

令M为复矩阵, M 为其共轭矩阵, MH M 的转置,若 M=MH ,则称它为埃尔米特矩阵(Hermitian)。实对称矩阵均为埃尔米特矩阵。

埃尔米特矩阵与特征向量:埃尔米特矩阵的特征值均为实的,且属于不同特征值的特征向量为正交的。

酉矩阵:若方阵U的列向量构成 Cn 中的一个规范正交基,则称其为酉矩阵(unitary matrix)。U为酉矩阵的充要条件是 UHU=I ,实酉矩阵为正交矩阵。

若埃尔米特的对角化:若埃尔米特矩阵A的特征值互不相同,则存在一个酉矩阵U对角化A。

舒尔(schur)定理:对每一个方阵A,存在一个酉矩阵U,使得 UHAU 为上三角矩阵。将A分解 UHTU 称为舒尔分解。当A为埃尔米特矩阵时,T为对角矩阵。

谱定理:若A为埃尔米特矩阵,则存在一个酉矩阵U对角化A。
定理:若A为实对称矩阵,则存在一个正交矩阵Q对角化A,即 QTAQ=D ,其中D是对角的。

正规矩阵:矩阵A若满足 AAH=AHA ,则称A为正规矩阵。
定理:矩阵A是正规矩阵,当且仅当A有一个完备的规范正交特征向量集。

6.5 奇异值分解

SVD定理:若A为任意m*n矩阵,则A有一个奇异值分解
奇异值(SVD)分解:将m*n的矩阵A分解为乘积 USVT ,其中U是m*m的正交矩阵,V是一个n*n正交矩阵,S是一个m*n矩阵,其对角线下的元素均为0,且对角线元素满足: s1s2...sn0 ,通过分解可得惟一一组 si ,称其为A的奇异值。

若A为一m*n矩阵,且Q为一m*m的正交矩阵,则 ||QA||F=||A||F

下面的代码显示了使用numpy对矩阵进行SVD分解的方法

import numpy as np
a = np.array([[1,1],[1,1],[0,0]])
s,v,d = np.linalg.svd(a)
print v.astype(int)  # [2,0] 奇异值向量
print s,d
'''
[[-0.70710678 -0.70710678  0.        ]
 [-0.70710678  0.70710678  0.        ]
 [ 0.          0.          1.        ]]
 [[-0.70710678 -0.70710678]
 [ 0.70710678 -0.70710678]]
 '''

SVD分解可以应用在数字图像压缩,主成分分析等领域,用于数据的压缩或降维。

数值秩:一个m*n的矩阵的数值秩(numberical rank)为矩阵的奇异值中大于 s1max(m,n)ϵ 的个数。其中s1为A最大的奇异值,且 ϵ 为计算机的单位舍入误差。在matlab或numpy中rank都计算的是数值秩。

6.6 二次型

6.6.1 二次型

定义:一个二次(quadratic)方程为两个变量x和y的方程

ax2+2bxy+cy2+dx+ey+f=0

可以写为
[xy][abbc][xy]+[de][xy]+f=0

x=[xy] A=[abbc] ,则
xTAx=ax2+2bxy+cy2

称其为与二次方程相关的二次型。

上面的二次方程对应的图形为圆锥曲线(conic section)。圆,椭圆,双曲线,抛物线均可由其表示。

主轴定理:若A为一实对称的n*n矩阵,则存在一个变量变换 u=QTx 使得 xTAx=uTDu ,其中D为一对角矩阵。

6.6.2 正定

定义:一个实对称矩阵A称

  • 正定的(positive definite),若对 Rn 中所有非零向量x, xTAx>0
  • 负定的(negative definite),若对 Rn 中所有非零向量x, xTAx<0
  • 半正定的(positive semidefinite),若对 Rn 中所有非零向量x, xTAx0
  • 半负定的(negative semidefinite),若对 Rn 中所有非零向量x, xTAx0
  • 不定的(indefinite),若对 Rn 中所有非零向量x, xTAx 有不同的符号

定理:若A为n阶实对称矩阵,A是正定的,当且仅当其特征值均为正

6.7 正定矩阵

前主子矩阵:给定n*n的矩阵A,令 Ar 表示将A的最后n-r行和列删去后得到的矩阵,称其为A的r阶前主子矩阵(leading principal submatrix)。

对称正定矩阵的性质:

  • 若A为一对称正定矩阵,则A是非奇异的,det(A)>0
  • 若A为一对称正定矩阵,则A的前主子矩阵 A1,A2,...,An 均为正定的。
  • 若A为一对称正定矩阵,则A可仅使用第三类行变换化为上三角矩阵,且主元全为正。
  • 若A为一对称正定矩阵,则A可分解为乘积 LDLT ,其中L为下三角的,其对角线上元素为1,且D为一个对角矩阵,其对角元素均为正的。
  • 若A为一对称正定矩阵,则A可分解为一个乘积 LLT ,其中L为下三角的,其对角线元素均为正的。此分解称为cholesky分解。

下面的代码演示了使用numpy对矩阵进行cholesky分解的方法

a = np.array([[4,2],[2,10]])
l = np.linalg.cholesky(a)
print l #[[2,0],[1,3]]
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值