基数为4的线性独立子集的数量

时间:2018-12-03 02:55:17

标签: sage

我在向量空间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的向量空间的元素”

有人知道我缺少什么吗?

1 个答案:

答案 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