0

我想解决一组 10 个变量的线性方程。

我创建了这样的第一个数组:

A=np.random.random_integers(15, size=(10,10))

我希望等于之后的值是 0

(Ax + dy + .... + N = 0)

所以我做了这样的事情:

b=np.zeros(形状=(10))

但是当我应用线性代数函数时

打印 linalg.solve(A, b)

结果,我得到了一个包含 10 个零的数组。

[ 0. 0. 0. 0. -0. -0。-0。-0。0. 0.]

有人可以帮忙吗??

4

1 回答 1

0

我不明白第二行代码的含义。

虽然,有了这个:

A=np.random.random_integers(15, size=(10,10))
b=np.zeros(shape=(10))

你正在解决系统:

A * x = b

这意味着您拥有:

A[1,1] * x_1 + A[1,2] * x_2 + ... + A[1,10] * x_10 = 0
A[2,1] * x_1 + A[2,2] * x_2 + ... + A[2,10] * x_10 = 0
...

所以 x = 零向量总是一个完美的解决方案 = 你正在寻找这样的 x ,即 A x = 0,所以 x 为零。尝试

b = np.random.random_integers(15, size=(10,1))

由 linalg.solve(A,b) 产生的 x 将指定 A 中列的线性组合,以求和随机 b 向量。

https://stackoverflow.com/questions/12910513/how-to-verify-the-results-of-a-linear-equation-system您尝试了 numpy.svd (这是奇异值分解,我认为您没有want) 和 numpy.lstsq 试图找到最小化最小二乘距离的不精确解决方案(例如,对于超定矩阵)。

我可能不明白您在寻找什么 - 请澄清指定您到底在寻找什么的行。

于 2012-10-16T08:58:26.407 回答