给定系数列表,创建一个多项式

时间:2014-09-23 08:40:53

标签: sage polynomials coefficients

我想创建一个给定系数的多项式。这看起来很简单,但到目前为止我发现的似乎并不是我想要的东西。 例如,在这样的环境中;

n = 11
K = GF(4,'a')
R = PolynomialRing(GF(4,'a'),"x")
x = R.gen()
a = K.gen()
v = [1,a,0,0,1,1,1,a,a,0,1]

给定长度为n的列表/向量v(我将在开头设置此n和v),我想将多项式v(x)作为v[i]*x^i。 (实际上,在我从上面获得这个GF(4,'a')[x] /< x^n-v(x) >之后我将建立商圈v(x)然后我会说;

S = R.quotient(x^n-v(x), 'y')
y = S.gen()

但是我写不出来。

2 个答案:

答案 0 :(得分:1)

这是许多地方经常被问到的问题所以最好把它留在这里作为答案,尽管我的答案很简单:

我刚写了R(v),它给了我多项式:

sage
n = 11
K = GF(4,'a')
R = PolynomialRing(GF(4,'a'),"x")
x = R.gen()
a = K.gen()

v = [1,a,0,0,1,1,1,a,a,0,1]
R(v)

x^10 + a*x^8 + a*x^7 + x^6 + x^5 + x^4 + a*x + 1

答案 1 :(得分:0)

基本上(即忽略多项式环的细节),你有一个长度为n的列表/向量v,你需要一个多项式,它是所有v [i] * x ^ i的总和。注意,该和等于矩阵乘积V.X,其中V是一行矩阵(基本上等于矢量v),X是由x的幂组成的列矩阵。在 Maxima 中,您可以写

v:[1,a,0,0,1,1,1,a,a,0,1] $ n:长度(v)$ V:矩阵(v)$ X:genmatrix(lambda([i,j],x ^(i-1)),n,1)$ V.X;

输出

的x ^ 10 +一的x ^ 8 +一的x ^ 7 + X ^ 6 + X ^ 5 + X ^ 4 + A * X + 1