特征值分解eig

数学定义用语法

eig 用来计算 矩阵的特征值 和 特征向量(Eigenvalues/Eigenvectors)

cpp 复制代码
eig 用来求特征值/特征向量,是 PCA、法向量估计、点云几何分析、ICP 的核心基础工具。
cpp 复制代码
[V, D] = eig(A);
返回:

D:对角矩阵,包含特征值

V:每一列是一个特征向量

即:

A * V(:,i)  ≈  D(i,i) * V(:,i)

如果把矩阵 A 看成"变换",那么:

  • 特征向量 = 变换后方向不变的向量

  • 特征值 = 被放大的倍数

matlab 案例

例 1:对角矩阵

cpp 复制代码
A = [3 0; 0 2];
[V,D] = eig(A)




V =

     0     1
     1     0

// V 是特征向量

D =

     2     0
     0     3

>> 
//D 是特征值 

例 1:非对角矩阵例子(旋转效果)

cpp 复制代码
A = [2 1;
     1 2];
[V,D] = eig(A)



V =

   -0.7071    0.7071
    0.7071    0.7071


D =

     1     0
     0     3、


解释:

λ = 3 方向被拉伸最大 → 主方向

λ = 1 对应最"弱"方向

工程中的真实用途

PCA 求主方向(用 eig)

对协方差矩阵

cpp 复制代码
[V,D] = eig(C);


最大特征值 → 曲面主方向

最小特征值 → 法向量



所有点云法向量算法都用 eig

点云平面拟合(法向量 = 最小特征值方向)

cpp 复制代码
normal = V(:,1);   % 最小特征值对应

这是 PCL / Open3D / MATLAB 同一种逻辑

ICP 求解 SVD/EIG(旋转矩阵)

如果你不用 svd,你可以:

NDT、GICP 的协方差分析

特征值代表局部点云"扁平程度":

  • λ₁ ≪ λ₂, λ₃ → 非常平(地面)

  • λ₁ ≈ λ₂ ≈ λ₃ → 球状噪声

  • λ₁ ≪ λ₂ ≈ λ₃ → 线

GICP/NDT 就是用这些性质约束优化。

eigsvd 在 PCA 中的区别

PCA 本质在求什么?

PCA 要求:

  1. 主方向(Eigenvectors)

  2. 主方差大小(Eigenvalues)

等价于:

  • 对协方差矩阵做 特征分解(eig)

  • 或者对数据矩阵直接做 奇异值分解(svd)

两者结果 完全一致(只差符号与排序)。

eig 和 svd 的区别总结表

项目 eig svd
输入 协方差矩阵 C 原始数据矩阵 X
要求 C 必须对称 X 任意矩阵都行
输出 PCA 特征值、方向 PCA 特征值(σ²)和方向(U)
稳定性 稳定,但需要先算 C 最稳定(强烈推荐)
数据量很大时 C 是 d×d,小 X 是 N×d,可能巨大
工程实际使用 仅在维度低时用 深度学习、点云、视觉都用 SVD

数据量大时 → 用 SVD

维度小(3×3、6×6)时 → eig 足够快

数学关系

eig

svd

MATLAB 示例对比:

cpp 复制代码
% 1. 构造 2D 数据(一个斜方向拉伸的高斯)
rng(0);
theta = pi/6;
R = [cos(theta) -sin(theta); sin(theta) cos(theta)];
D = [3 0; 0 1];   % 方差不同
X = randn(1000,2) * D * R';  % N×2

Xc = X - mean(X);   % 去中心化

%% === 方法1:eig ===
C = cov(Xc);        % 协方差矩阵
[V_eig, D_eig] = eig(C);

%% === 方法2:svd ===
[U,S,V_svd] = svd(Xc,'econ');

% SVD 得到的特征值(注意平方/N)
lambda_svd = diag(S).^2 / size(X,1);

%% 比较
V_eig
V_svd
lambda_svd
diag(D_eig)

结论:

eig 是对协方差矩阵做特征分解;
svd 是对数据矩阵做奇异值分解。
svd 更稳定且适合大规模数据,
eig 只适合小规模(如 3×3)几何问题。

相关推荐
数说星榆1813 小时前
AI存储革新:专为大模型设计的高性能存储
人工智能
子豪-中国机器人3 小时前
2026年1月31日特长测试常见难点
算法
K·Herbert3 小时前
OpenClaw 私人电脑部署风险
人工智能·安全·编辑器
薛定谔的猫19823 小时前
十六、用 GPT2 中文古文模型实现经典名句续写
人工智能·深度学习·gpt2·大模型 训练 调优
Java后端的Ai之路3 小时前
【RAG技术】- 趣味解读RAG 高效召回秘籍之索引扩展
人工智能·机器学习·rag调优·索引拓展
发光的叮当猫3 小时前
记录AI相关的50个关键词和20本书
人工智能
jay神3 小时前
基于深度学习的交通流量预测系统
人工智能·深度学习·自然语言处理·数据集·计算机毕业设计
春日见3 小时前
Autoware使用教程
大数据·人工智能·深度学习·elasticsearch·搜索引擎·docker·容器
minhuan3 小时前
大模型应用:算力分层治理:基于大模型算力四层匹配体系的优化方案.72
人工智能·机器学习·算力的核心构成·算力分层治理