特征值分解,奇异值分解

本文详细介绍了特征值分解和奇异值分解的概念及其在矩阵理论中的重要性。特征值表示矩阵变换的影响程度,特征向量指示变换的方向。实对称矩阵可以找到正交基进行对角化,而奇异值分解则适用于任何矩阵,分解结果为UΣVT,其中U和V的列向量分别为相关矩阵的特征向量。这两种分解在数据分析、降维(如PCA)和最优化问题中有着广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特征值分解

定义

特征值,特征向量

设A为数域F上的n阶方阵,如果存在数域F上的数λ\lambdaλ和非零向量a,使得Aa=λaAa=\lambda aAa=λa,则称λ\lambdaλ为A的一个特征值(特征根),a称为A的属于特征值λ\lambdaλ的一个特征向量。

特征值分解

(方阵An∗nA_{n*n}Ann可以做特征值分解的充要条件是其有n个线性无关的特征向量,即矩阵可对角化的条件。)
特征值分解是将一个矩阵分解成下面的形式:
               A=QΣQ−1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ A=Q\Sigma Q^{-1}               A=QΣQ1
其中Q是这个矩阵A的特征向量组成的矩阵,为可逆矩阵;Σ= diag(λ1, λ2, ..., λn)\Sigma= diag(λ1, λ2, ..., λn)Σ=diag(λ1,λ2,...,λn)是一个对角阵,对角线上的元素为特征值。

实对称矩阵的良好性质

实对称矩阵(特征值均为实数)总能找到一个正交矩阵U,使得U−1AUU^{-1}AUU1AU是对角矩阵

理解

  1. 特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。
  2. 从线性空间的角度看,特征值越大,则矩阵在对应的特征向量上的方差越大,信息量越多。
  3. 从最优化的角度。矩阵的特征值的大小与函数值的变化快慢有关,在最大特征值所对应的特征方向上函数值变化最大,也就是该方向上导数最大。
  4. 特征值特征向量:作用后只伸缩变换,而不旋转或投影。一个矩阵相当于一个线性变换,矩阵乘以一个向量后得到的向量,相当于将这个向量进行了伸缩、旋转、投影的线性变换。
  5. 应用:PCA降维,最优化等。(通过舍去一部分不重要的特征来实现)

实验

from scipy.linalg import eig
import numpy as np
import matplotlib.pyplot as plt

A=[[1,2],
   [2,1]]
evals,evecs=eig(A)  #即获取特征值和特征向量
#%%
print(evecs) #evecs每一列是一个特征向量
evecs=evecs[:,0],evecs[:,1]
#%%
fig,ax=plt.subplots()
#通常软件绘图,默认都是将坐标轴置于画布(figure)的最下侧(x轴),最左侧(y轴),也即将坐标原点置于左下角
for spine in ['left','bottom']:
    ax.spines[spine].set_position('zero')
ax.grid(alpha=0.4)
xmin,xmax=-3,3
ymin,ymax=-3,3
ax.set(xlim=(xmin,xmax),ylim=(ymin,ymax))
for v in evecs:
    ax.annotate(s="",xy=v,xytext=(0,0),
                arrowprops=dict(facecolor='blue',shrink=0,alpha=0.6,width=0.5))#xy(箭头尖端)和xytext位置(文本位置)都以数据坐标为单位。
x=np.linspace(xmin,xmax,3)
for v in evecs:
    a=v[1]/v[0]
    ax.plot(x,a*x,'r-',lw=0.4)
plt.show()

在这里插入图片描述

奇异值分解

定义

(非方阵矩阵无法进行特征值分解,而奇异值分解是一种适用于任意矩阵的分解方法。)
特征值分解是将一个矩阵分解成下面的形式:
               A=UΣVT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ A=U\Sigma V^{T}               A=UΣVT
其中A为m∗nm*nmn的方阵;U为m∗mm*mmm,U中的向量是正交的,其中的向量被称为左奇异向量;Σ= diag(λ1, λ2, ..., λn)\Sigma= diag(λ1, λ2, ..., λn)Σ=diag(λ1,λ2,...,λn)是一个m∗nm*nmn的对角阵,对角线上的元素为奇异值;V为n∗nn*nnn,V中的向量是正交的,其中的向量被称为右奇异向量;

实验

U,sigma,V=np.linalg.svd(img)
pressedimg=np.dot(U[:,0:100],np.dot(sigma[0:k,0:k],V[0:k,:]))

特征值分解和奇异值分解的联系

首先思考Am∗nA_{m*n}Amn为非方阵,无法进行特征值分解,但是AATAA^TAATATAA^TAATA便为对称矩阵方阵,可以进行特征值分解,且由于对称性,对应的特征向量正交。

即U 矩阵(左奇异矩阵)的列向量分别是AATAA^TAAT的特征向量;行满秩时这样构造。
V矩阵(右奇异矩阵)的列向量分别是ATAA^TAATA的特征向量。列满秩的时候这样计算构造证明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值