c++特征库计算矩阵特征值及特征向量

  

本文主要讲解利用特征库计算矩阵的特征值及特征向量并与Matlab计算结果进行比较。

  

<强> c++特征库代码

        # include & lt; iostream>   # include & lt;特征/Dense>   # include & lt;特征/Eigenvalues>   使用名称空间特征;   使用名称空间性病;      空白Eig ()   {   Matrix3d;   & lt; & lt;1,2,3,4,5,6,7,8,9;   cout & lt; & lt;“这是一个3 x3的矩阵,:“& lt; & lt;endl & lt; & lt;& lt; & lt;endl & lt; & lt;endl;   EigenSolveres(一个);      Matrix3d D=es.pseudoEigenvalueMatrix ();   Matrix3d V=es.pseudoEigenvectors ();   cout & lt; & lt;“pseudo-eigenvalue矩阵D:“& lt; & lt;endl & lt; & lt;D & lt; & lt;endl;   cout & lt; & lt;“pseudo-eigenvector矩阵V:“& lt; & lt;endl & lt; & lt;V & lt; & lt;endl;   cout & lt; & lt;”最后,V * D * ^ (1)=" & lt; & lt;endl & lt; & lt;V * D * V.inverse () & lt; & lt;endl;   }   int main ()   {      Eig ();      }      

计算结果:

  

 C + +特征库计算矩阵特征值及特征向量

  

最大最小特征值及其索引位置

     //maxCoeff//minCoeff      int col_index row_index;   cout & lt; & lt;D.maxCoeff(及row_index, col_index) & lt; & lt;endl;   cout & lt; & lt;row_index & lt; & lt;”“& lt; & lt;col_index & lt; & lt;endl;      

Matlab代码         清除所有   clc=(1 2 3 4 5 6;7 8 9)   [V D]=eig (A)      

Matlab计算结果

  

 C + +特征库计算矩阵特征值及特征向量

  

<强>使用排序()函数对特征值排序

  

主成份分析以及许多应用时候,需要对特征值大小排列。

        一个=魔法(6);   [V D]=eig (A)   [D_S,指数]=排序(诊断接头(D),“下降”)   V_S=V(:,指数)      

结果         V=0.4082 -0.2887 0.4082 0.1507 0.4714 -0.4769   0.4082 0.5774 0.4082 0.4110 0.4714 -0.4937   0.4082 -0.2887 0.4082 -0.2602 -0.2357 0.0864   0.4082 0.2887 -0.4082 0.4279 -0.4714 0.1435   0.4082 -0.5774 -0.4082 -0.7465 -0.4714 0.0338   0.4082 0.2887 -0.4082 0.0171 0.2357 0.7068         D=111.0000 0 0 0 0 0   27.0000 0 0 0 0 0   -27.0000 0 0 0 0 0   9.7980 0 0 0 0 0   0 0 0 0 -0.0000 0   0 0 0 0 0 -9.7980         D_S=111.0000   27.0000   9.7980   -0.0000   -9.7980   -27.0000         V_S=0.4082 -0.2887 0.1507 0.4714 -0.4769 0.4082   0.4082 0.5774 0.4110 0.4714 -0.4937 0.4082   0.4082 -0.2887 -0.2602 -0.2357 0.0864 0.4082   0.4082 0.2887 0.4279 -0.4714 0.1435 -0.4082   0.4082 -0.5774 -0.7465 -0.4714 0.0338 -0.4082   0.4082 0.2887 0.0171 0.2357 0.7068 -0.4082      

<强>结语

  

本人是在实验中利用特征库求取最小特征值对应特征向量做PCA分析时使用,曾经再不知道有特征库的情况下自己写过矩阵相关运算的模板类,现在接触到特征库,就把困扰过自己的问题今天做一个小小总结。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

c++特征库计算矩阵特征值及特征向量