ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

第 20 章 · 特征值与特征向量

第 20 章 · 特征值与特征向量 每个方阵都有自己的指纹——特征值和特征向量。它们揭示了矩阵的本质特性在振动分析、主成分分析PCA、量子力学、图像压缩里都有重要应用。20.1 定义对矩阵 A如果存在一个数 λ和一个非零向量 v满足A · v λ · v则λ叫 A 的特征值eigenvaluev叫 A 的特征向量eigenvector对应特征值 λ顺便一提Eigen 库的名字Eigen就来自德语eigen本征的、自身的指的就是特征值/特征向量。20.2 直观理解A·v λ·v 意味着矩阵 A 作用在特征向量 v 上只改变 v 的长度缩放 λ 倍不改变它的方向。A 的作用 v ───────────→ λ·v 方向不变长度变成 λ 倍特征向量就是那些经过变换后方向不变的特殊方向特征值就是沿这些方向的缩放倍数。例子旋转矩阵绕原点转 90°R [ 0 -1 ] [ 1 0 ]任何向量被它作用都会转 90°方向改变所以旋转矩阵没有实数特征向量除非转 0° 或 180°。20.3 为什么重要特征值/特征向量是很多领域的核心工具振动分析结构的固有频率就是特征值振型就是特征向量主成分分析PCA找到数据方差最大的方向机器学习降维Google PageRank网页排名的核心就是求特征向量图像压缩用最大几个特征值近似矩阵SVD 压缩判断矩阵性质所有特征值 0矩阵是正定的优化问题里重要20.4 对称矩阵的特征值分解对称矩阵Aᵀ A有一堆好性质特征值全是实数特征向量互相正交垂直。这让它特别好处理。#includeEigen/Dense#includeEigen/Eigenvalues#includeiostreamintmain(){Eigen::Matrix3d A;A2,1,0,1,3,1,0,1,2;// 对称矩阵Eigen::SelfAdjointEigenSolverEigen::Matrix3dsolver(A);std::cout特征值 solver.eigenvalues().transpose()std::endl;std::cout特征向量每列一个\nsolver.eigenvectors()std::endl;return0;}SelfAdjointEigenSolver专门求解对称矩阵的特征值结果都是实数特征值按从小到大排序。存成ch20.cpp按附录 C.3 编译运行实际输出特征值 1 2 4 特征向量每列一个 0.57735 -0.707107 0.408248 -0.57735 9.02056e-17 0.816497 0.57735 0.707107 0.408248这三个数怎么验每一列是一个特征向量第一列(0.57735, -0.57735, 0.57735)对应第一个特征值 1第二列对应 2第三列对应 4。拿第一列去算A * v结果应该等于1 * v下一节 20.5 就是这么验证的。那个9.02056e-17就是 0属于浮点残渣见第 21 章末尾。20.5 验证 A·v λ·vEigen::Vector3d vsolver.eigenvectors().col(0);// 第一个特征向量doublelambdasolver.eigenvalues()(0);// 对应特征值std::coutA*v \nA*v\n;std::coutλ*v \nlambda*v\n;// 两者应该相等λ*v 缩放后的 v20.6 一般矩阵可能有复数特征值非对称矩阵的特征值可能是复数需要EigenSolverEigen::Matrix2d B;B0,-1,1,0;// 旋转 90° 的矩阵Eigen::EigenSolverEigen::Matrix2dgen(B);std::cout特征值 gen.eigenvalues()std::endl;// (0,1) 和 (0,-1)即 ±i旋转矩阵的特征值是纯虚数 ±i——这正是旋转不改变长度的代数体现。20.7 小应用判断矩阵是否正定正定矩阵所有特征值都 0 的对称矩阵。它在优化、力学里很重要保证有最小值。doubleminEigensolver.eigenvalues()(0);if(minEigen0){std::coutA 是正定矩阵std::endl;}else{std::coutA 不是正定矩阵std::endl;}20.8 小结特征值 λ、特征向量 v 满足 A·v λ·v。几何意义A 作用在 v 上只缩放不转向。对称矩阵特征值全实数、特征向量正交。应用PCA、振动、PageRank、图像压缩、正定判断。下一章学习几何变换——用矩阵做旋转、平移、缩放这是 Eigen 几何模块的数学基础。练习题写出特征值和特征向量的定义式。用 Eigen 求对称矩阵 [3 1; 1 3] 的特征值和特征向量。验证上面矩阵满足 A·v λ·v。为什么旋转 90° 的矩阵没有实数特征值用自己的话解释正定矩阵是什么。
返回列表