2
我在写一个计算错误平方和的函数。 x
和y
是相同长度的向量; y
是观测数据,x
是我的模型计算的数据。取决于使用的numpy过程调用的微小的平方和的数值差异
的代码是这样的:
>> res = y.ravel() - x.ravel()
>> np.dot(res.T, res)
>> 1026.7059479504269
>> np.sum(res**2)
>> 1026.7059479504273
现在看最后两位数字。谁能告诉我这是什么原因?这两个调用应该导致相同的操作。有谁知道这种差异来自哪里?
我只是想这是有关舍入的值。所以没什么可担心的。 –
也许:http://stackoverflow.com/q/588004/3001761 – jonrsharpe
如果我猜测,我会说这是'.dot'函数的工作方式,虽然它有相同的结果,但会计算点积在飞行中,而不是首先将所有数字平方,然后将它们加在一起。虽然对于你所处理的数字来说是相当无关紧要的,但我认为'.dot'比'np.sum(res ** 2)'更准确' – Matthew