有人知道这种行为的文档吗?
import numpy as np
A = np.random.uniform(0,1,(10,5))
w = np.ones(5)
Aw = A*w
Sym1 = Aw.dot(Aw.T)
Sym2 = (A*w).dot((A*w).T)
diff = Sym1 - Sym2
Run Code Online (Sandbox Code Playgroud)
diff.max()接近机器精度非零,例如4.4e-16.
这(与0的差异)通常很好......在有限精度的世界里,我们不应该感到惊讶.
此外,我猜想numpy对于对称产品很聪明,可以节省触发器并确保对称输出......
但我处理混乱的系统,这种小的差异在调试时很快变得明显.所以我想确切地知道发生了什么.
python floating-point numpy linear-algebra floating-accuracy