2013-06-12 184 views
0

[1]:https://upload.wikimedia.org/math/3/0/a/30aed0153521807d5a314ea76f37e723.png [1]。Python乘法矩阵与矩阵转置阵列

我想用numpy的函数来写在Python上述等式:

b = b - INV(J'*J) * J' * r(b) 

J是矩阵,J” j的矩阵转置, X和R阵列

b = b - linalg.inv((zip(*J)).dot(J)).dot(zip(*J)).dot(r) 

这是不工作...任何建议?

编辑

错误:

AttributeError: 'zip' object has no attribute 'dot' 

,... 我使用Python 3.2

+0

请问您可以更具体地了解什么是不工作?结果是不正确的,还是python抛出某种错误?如果发生错误,请通过将错误复制并粘贴到帖子中来编辑帖子。 – SethMMorton

回答

1

我假设你正在使用zip因为关于如何移调名单列表其他职位在python中推荐使用这个。这不是你正在使用的......你正在使用numpy,所以你想使用.T属性,它返回数组的转置。此外,dot是一种numpy功能,不是nmpy阵列的一种方法:

b = b - np.dot(np.dot(linalg.inv(np.dot(J.T, J)), J.T), r(b)) 
+0

谢谢...但是,我得到的错误:“ValueError:预期的方阵”...我需要这个:INV(J'* J)* J'* r(b)...正如你写它,是不一样的吧? – user1972847

+0

不是。这不是我写的。什么是'r(b)'?这看起来像一个功能。同时我会清理这个等式。 – SethMMorton

+0

https://upload.wikimedia.org/math/3/0/a/30aed0153521807d5a314ea76f37e723.png – user1972847