Почему существует разница между выводом собственной библиотеки и тем, что было задокументировано?
Здравствуйте, я написал следующую программу с библиотеками igraph и eigen и хочу вычислить наибольшее собственное значение матрицы смежности графа. проблема заключается в том, что результирующее собственное значение набора данных polbooks равно 23.8653, а то, что было написано в статьях, - 11.93. в чем разница между этими двумя числами? Я использовал этот пример в GitHub - yixuan/arpack-eigen: редизайн ARPACK только для заголовка C++ с использованием библиотеки Eigen[^]
igraph_matrix_t res; igraph_matrix_init(&res,igraph_vcount(&g),igraph_vcount(&g)); igraph_get_adjacency(&g,&res,IGRAPH_GET_ADJACENCY_BOTH, false); Eigen::MatrixXd M(res.nrow,res.ncol); for(int i=0;i<res.nrow;i++) for(int j=0;j<res.ncol;j++) { M(i,j)=MATRIX(res,i,j); } DenseSymMatProd<double> op(M); SymEigsSolver< double, LARGEST_ALGE, DenseSymMatProd<double> > eigs1(&op, 1, 4); eigs1.init(); int nconv = eigs1.compute(); Eigen::VectorXd evalues; if(eigs1.info() == SUCCESSFUL) evalues = eigs1.eigenvalues(); std::cout << "largest Eigenvalue: " << evalues << std::endl;
Что я уже пробовал:
Я не знаю, в чем проблема с моей программой. пожалуйста, помогите мне. спасибо