[SciPy-user] Inverse of complex matrix

David Cournapeau david at ar.media.kyoto-u.ac.jp
Sat Nov 10 03:11:05 EST 2007


Roger Herikstad wrote:
> Dear scipy users,
>  I am trying to invert a 12 by 12 complex matrix R using 
> scipy.linalg.inv(), but the round-off errors seem a bit too big. If I 
> do scipy.dot(Ri,R), the first row of the resulting matrix looks like 
> this:
>
> array([ 0.953125  +0.j        ,  0.06542969+0.01171875j,
>         0.08154297+0.15234375j, -0.078125  -0.09375j   ,
>         0.19140625-0.0859375j ,  0.08203125+0.140625j  ,
>        -0.08398438+0.0078125j , -0.02539062-0.03125j   ,
>        -0.06738281+0.015625j  , -0.04736328+0.15820312j,
>        -0.09057617+0.02832031j,  0.109375  -0.0625j    ])
>
>  
> Is this normal? Inverting a 2x2 matrix produces the expected result. 
> I've attached a pickle of my matrix. Thanks!
As a rule, you should not invert a matrix unless you *really* need it. 
For example, if you want X in
A X = B, with A a matrix, B and X vectors, inverting A should be 
avoided. Some other methods are better suited (numerically speaking), 
depending on A and what you are trying to do.

The mathworks have good introduction on this topic, if you look for 
online help on inv, pinv and so on:

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/inv.html

cheers,

David




More information about the SciPy-User mailing list