home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!noc.near.net!hri.com!spool.mu.edu!yale.edu!jvnc.net!netnews.upenn.edu!dsinc!vu-vlsi.ee.vill.edu!perry
- From: perry@vu-vlsi.ee.vill.edu (Rick Perry)
- Newsgroups: sci.math.num-analysis
- Subject: Re: SVD implementation
- Message-ID: <Bzs87G.M8s@vu-vlsi.ee.vill.edu>
- Date: 24 Dec 92 21:11:39 GMT
- References: <1992Dec24.110843.29860@cv.ruu.nl>
- Organization: Villanova University
- Lines: 29
-
- In article <1992Dec24.110843.29860@cv.ruu.nl> ger@cv.ruu.nl (Ger Timmens) writes:
- >I want the singular value decomposition of a 3x3 matrix.
- >I currently use the algorithm of numerical recipes.
- >However I think a much simpler algorithm should be out there.
-
- There's a method using orthogonalization by plane rotations from
- the book by J. C. Nash, "Compact Numerical Methods for Computers:
- Linear Algebra and Function Minimisation," Wiley 1979. If you use
- it to orthogonalize the columns, you only get a basis for the
- column space, not its orthogonal complement, though you get the
- complete row-space and null-space. I am pretty sure it
- is not as efficient as the standard SVD algorithm in Linpack,
- but it is very simple to program.
-
- I used Nash's technique in an application involving an N-by-3 coefficient
- matrix for linear predictive coding. By some simple preprocessing
- to remove the constant LPC coefficient, the matrix was transformed to
- N-by-2. With just two columns, only one plane rotation is needed to
- get the SVD, and you can even explicitly compute the singular values
- without performing the whole SVD. But I think that in general,
- an N-by-3 matrix has no such simple solution.
-
- I've implemented Nash's algorithm in Fortran, Pascal, and C, and
- can mail you code if you want it.
-
- ...Rick perry@vu-vlsi.ee.vill.edu
-
- Dr. Rick Perry, Department of Electrical and Computer Engineering
- Villanova University, Villanova, PA 19085, 215-645-4969, hm: 215-259-8734
-