Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Strange Det function behavior.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg65477] Re: Strange Det function behavior.
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Mon, 3 Apr 2006 06:59:55 -0400 (EDT)
  • Organization: The University of Western Australia
  • References: <e0o513$1to$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <e0o513$1to$1 at smc.vnet.net>,
 "Alexander" <beginning.physst at mail.ru> wrote:

> Suppose we have defined the following function:
> 
> f[x_Integer] := Det[ Table[ Random[]*t + i/j, {i, x}, {j, x} ] ];
> 
> Now try to make a table for different values of argument (matrix
> dimension):
> 
> Table[f[i], {i, 12}] // TableForm
> 
> It takes a considerable time on my Celeron 1700 with Mathematica 5.2
> under WinXP to make such a table.

It is not suprising that this is is time-consuming. Effectively you are 
computing the _symbolic_ determinant of n x n matrices involving t.

Defining

 mat[n_] := Table[a[i,j], {i, n}, {j, n}]
 rat[n_] := Table[i/j, {i, n}, {j, n}]
 sign[n_] := Table[(-1)^(i + j), {i, n}, {j, n}]

then, effectively, the determinant you are computing can be expressed as

 Det[ mat[n] t + rat[n] ] == Det[ mat[n] ] t^n + Total[
  Map[Reverse, Minors[ mat[n] ], {0, 1}] * rat[n] * sign[n], 2] t^(n-1)

as you can easily confirm for small n. Note that 

  Map[Reverse, Minors[mat], {0,1}] 

makes the (i,j)-th element of Minors[mat] correspond to deleting the 
i-th row and j-th column of mat (from the online help for Minors). 

The important point about the right-hand side of this expression is that 
no symbolic matrix computations are required. Hence your original 
function can be written as 

 f[n_Integer] := 
  Module[ { m = Table[Random[], {i, n}, {j, n}]}, Det[m] t^n + 
   Total[Map[Reverse, Minors[m], {0, 1}] * rat[n] * sign[n], 2] t^(n-1)]

Now the time to compute f[n] is quite reasonable.

> Once we made this table we see very strange bihavior, all results
> before x=12 dimension are polynoms,
> but starting from x=12 result become very big and very
> strange, and in fact it's not even a polynom.

Are you sure? I think that the determinant has not been expanded out.

> I spend several hours try to understand why system acts so strange, and
> finally came to idea that the answer is in numbers representation and
> inner system algorithms used to evaluate Det function.

It might have been better spending this time on obtaining a better 
representation for the original function!

Cheers,
Paul

_______________________________________________________________________
Paul Abbott                                      Phone:  61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)    
AUSTRALIA                               http://physics.uwa.edu.au/~paul


  • Prev by Date: Re: Typing special symbols in text mode?
  • Next by Date: Re: simplify a trig expression
  • Previous by thread: Re: Strange Det function behavior.
  • Next by thread: Re: Convex Hull 3D