Eigen decomposition of a large spasre matrix

Click For Summary
SUMMARY

The discussion centers on finding eigenvalues and eigenvectors of a 12000 x 12000 sparse matrix using MATLAB, which results in an out-of-memory error due to insufficient RAM (4GB). Users recommend utilizing ARPACK or ARPACK++ with C/C++ for efficient computation of a limited number of eigenvalues, as traditional methods are ineffective for large sparse matrices. Alternatives such as Mathematica were mentioned, but challenges arise in converting MATLAB matrix formats. Numerical methods and iterative techniques are suggested as viable solutions for handling large sparse matrices.

PREREQUISITES
  • Understanding of sparse matrix representation and properties
  • Familiarity with eigenvalue problems and numerical methods
  • Basic knowledge of ARPACK and its implementation in C/C++
  • Experience with MATLAB and its limitations regarding memory management
NEXT STEPS
  • Research ARPACK and ARPACK++ for sparse matrix eigenvalue computations
  • Learn about LAPACK and its application in C for numerical methods
  • Explore Mathematica's capabilities for handling large matrices and eigenvalue problems
  • Investigate iterative methods for solving eigenvalue problems in large sparse matrices
USEFUL FOR

Data scientists, numerical analysts, and software developers working with large sparse matrices and seeking efficient methods for eigenvalue computations.

Mecas
Messages
2
Reaction score
0
I have 12000 x 12000 R(data class single) sparse matrix, and I want to find its eigen values and vectors, but I can't do it in matlab, it gives out of memory error by doing
[V D] = eigs(R)
and I am using 4GB RAM , online help suggested using ARPACK or ARPACK++ with C/C++. please any alternative means or suggestion on how to solve this will be greatly appreciated .
 
Physics news on Phys.org
How many eigenvalues do you want? Typically sparse matrix methods are not possible if you want a sizable fraction of the eigenvalues. You need to use a method that only returns the first few and is designed for sparse matrices.

I believe that Mathematica has such methods implemented but I have never used it myself. I don't know about other software.
 
At least first 7, but I also need the eigenvectors as well, I have inquired about mathematica, I discovered I have to change the matrix R ( which is generated in matlab) into its format manually (quite impossible for a 12000 x 12000 matrix) which means there is not command that can easily do that in mathimatica. from research, its suggested to se numerical methods(iteration) for such large and sparse matrix but I don't how to go about it and that's where the arpack with fotran77 or lapack with C come in but I am not familiar with them.
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 4 ·
Replies
4
Views
8K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
5K