2014-09-23 39 views
2

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

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。 (事实上,在我从上面得到这个v(x)后,我打算建立商环GF(4,'a')[x] /< x^n-v(x) >)然后我会说;

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

但我写不出来。

回答

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 
0

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

ν:[1,,0,0,1,1,1,A,A,0,1] $ N:长度(V)$ 五:矩阵( v)$ X:genmatrix(lambda([i,j],x ^(i-1)),n,1)$ VX;

输出是

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

相关问题