我想解决一组10变量的线性方程。
我创建了第一个这样的数组:
A = np.random.random_integers(15,size =(10,10))
我希望等于0之后的值
(A.x + d.y + .... + N = 0)
所以我做了类似的事情:
B = np.zeros(形状=(10))
但是当我应用线性代数函数时
print linalg.solve(A,b)
我得到一个10个零的数组。
谁能帮忙?[0. 0. 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试图找到最小化最小平方距离的不精确解(例如对于超定矩阵) )。
我可能没有理解你在寻找什么 - 请澄清一下这一行,说明你究竟想要什么。