[1]:https://upload.wikimedia.org/math/3/0/a/30aed0153521807d5a314ea76f37e723.png [1]。
我想使用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 :(得分: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))