[SciPy-User] problem with dot for complex matrices

josef.pktd at gmail.com josef.pktd at gmail.com
Tue Mar 27 14:57:03 EDT 2012


On Tue, Mar 27, 2012 at 2:48 PM, Ryan Krauss <ryanlists at gmail.com> wrote:
> 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.

with numpy 1.5.1, I get the results you want

>>> m1 = np.array([[-0.22740265-1.63857451j, -0.07740957-0.55847886j],
...       [-3.20602957-4.93959054j, -0.36746252-1.68352465j]])
>>> m2 = np.array([[ -3.74729148e-05-0.0005937j ],
...       [  7.96025801e-04+0.01137658j]])

>>> np.dot(m1, m2)
array([[ 0.00532766-0.00112881j],
       [ 0.01604775-0.00343208j]])

Josef

>
> Thanks,
>
> Ryan
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user



More information about the SciPy-User mailing list