MathGroup Archive 1996

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

Search the Archive

How to calculate a few biggest eigen values for a huge matrix

I've just joined this mailing-list, and I have questions.

I am interested in calculating eigenvectors (and eigenvalues) for,
say, 300x300 matrix. I need just a few (three or four) of the biggest
eigenvalues.  In this order, Eigenvalues and Eigenvectors seem not be
efficient, so I want to write some code.

First I try to write it as a regular function of Mathematica and used
Compile, but it failed, since it cannot deal with matrix of real.

Next I am thinking to write the code in C, and use it from Mathematica
using MathLink.  This again fails, since the mcc does not work well on
my linux box.  The reason seems to be the libML.a came with
Mathematica was compiled so that symbols have underscore as the first
letter, but my version of linux does not use it, so the linker fails
to find the symbols for libML.

Does anybody know a solution to this problem?  Thanks.

### P.S.  the other problem I want to solve is to find
 the additive constant, which is - min_{i,j,k} (d_ij+d_jk-d_ik), where
d_ij is the symmetric distance matrix, such that d_ij=d_ji and d_ii=0.

I tried 
FindAdditiveConstant[d_List,m_Integer] :=

But this is extremely slow for a big matrix. Also another
implementation using f[a_,b_] := Inner[Plus,a,b,Min] was also very

Please let me know any solution to this.

  @ @     Hidetoshi SHIMODAIRA    <shimo at>
   O      Dept. of Math. Eng. & Info. Physics, Univ. of Tokyo


  • Prev by Date: Mathlink
  • Next by Date: Re: BitMap form
  • Previous by thread: Mathlink
  • Next by thread: Re: BitMap form