Any body ever fully diagonalize a 200,000 hermitian matrix?

In summary, the conversation discusses the possibility and practicality of diagonalizing a large matrix, specifically a 200,000x200,000 matrix. It is mentioned that the United States Coast and Geodetic Survey has previously performed a similar calculation, but did not store the matrix as a single entity due to its sparsity. The conversation also explores the reasons for diagonalizing a matrix and the challenges in doing so, including the need for specialized algorithms and large amounts of RAM. The conversation ends with a mention of potentially utilizing parallel algorithms and scalapck on a station to perform the diagonalization.
  • #1
wdlang
307
0
is it possible on a station?

how long?
 
Physics news on Phys.org
  • #2
I doubt that there would be any reason to diagonalize such a matrix. About 10 to 20 years ago, the United States Coast and Geodetic Survey went through a large linear algebra calculation "justifying" the boundaries of "townships" and "sections" on its map (areas surveyed by different teams at different times typically didn't match up exactly). That required several hundred thousand equations in as many unknowns but it was not ever stored as a single matrix (Since positions of points would only affect the positions of point nearby, it would, necessarily, be a "sparse" matrix (almost all entries 0) and there are ways of working with such matrices that do not require storing all of the zero entries). Also, since their object was to "solve" the equations (actually a "least squares" approximation) I believe they used iterative approximation methods rather than diagonalizing.
 
  • Like
Likes DifferentialGalois
  • #3
HallsofIvy said:
I doubt that there would be any reason to diagonalize such a matrix. About 10 to 20 years ago, the United States Coast and Geodetic Survey went through a large linear algebra calculation "justifying" the boundaries of "townships" and "sections" on its map (areas surveyed by different teams at different times typically didn't match up exactly). That required several hundred thousand equations in as many unknowns but it was not ever stored as a single matrix (Since positions of points would only affect the positions of point nearby, it would, necessarily, be a "sparse" matrix (almost all entries 0) and there are ways of working with such matrices that do not require storing all of the zero entries). Also, since their object was to "solve" the equations (actually a "least squares" approximation) I believe they used iterative approximation methods rather than diagonalizing.

there are surely reasons to diagonalize such a matrix

even for sparse matrices, sometimes we need to fully diagonalize it.
 
  • #4
there are surely reasons to diagonalize such a matrix

Like what? First you need a matrix of that size, then you need a reason to diagonalize it. Most matrices don't need to be diagonalized.

I do know there's a text-document matrix of a ton of wikipedia articles. It contains about 200,000 documents and 200,000 words (including names of every person etc., not just english words). The objective is to use it for clustering, so presumably they wanted to do singular value decomposition or something
 
  • #5
wdlang said:
there are surely reasons to diagonalize such a matrix

even for sparse matrices, sometimes we need to fully diagonalize it.

Just for fun, the Gauss-Laguerre quadrature nodes of order 200k (~15 min on newish PC):
Code:
n=2e5;
x=eig(spdiags([-(n-1):0; 2*(n:-1:1)-1; -n:-1]',-1:1,n,n));
 
  • #6
bpet said:
Just for fun, the Gauss-Laguerre quadrature nodes of order 200k (~15 min on newish PC):
Code:
n=2e5;
x=eig(spdiags([-(n-1):0; 2*(n:-1:1)-1; -n:-1]',-1:1,n,n));

but i also need the eigenvectors
 
  • #7
wdlang said:
but i also need the eigenvectors

sorry, my computer doesn't have 320GB of ram.
 
  • #8
I can diagonalize the identity matrix and get all the eigenvectors for you
 
  • #9
wdlang said:
there are surely reasons to diagonalize such a matrix

even for sparse matrices, sometimes we need to fully diagonalize it.
Can you give an example? Anything that can be done by diagonalizing a matrix can also be done by iterative methods and for very large matrices iterative methods will be much faster.

(And, of course, most matrices can't be diagonalized.)
 
  • #10
HallsofIvy said:
(And, of course, most matrices can't be diagonalized.)
That's not really true. It's straight forward to prove that as a subset of [tex] \mathbf{R}^{n^2}[/tex], the matrices in [tex]\mathrm{Mat}_n(\mathbf{R})[/tex] that are not diagonalisable form a set of Lebesgue measure zero. So in this sense, most matrices can be diagonalised.
 
  • #11
bah -- deleting comment -- I don't have a good answer.
 
Last edited:
  • #12
wdlang said:
is it possible on a station?

how long?

For a generic diagonalizable 200.000x200.000 matrix, a naive implementation is quit impossible ('how long' isn't an issues, since your RAM will give up very quickly).

Depending on what you need to do with the eigenvectors and eigenvalues, and the form of your Hermitian matrix, it is usually possible to optimize the calculation very much! This, of course, usually involves specialized and sophisticated algorithms (=much more work than just writing "diagonalize(H)").
 
  • #13
element4 said:
For a generic diagonalizable 200.000x200.000 matrix, a naive implementation is quit impossible ('how long' isn't an issues, since your RAM will give up very quickly).

Depending on what you need to do with the eigenvectors and eigenvalues, and the form of your Hermitian matrix, it is usually possible to optimize the calculation very much! This, of course, usually involves specialized and sophisticated algorithms (=much more work than just writing "diagonalize(H)").

i can do diagonalization of 10000*10000 matrix on my laptop (2.5 RAM)

possibly i will try to do it on a station with parallel algorithm using scalapck
 
  • #14
Are you trying to diagonalize an ordinary matrix or a sparse matrix? Do you know any numerical routines which are optimized for diagonalizing huge sparse matrices? I tried NAG library and Mathematica, but neither seems to have this functionality.
 

Related to Any body ever fully diagonalize a 200,000 hermitian matrix?

1. Can a 200,000 hermitian matrix be fully diagonalized?

Yes, it is possible to fully diagonalize a 200,000 hermitian matrix. This means that all of the elements in the matrix can be arranged in a diagonal pattern, with all non-zero elements on the diagonal and zeros everywhere else.

2. How long does it take to fully diagonalize a 200,000 hermitian matrix?

The time it takes to fully diagonalize a 200,000 hermitian matrix depends on the specific algorithm and computational resources used. However, it can take a significant amount of time due to the large size of the matrix.

3. What is the purpose of diagonalizing a hermitian matrix?

Diagonalizing a hermitian matrix is important because it helps to simplify and understand the matrix's properties. It also allows for easier and more efficient calculations and analysis.

4. Are there any limitations to fully diagonalizing a 200,000 hermitian matrix?

There are no inherent limitations to fully diagonalizing a 200,000 hermitian matrix, but the size and complexity of the matrix may make it difficult or impractical to do so.

5. Can a 200,000 hermitian matrix be diagonalized using any method?

Yes, there are multiple methods for diagonalizing a hermitian matrix, such as using eigendecomposition or unitary transformations. The most suitable method will depend on the specific matrix and desired outcomes.

Similar threads

Replies
9
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
678
Replies
6
Views
2K
  • Linear and Abstract Algebra
Replies
2
Views
1K
Replies
3
Views
2K
  • Linear and Abstract Algebra
Replies
2
Views
2K
  • Linear and Abstract Algebra
Replies
2
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
390
  • Linear and Abstract Algebra
Replies
5
Views
2K
  • Linear and Abstract Algebra
Replies
1
Views
2K
Back
Top