2014-09-23 22 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

相關問題