我想用一组 10 个变量的线性方程。
我创建了第一个数组,如下所示:
A=np.random.random_integers(15, 大小=(10,10))
我希望等于之后的值为 0
(A.x + d.y + .... + N = 0)
所以我做了这样的事情:
b=np.zeros(shape=(10))
但是当我应用线性代数函数时
print linalg.solve(A, b)
结果我只得到一个 10 个零的数组。
[ 0. 0. 0. 0.-0.-0.-0.-0. 0. 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(这是奇异值decmposition,我认为您不想要)和numpy.lstsq,它试图找到最小化最小二乘距离的不精确解决方案(例如,对于超定矩阵)。
我可能不明白你在找什么 - 请澄清指定你到底在寻找什么的行。