我在向量空间q中有一个维度为5的向量列表,我想在列表中对其进行排序,并使用组合( list,4)来获得包含4个元素的所有子列表。然后,我想检查这些子列表中有多少在具有V.linear依赖(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,-3,2,2,-3,-3,2,2,-3,2,2,-3]不是有理域上5维向量空间的元素“
有没有人知道我遗漏了什么?
发布于 2018-12-08 02:49:24
您要求它只获取一个列表(或者实际上是元组),并将其放入向量空间,但我认为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那么有效。
https://stackoverflow.com/questions/53586859
复制相似问题