我在向量空间Q中有一个向量列表,维度为5,我想在列表中进行排序,并使用Combinations(list,4)来获得所有包含4个元素的子列表。然后我想 用V.lineardependent(vs)== []检查向量空间中有哪些子列表是线性独立的。
运行代码时遇到错误:
V = VectorSpace(QQ,5)
V.list = ([2, 2, 2,-3,-3],[2, 2,-3,2,-3],[2,2,-3,-3,2],[2,-3,2,2,-3],[2,-3,2,-3,2],[2,-3,-3,2,2],[-3,2,2,2,-3],[-3,2,2,-3,2],[-3,2,-3,2,2],[-3,-3,2,2,2])
C = Combinations(list, 4)
V.linear_dependence(C) == []
“ ValueError:矢量[[2,2,2,-3,-3],[2,2,-3,2,-3],[2,2,-3,-3,2], [2,-3,2,2,-3]]不是有理数域上维度5的向量空间的元素”
有人知道我缺少什么吗?
答案 0 :(得分:0)
您要求它仅获取一个列表(或实际上是元组)并将其放在向量空间中,但是我认为Sage不会自动这样做。试试这个。
V = VectorSpace(QQ,5)
list = ([2, 2, 2,-3,-3],[2, 2,-3,2,-3],[2,2,-3,-3,2],[2,-3,2,2,-3],[2,-3,2,-3,2],[2,-3,-3,2,2],[-3,2,2,2,-3],[-3,2,2,-3,2],[-3,2,-3,2,2],[-3,-3,2,2,2])
C = Combinations(list, 4)
for c in C:
if V.linear_dependence([V(x) for x in c]) == []: print c
产生双重列表的原因是这些东西都不是向量空间中固有的。
对此稍作修改,将print c
替换为z+=1
(具有预定义的z=0
),则表明您的210个组合中有185个线性独立。
顺便说一句,与空白列表进行比较可能不如other options。