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