Re: Eigenvalues works very slow
- To: mathgroup at smc.vnet.net
 - Subject: [mg128491] Re: Eigenvalues works very slow
 - From: David Bailey <dave at removedbailey.co.uk>
 - Date: Thu, 25 Oct 2012 01:40:32 -0400 (EDT)
 - Delivered-to: l-mathgroup@mail-archive0.wolfram.com
 - Delivered-to: l-mathgroup@wolfram.com
 - Delivered-to: mathgroup-newout@smc.vnet.net
 - Delivered-to: mathgroup-newsend@smc.vnet.net
 - References: <k685fc$m70$1@smc.vnet.net>
 
On 24/10/2012 08:30, jure lapajne wrote:
> Hello,
> I'm trying to calculate eigenvalues of different sized matrices (from 10x10 to 1000x1000) using mathematica's built-in function - Eigenvalues. For smaller matrices it works ok, but for larger matrices it's just too slow. I tried writing the code in another system and it finds eigenvalues very quickly (in a second or two at most) even for big matrices. I'm not sure whether am I doing something wrong or is the speed difference really this big.
> My code (you only need to change d to change the size of matrix):
> d = 25;
> q = Table[Table[1/2*Sqrt[i + j + 1]*KroneckerDelta[Abs[i - j], 1], {j, 0, d-1}],{i, 0, d - 1}];
> h0 = Table[Table[(i + 1/2)*KroneckerDelta[i, j], {j, 0, d - 1}], {i, 0,d-1}];
> lambda = 1/2;
> q4 = lambda*q.q.q.q;
> N[Eigenvalues[q4 + h0]]
>
> Thanks for help.
>
You are calculating eigenvalues of an integer matrix - so you will get a 
result in terms of complicated fractions, that you then reduce to 
floating point numbers using N !
Change the last line to
Eigenvalues[N[q4 + h0]]
David Bailey
http://www.dbaileyconsultancy.co.uk