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