Re: Diagonalizing large matrices
- To: mathgroup at smc.vnet.net
- Subject: [mg107193] Re: [mg107146] Diagonalizing large matrices
- From: Mark McClure <mcmcclur at unca.edu>
- Date: Fri, 5 Feb 2010 03:22:08 -0500 (EST)
- References: <201002041125.GAA29739@smc.vnet.net>
On Thu, Feb 4, 2010 at 6:25 AM, Jim Lambaugh <lambaugh at gmail.com> wrote: > I am in a situation, where I have to diagonalize very large matrices. > My experience with Mathematica is limited, but what I need is the > entire set of eigenvalues. > > I read that LAPACK is used to find entire sets of eigenvalues, but the > Mathematica-help does not say much on this subject. So to make a long > story short: What is the most effective way of finding the entire set > of eigenvalues (and corresponding eigenvectors) of a very large > matrix? If you have a large matrix M with real, floating point entries (such as 1.0), simply use the Eigensystem command: {vals,vecs} = Eigensystem[M] The previous command will store the eigenvalues and eigenvectors in the variables vals and vecs. If you are familiar with Lapack, you should be aware that use of Mathematica is very different. Lapack is a much lower level tool and the programmer is expected to know which algorithm to call in certain situations. For example, DSTEQR uses a QR algorithm to compute the eigenvalues of a symmetric, tri-diagonal matrix of doubles - and there are a zillion such functions. Mathematica automates the process, choosing the appropriate Lapack function to call based on the input. Hope that helps, Mark McClure
- References:
- Diagonalizing large matrices
- From: Jim Lambaugh <lambaugh@gmail.com>
- Diagonalizing large matrices