[SciPy-user] Bug in inverse matrixcalculation for "scipy_core-0.8.4.win32-py2.3.exe"
Randewijk P-J <pjrandew@sun.ac.za>
pjrandew at sun.ac.za
Thu Dec 15 02:38:53 EST 2005
Dear Travis,
...
>>> os.environ['NO_SCIPY_IMPORT']='True'
>>> from scipy import *
Skip importing scipy packages (NO_SCIPY_IMPORT=True)
>>> k
matrix([[ 400. , 400. , 0. , 0. ],
[ 0. , 0. , 400. , 400. ],
[ 0. , 346.41016151, 0. , 173.20508076],
[ 346.41016151, 0. , 173.20508076, 0. ]])
>>> k.I
Traceback (most recent call last):
File "<pyshell#5>", line 1, in ?
k.I
File "C:\Python\Lib\site-packages\scipy\base\matrix.py", line 204, in
getI
return matrix(linalg.inv(self))
File "C:\Python\Lib\site-packages\scipy\basic\basic_lite.py", line
103, in inverse
return solve_linear_equations(a, Numeric.identity(a.shape[0]))
File "C:\Python\Lib\site-packages\scipy\basic\basic_lite.py", line 93,
in solve_linear_equations
raise LinAlgError, 'Singular matrix'
LinAlgError: Singular matrix
>>>
...
Further to Nils & Fernando's comments, for the following singular matrix
k, and with 'NO_SCIPY_IMPORT'='True'
...
>>> k
matrix([[ 391.69663728, 407.81602433, 0. , 0. ],
[ 0. , 0. , 391.69663728, 407.81602433],
[ 0. , 346.1991378 , 0. , 183.56941791],
[ 346.1991378 , 0. , 183.56941791, 0. ]])
>>> k.I
matrix([[ -1.64892268e+13, -8.74328513e+12, 1.94239968e+13,
1.86562414e+13],
[ 1.58374716e+13, 8.39769695e+12, -1.86562414e+13,
-1.79188325e+13],
[ 3.10975335e+13, 1.64892268e+13, -3.66323052e+13,
-3.51843721e+13],
[ -2.98683685e+13, -1.58374716e+13, 3.51843721e+13,
3.37936702e+13]])
>>>
...
Both k matrixes fail however in full scipy... and shows the annoying
message, "pythonw.exe has encountered a problem and needs to close. We
are sorry for the inconvenience."
My platform is winXP, py2.3 using the following binaries:
scipy_core-0.8.4.win32-py2.3.exe
scipy-0.4.3.win32-py2.3.exe
scipy_core-0.6.1.win32-py2.3.exe
and
scipy-0.4.3.win32-py2.3.exe
Doesn't works fine together...
PJR
P.S. How does the 'NO_SCIPY_IMPORT' environment variable work?
with
...
>>> os.environ['NO_SCIPY_IMPORT']=1
Traceback (most recent call last):
File "<pyshell#1>", line 1, in ?
os.environ['NO_SCIPY_IMPORT']=1 # this will not import full scipy
but
File "C:\Python\Lib\os.py", line 414, in __setitem__
putenv(key, item)
TypeError: putenv() argument 2 must be string, not int
...
"os.environ['NO_SCIPY_IMPORT']='True'" works, as shown at the top, but
...
>>> os.environ['NO_SCIPY_IMPORT']='False'
>>> from scipy import *
Skip importing scipy packages (NO_SCIPY_IMPORT=False)
>>>
...
Doesn't work as I would have expect it...
> -----Original Message-----
> From: scipy-user-bounces at scipy.net
> [mailto:scipy-user-bounces at scipy.net] On Behalf Of Travis Oliphant
> Sent: 15 December 2005 00:27
> To: SciPy Users List
> Subject: Re: [SciPy-user] Bug in inverse matrixcalculation
> for "scipy_core-0.8.4.win32-py2.3.exe"
>
>
> Randewijk P-J <pjrandew at sun.ac.za> wrote:
>
> > Dear Travis,
> >
> > Thank-you for the "silent" version (0.8.4) of scipy_core.
> >
> > Unfortunately when trying to invert a singular matrix using
> scipy_core
> > 0.8.4, python "crashes" instead of issuing the usual error message:
>
> I'm not seeing this. I'm getting the proper error message.
> Can you show
> us the matrix you are using and give more information about
> the platform.
>
> Also, try it when the environment variable NO_SCIPY_IMPORT=1
>
> import os
> os.environ['NO_SCIPY_IMPORT']=1 # this will not import full
> scipy but
> use only scipy_core\
> import scipy
>
> Full scipy installs its own (hopefully better) matrix
> inverse. We need
> to figure out which one is giving you trouble.
>
> -Travis
>
>
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.net http://www.scipy.net/mailman/listinfo/scipy-user
>
More information about the SciPy-User
mailing list