相关疑难解决方法(0)

为什么numpy.linalg.solve()提供比numpy.linalg.inv()更精确的矩阵反转?

我不太明白为什么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)给出了更精确的结果.为什么是这样?

究竟发生了什么,使一个"比另一个更好"?

python arrays numpy matrix linear-algebra

23
推荐指数
1
解决办法
1万
查看次数

使用 python 为非方阵 A 求解 Ax =b

我专注于特殊情况,其中Aanxd 矩阵(其中 k < d)表示 R^d 的子空间的正交基,而 b 已知在子空间内。我想过使用随 提供的工具numpy,但它们只适用于方阵。我有一种方法是用一些线性无关的向量填充矩阵来“平方”它然后求解,但我无法弄清楚如何选择这些向量,以便它们与基向量线性无关,而且我认为它是不是唯一的方法,我错过了一些可以使这更容易的东西。确实有比我提到的更简单的方法吗?如果不是,我该如何选择那些可以完成A为方阵的向量?

python numpy matrix

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

matrix ×2

numpy ×2

python ×2

arrays ×1

linear-algebra ×1