#11248: SVD matrix decomposition may return a non-invertible "unitary" matrix
------------------------------+---------------------------------------------
Reporter: rbeezer | Owner: jason, was
Type: defect | Status: new
Priority: major | Milestone: sage-4.7
Component: linear algebra | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author:
Merged: | Dependencies:
------------------------------+---------------------------------------------
Changes (by slelievre):
* cc: slelievre (added)
Comment:
Replying to [comment:11 rbeezer]:
I tried the one-liner in Sage a few times and got True all the time.
Here is what I get with the numpy/scipy in 'sage -python'.
{{{
$ date -u "+Date: %F %T Z"
Date: 2011-04-25 10:00:46 Z
$ uname -a
Darwin U 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009;
root:xnu-1228.15.4~1/RELEASE_I386 i386
$ gcc -v
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc_42/gcc_42-5577~1/src/configure --disable-
checking --enable-werror --prefix=/usr --mandir=/usr/share/man --enable-
languages=c,objc,c++,obj-c++ --program-transform-
name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-
darwin9 --with-gxx-include-dir=/usr/include/c++/4.0.0 --host=i686-apple-
darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5577)
$ alias sage='/Applications/sage-4.7.alpha5/sage'
$ sage -python
Python 2.6.4 (r264:75706, Apr 22 2011, 11:05:07)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import scipy.linalg
>>> A = numpy.array( [[1 - 1j, -3j, -2 + 1j, 1, -2 + 3j],
... [ 1 - 1j, -2 + 1j, 1 + 4j, 0, 2 + 1j],
... [ -1, -5 + 1j, -2 + 1j, 1 + 1j, -5 - 4j],
... [-2 + 4j, 2 - 1j, 8 - 4j, 1 - 8j, 3 - 2j]])
>>> U, S, VH = scipy.linalg.svd(A)
>>> VH
array([[-0.10378056+0.25534799j, 0.22371070-0.07765616j,
0.55736639-0.40276461j, -0.04874824-0.50177439j,
0.32025785-0.19584279j],
[-0.28067375-0.0116824j , -0.49586800+0.1305711j ,
0.14432786+0.08803575j, 0.21076793+0.04575091j,
-0.19220732-0.73899332j],
[ 0.10136055-0.1681669j , 0.13465050+0.69687595j,
0.19709231-0.03497225j, -0.42056091+0.37188099j,
0.28760069-0.14046187j],
[-0.27289262+0.66077235j, 0.06177902+0.25464336j,
-0.52050549+0.06307174j, 0.11847581-0.00883692j,
0.35771384-0.05719981j],
[ 0.00000000+0.j , 0.00000000+0.j ,
0.00000000+0.j , 0.00000000+0.j , 0.00000000+0.j
]])
>>> numpy.dot(VH, VH.conj().T)
array([[ 1.00000000e+00 +1.38777878e-17j,
-8.32667268e-17 +2.84494650e-16j,
1.38777878e-16 -1.45716772e-16j,
-1.94289029e-16 +1.38777878e-17j,
0.00000000e+00 +0.00000000e+00j],
[ -8.32667268e-17 -2.77555756e-16j,
1.00000000e+00 +0.00000000e+00j,
-7.56339436e-16 +1.38777878e-16j,
5.55111512e-17 -1.66533454e-16j,
0.00000000e+00 +0.00000000e+00j],
[ 1.38777878e-16 +1.17961196e-16j,
-7.56339436e-16 -1.28369537e-16j,
1.00000000e+00 +6.93889390e-18j,
-3.88578059e-16 +4.16333634e-17j,
0.00000000e+00 +0.00000000e+00j],
[ -1.94289029e-16 -1.04083409e-17j,
5.55111512e-17 +1.99493200e-16j,
-3.88578059e-16 -2.08166817e-17j,
1.00000000e+00 -6.93889390e-18j,
0.00000000e+00 +0.00000000e+00j],
[ 0.00000000e+00 +0.00000000e+00j,
0.00000000e+00 +0.00000000e+00j,
0.00000000e+00 +0.00000000e+00j,
0.00000000e+00 +0.00000000e+00j,
0.00000000e+00 +0.00000000e+00j]])
>>>
}}}
Samuel
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11248#comment:12>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.