假设我有一个向量列表
VectorList = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]
并说我有一个向量 x
x = [0,3,0,1]
那么在这种情况下 x 可以写成其他向量的线性组合:
[0,3,0,1] = a*[1,0,0,0] + b*[0,1,0,0] + c*[0,0,1,0] + d*[0,0,0,1]
其中 a = 0、b = 3、c = 0 且 d = 1
Python 中是否有一种通用方法来检查向量是否可以写为向量列表的线性组合并找到其标量倍数? 我是Python的初学者,我可以直观地做到这一点......但是如何在Python中解决这个问题呢?我已经研究这个问题很多小时了
请记住,向量列表可能并不总是像这样清晰。
最佳答案
那么您想求解线性方程组吗?我建议看看 numpy.matrix 和 numpy linalg 。 Numpy 中有很多有用的数学知识:)。
编辑:
看起来你想要的函数是numpy.linalg.solve(a,b)
(其中b
在你的情况下是x),它将抛出一个LinAlgError
如果找不到解决方案。
关于Python:表示为向量列表组合的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006206/