[SciPy-User] problem with dot for complex matrices

Ryan Krauss ryanlists@gmail....
Tue Mar 27 13:48:14 CDT 2012


I am loosing my mind while trying to debug some code.  I am trying to
find the cause of some differences between numpy analysis and analysis
done first in maxima and then converted to python code.  The maxima
approach is more difficult to do, but seems to lead to the correct
answers.  The core issue seems to be one dot product of a 2x2 and a
2x1 that are both complex numbers:

here is the 2x2:

ipdb> submatinv
array([[-0.22740265-1.63857451j, -0.07740957-0.55847886j],
       [-3.20602957-4.93959054j, -0.36746252-1.68352465j]])

here is the 2x1:

ipdb> augcol
array([[ -3.74729148e-05-0.0005937j ],
       [  7.96025801e-04+0.01137658j]])

verifying their shapes and data types:

ipdb> submatinv.shape
(2, 2)
ipdb> submatinv.dtype
dtype('complex128')
ipdb> augcol.shape
(2, 1)
ipdb> augcol.dtype
dtype('complex128')

I need to compute this result:

ipdb> -1*numpy.dot(submatinv,augcol)
array([[  5.30985737e-05+0.00038316j],
       [  1.72370377e-04+0.00115503j]])

If I hard code how to do the matrix multiplication, I get the correct
answer (it agrees with Maxima):

For the first element:
ipdb> -1*(submatinv[0,0]*augcol[0,0]+submatinv[0,1]*augcol[1,0])
(-0.005327660633034575+0.0011288088216130766j)

For the second
ipdb> -1*(submatinv[1,0]*augcol[0,0]+submatinv[1,1]*augcol[1,0])
(-0.016047752110848554+0.003432076134378004j)

What is the dot product doing if it isn't dotting row by column?

I am not seeing something.

Thanks,

Ryan


More information about the SciPy-User mailing list