Python:表示为向量列表组合的向量

标签 python math

假设我有一个向量列表

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/

相关文章:

python - 线条颜色作为 pandas 数据框中列值的函数

python - cherrypy:关闭发送带有静态目录和文件的 cookie

python - 匹配 Domain.CCTLD 的正则表达式

python读取文本文件

math - 根据下载的GB计算访问次数

math - 就内存而言,在 Julia 中将公式保存为字符串还是表达式(符号)更好

algorithm - 最小生成树和最短路径树是否总是共享至少一条边?

javascript - 将 Google map 高程输出转换为英尺而不是米

python - 如何使 python 打印 1 而不是 1.0

matlab - 使用 LAPACK dgesvd_ 对非方矩阵进行 SVD