Re: sporadic failure of SingularValueDecomposition[] in Mathematica 5.2
- To: mathgroup at smc.vnet.net
- Subject: [mg60590] Re: [mg60563] sporadic failure of SingularValueDecomposition[] in Mathematica 5.2
- From: Pratik Desai <pdesai1 at umbc.edu>
- Date: Wed, 21 Sep 2005 03:20:28 -0400 (EDT)
- References: <200509200919.FAA17908@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
John Sidles wrote: >Dear Mathgroup folks > >Has anyone else encountered sporadic failure of >SingularValueDecomposition[]? > >Running Mathematica 5.2 under OS X, our UW Quantum System Engineering (QSE) >group >is finding that SVD fails completely, for well-conditioned Hermitian >input >matrices, about one time in 1000. > >A test matrix for which SingularValueDecomposition[] fails completely >can be found in this directory: > > http://faculty.washington.edu/sidles/mma_svd_failure_example/ > >The directory contains the following files: > > mma_svd_matrix.m (* a 90x90 Hermitian matrix for which SVD >fails *) > mma_svd_failure_example.pdf (* notebook demonstrating the >failure *) > mma_svd_failure_example.pdf (* PDF of above *) > >It would be a big help if someone running Unix or Windows would >report on whether this matrix fails for them. > >Thanks in advance !!! John Sidles > > > "For later use, compute the eigenvalues of the m; these should equal the SVD values." That is not exactly true (in all cases), the SVD eigenvalues are calculated from the matrix Transpose[m].m and the eigenvalues I think and hope come by finding the root of the characteristic equation foundby Det[ IdentityMatrix[Length[m]]*lamba-m ] For example: matx = {{0.7, 1.1, 2.0, 1.7}, {-2., -4., -8.6, -7.4}, {0, -0.5, -1., -1.}, {1., 2.8, 6., 5.3}} Map[MatrixForm, {u, w, v} = SingularValueDecomposition[matx]]; Eigenvalues[matx] // MatrixForm >>{0.20000000000000004 + 0.5000000000000002*I, 0.20000000000000004 - 0.5000000000000002*I, 0.2999999999999996 + 0.09999999999999676*I, 0.2999999999999996 - 0.09999999999999676*I} w // MatrixForm >>{{15.2386, 0., 0., 0.}, {0., 0.506341, 0., 0.}, {0., 0., 0.138565, 0.}, {0., 0., 0., 0.0271242}} As you can see they are not the same. It has always been a curiosity for me as to what algorithm Mathematica uses to calculate the eigenvalues. I know for the other off the counter Matrix based package (starts with M) the algorithm it uses is a variant of the QZ algorithm. As to the eigenvectors, you can make your own conclusions SVD, in my opinion is used when one has rectangular matrices, If your matrix is square and normal, why not try ShurDecomposition or even better JordanDecomposition. As to your matrix I got remarkable better results by including this innocuous line in the begining of each eigenvalue analysis code Clear[u,w,v] :) Best regards Hope this helps -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134
- References:
- sporadic failure of SingularValueDecomposition[] in Mathematica 5.2
- From: John Sidles <sidles@u.washington.edu>
- sporadic failure of SingularValueDecomposition[] in Mathematica 5.2