SAGE返回错误的最小多项式?

时间:2012-04-05 11:05:01

标签: sage

sage: A

[    t     1     1     0 t + 1     1]
[    t     t     0 t + 1     t     1]
[    0     1 t + 1     0     t     0]
[    t     t     0     0     0     0]
[    0     1     0     1     1     1]
[    t     1     t     t     t     1]
sage: A.base_ring()
Finite Field in t of size 2^2
sage: A.minpoly()
x^5 + (t + 1)*x^4 + t*x^3
sage: A.minpoly()(A)

[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]

当然,最后一个命令的结果应该是零矩阵。我不知道为什么失败了。所以问题是出了什么问题。

1 个答案:

答案 0 :(得分:2)

我无法在OS X 10.6.8上重现这一点:

sage: version()
'Sage Version 4.8, Release Date: 2012-01-20'
sage: R.<t> = GF(4)
sage: R
Finite Field in t of size 2^2
sage: A = Matrix(R, [[t, 1, 1, 0, t+1, 1], [t,t,0,t+1,t,1,],[0,1,t+1,0,t,0],[t,t,0,0,0,0,],[0,1,0,1,1,1,],[t,1,t,t,t,1]])
sage: A
[    t     1     1     0 t + 1     1]
[    t     t     0 t + 1     t     1]
[    0     1 t + 1     0     t     0]
[    t     t     0     0     0     0]
[    0     1     0     1     1     1]
[    t     1     t     t     t     1]
sage: s = """
....: [    t     1     1     0 t + 1     1]
....: [    t     t     0 t + 1     t     1]
....: [    0     1 t + 1     0     t     0]
....: [    t     t     0     0     0     0]
....: [    0     1     0     1     1     1]
....: [    t     1     t     t     t     1]"""
sage: 
sage: str(A) == s.strip()
True
sage: A.minpoly()
x^6 + (t + 1)*x^5 + t*x^4
sage: A.minpoly()(A)
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]

注意x的额外因子。您没有发布您的版本号或有关您的架构的任何信息,因此我不知道它是否仍然存在依赖于架构的线性代数错误或已修复的错误。 Sage 5.0将很快推出(目前处于测试版12),强烈建议升级。

两个元注释:请发布可以复制和粘贴的代码以重现问题。此外,您始终可以在sagenb.org(甚至test.sagenb.org)上测试您的代码段,看看您的问题是否仍然存在于主线内外。两人似乎给出了正确的答案。