Re: eigenvector computations
- To: mathgroup at smc.vnet.net
- Subject: [mg117362] Re: eigenvector computations
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 16 Mar 2011 06:27:16 -0500 (EST)
Bill Thurston wrote:
> I'm doing some computations where I need to find the size of the leading eigenvalue of various matrices that depend on a rational number between 0 and 1. The matrices are mostly 0, with nonzero entries 1 or 2. I'm doing this using
> sparse matrices and, for a matrix A, asking for
> First@Abs[ Eigenvalues[ N[ A],1]]
> which usually works fine, but sometimes I get error messages like this:
>
>
> Eigenvalues::maxit2 : "Warning: maximum number of iterations, 1000, has been \
> reached by the Arnoldi algorithm without convergence to the specified \
> tolerance, but the current best computed value has been returned. You can use \
> method options with Method -> {Arnoldi, opts} to increase the size of basis \
> vectors, the maximum number of iterations, reduce the tolerance, or use an \
> estimate as a shift, any of which may help."
>
> This would be fine except that I can't find any Mathematica documentation for the Arnoldi method or its options.
> What gives?
> Bill Thurston
>
This lack of documentation on the advanced features of numerical linear
algebra was filed as a bug report several months back. I am ever hopeful
that it will be addressed.
For your specific problem, I wonder if it might be worked around by
adding a modestly large multiple m of an identity matrix, then
subtracting m from the eigenvalue result? That is akin (or at least
related) to a shift, but does not require intricate knowledge of Method
-> {Arnoldi, opts} (which, without careful checking, I also do not have).
Daniel Lichtblau
Wolfram Research