|
[Date Index]
[Thread Index]
[Author Index]
Re: "large" matrices, Eigenvalues, determinants, characteristic polynomials
- To: mathgroup at smc.vnet.net
- Subject: [mg56489] Re: "large" matrices, Eigenvalues, determinants, characteristic polynomials
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Tue, 26 Apr 2005 21:52:49 -0400 (EDT)
- Organization: Uni Leipzig
- References: <d4kktj$ed3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
you know that all determinat calculations are very sensitive against
rounding errors ? This become more and more critical when the
size of the matrix increase. The main task of all eigensystem-solvers
is to avoid the computation of the determinant of
of the characteristic polynomial. So you should try to increase the
precision of your input data.
Regards
Jens
"Grischa Stegemann" <grix7-usenet at yahoo.de>
schrieb im Newsbeitrag
news:d4kktj$ed3$1 at smc.vnet.net...
> 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
>
>
>
>
Prev by Date:
Re: can Mathematica be useful for this?
Next by Date:
Re: Re: simplifying ulam spiral code
Previous by thread:
Re: "large" matrices, Eigenvalues, determinants, characteristic polynomials
Next by thread:
MathKernel Crash on NonlinearRegress
|