MathGroup Archive 1994

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

Search the Archive

Re: Generalized Eigenvector and Singular Value Decompositions

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg322] Re: [mg304] Generalized Eigenvector and Singular Value Decompositions
  • From: Mark Kotanchek <mek at guinan.arl.psu.edu>
  • Date: Mon, 12 Dec 94 15:11:50 -0500

Howdy,

Just thought I'd comment on Richard's post since I disagree concerning the  
need for computational efficiency and suspect he looked at an orthogonal  
problem....

   [munch] 

   However:
    >     1) the SVD of a 6x6 complex-valued matrix requires 

    >     0.8 seconds on my   NeXTstation -- which is IMHO 

    >     excessive;
   

   If it takes 2 hours to do a large matrix, then you may have a
   complaint. Taking 0.8 seconds to do anything is not a valid
   complaint, especially given the quirks of timing. My
   NeXTstation yield 0.15 seconds for 10 repetitions of applying
   SingularValues to a random 6x6 matrix as measured by the Timing
   command. On the other hand, doing it just once gives 0.4 seconds
   (no output) or 1.8 second (with output) through the in-window
   time display. They are all measuring different things, none of
   them particularly useful except for comparisons between
   machines. 

   

While a random REAL matrix can be handled with reasonable efficiency by  
Mathematica -- as witnessed by the time required for the SVD of a sequence of  
10 6x6 matrices,

   In[42]:=
      matSet = Table[Table[Random[Real,{-10,10}],{6},{6}],{10}];
      SingularValues/@matSet; // Timing
   

   Out[43]=
      {0.116667 Second, Null}   


dropping into the complex domain is a TOTALLY different story....

   In[44]:=
      matSet = Table[Table[Random[Complex,{-10(1+I),10(1+I)}],{6},{6}],{10}];
      SingularValues/@matSet; // Timing
   

   Out[45]=
      {9.33333 Second, Null}
   

These numbers are consistent with watch timings. Since I occasionally am  
working with sequences of 500+ complex-valued matrices, we can start to get  
up into semi-serious amounts of time on my NeXTstation (running Mma 2.2). 


To some extent, this problem is consistent with my perceived bias of Mma  
towards real arithmetic in both numerical and symbolic computations. IMHO, a  
factor of 80 penalty in working with complex-valued rather than real-valued  
data is not a good thing.

Given my orientation towards signal processing, the complex domain is an  
appropriate place to be. A couple respondees to my original post suggested  
that I use MATLAB -- which, unfortunately, is not available for NEXTSTEP.  
Since I'm not about to give up NEXTSTEP (display Postscript, real OS, other  
apps, etc.), I'm faced with the option of using Mma or Octave. Since I like  
Mma's flexibility w.r.t. data structures and I've got a sizable number of  
packages developed, I'd prefer to use Mma.

In sum, I'll stand by my opinion that Mma needs improved matrix algebra  
numerics -- both in terms of computational efficiency and in terms of  
functions (e.g., generalized eigendecompositions, etc.). An ability to  
declare variables as being matrices, positive-definite, Hermitian, vectors,  
etc. would also be useful from a symbolic perspective.

IMHO, of course,

Mark.
---
Mark Kotanchek
Signal Processing Dept - 363 ASB
Applied Research Lab/Penn State
P.O. Box 30
State College, PA 16804

e-mail:	kotanchek at psu.edu (NeXTmail)
TEL:	(814)863-0682
FAX:	(814)863-0753





  • Prev by Date: Re: Plot curiousities ...
  • Next by Date: Answers: ParametricPlot's list of t(s).
  • Previous by thread: Re: Generalized Eigenvector and Singular Value Decompositions
  • Next by thread: Re: Re: Generalized Eigenvector and Singular Value Decompositions