An error of matrix inversion using NumPy

BJörn Lindqvist bjourne at gmail.com
Wed Apr 4 15:37:05 CEST 2007


On 4 Apr 2007 06:15:18 -0700, lancered <wangday at gmail.com> wrote:
>         During the calculation, I noticed an apparent error of
> inverion of a 19x19 matrix. Denote this matrix as KK, U=KK^ -1, I
> found the product of U and KK is not equivalent to unit matrix! This
> apparently violate the definition of inversion. The inversion is
> through the function linalg.inv().

Could it have something to do with floating point accuracy?

>>> r = matrix([[random.random() * 9999 for x in range(19)] for y in range(19)])
>>> allclose(linalg.inv(r) * r, identity(19))
True

>        So,  can you tell me what goes wrong?  Is this a bug in
> Numpy.linalg? How to deal with this situation?  If you need, I can
> post the matrix I used below, but it is so long,so not at the moment.

Please post it.

-- 
mvh Björn



More information about the Python-list mailing list