"large" matrices, Eigenvalues, determinants, characteristic polynomials
- To: mathgroup at smc.vnet.net
- Subject: [mg56458] "large" matrices, Eigenvalues, determinants, characteristic polynomials
- From: Grischa Stegemann <grix7-usenet at yahoo.de>
- Date: Tue, 26 Apr 2005 01:33:09 -0400 (EDT)
- Organization: Technical University Berlin, Germany
- Sender: owner-wri-mathgroup at wolfram.com
Dear group What is the difference between calculating Eigenvalues of a matrix M by a) Eigenvalues[M] b) Solve[CharacteristicPolynomial[M,x]==0,x] c) Solve[Det[M - x IdentityMatrix[n]]==0,x] ? Have a look at the following setting: n = 12; M = Table[Table[Random[Real, {0, 100}], {n}], {n}] In this case all the 3 methods a, b and c give the same set of Eigenvalues (neglecting small numerical differences and maybe using Chop). As soon as I increase n to at least 13 the result of method c gives a different set of solutions. In particular method c gives 18 solutions instead of the expected 13, where the 5 new ones always lay close together with small imaginary parts. As far as I can see the problem occurs already when calculating the characteristic polynomial: h[x_] = Det[M - x IdentityMatrix[n]] looks good up to n=12, for n>=13 this function looks very strange, including a fraction and orders of x larger than n. This is particularly annoying since the actual problem I am dealing with involves the calculation of a characteristic function like this: h2[lambda_]=Det[M[lambda] - lambda IdentityMatrix[31]] where M[lambda] is a sparse 31x31 matrix having only the last row and the last column as well as the main diagonal and the first secondary diagonals unequal to zero. The dependence of lambda is an Exp[-lambda] in M[[31,31]]. Of course I want to solve the transcendental equation FindRoot[h2[lambda]==0,{lambda,...}] afterwards. But since the calculation of the determinant already "fails" (giving really high order terms in lambda) I have no chance to get any sane results out of FindRoot. In this case it also doesn't make a difference whether I use h2[lambda_]=Det[M[lambda] - lambda IdentityMatrix[31]] or h2[lambda_]=CharacteristicPolynomial[M[lambda],lambda] which is only available in Mathematica 5 whereas I am using 4.0 or 4.1 very often. Any suggestions, clarifications or hints are really appreciated. Thank you, Grischa
- Follow-Ups:
- Re: "large" matrices, Eigenvalues, determinants, characteristic polynomials
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: "large" matrices, Eigenvalues, determinants, characteristic polynomials