我不太明白为什么numpy.linalg.solve()给出更准确的答案,而numpy.linalg.inv()在某种程度上分解,给出(我相信的)估计.
举一个具体的例子,我正在求解方程式C^{-1} * d ,其中C表示一个矩阵,并且d是一个向量数组.为了便于讨论,尺寸C是形状(1000,1000)和d形状(1,1000).
numpy.linalg.solve(A, b)求解A*x=bx 的等式,即x = A^{-1} * b.因此,我可以通过求解这个等式
(1)
inverse = numpy.linalg.inv(C)
result = inverse * d
Run Code Online (Sandbox Code Playgroud)
或(2)
numpy.linalg.solve(C, d)
Run Code Online (Sandbox Code Playgroud)
方法(2)给出了更精确的结果.为什么是这样?
究竟发生了什么,使一个"比另一个更好"?