添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

gfdeconv

ガロア体上の多項式を除算

説明

[ q , r ] = gfdeconv( b , a ) は、GF(2) 多項式の係数を昇べきの順に指定する行ベクトルとして、商 q と剰余 r を返します。返されるベクトルは、 b a で除算した結果です。 a b 、および q は GF(2) 内にあります。

詳細は、 ヒント を参照してください。

[ q , r ] = gfdeconv( b , a , p ) は、2 つの GF( p ) 多項式を除算します。ここで、 p は素数です。 b a 、および q は同じガロア体にあります。 b a q 、および r は、昇べきの順の係数をもつ多項式です。各係数の範囲は、[0, p –1] です。

[ q , r ] = gfdeconv( b , a , field ) は、2 つの GF(p m ) 多項式を除算します。ここで、 field は GF(p m ) のすべての要素の m 組を含む行列です。p は素数、m は正の整数です。 b a 、および q は同じガロア体にあります。

この構文では、各係数は指数形式で指定されます。具体的には、[-Inf, 0, 1, 2, ...] の形式です。指数形式の要素は、GF(p m ) の原始元 α に対応する field 要素 [0, 1, α, α 2 , ...] を表します。

すべて折りたたむ

ガロア体 GF(3) で、 x + x 3 + x 4 1 + x で 3 回除算します。多項式を行ベクトル、文字ベクトル、および string として表します。

p = 3;

多項式を行ベクトルを使用して表し、GF(3) 内で除算します。

b = [0 1 0 1 1];
a = [1 1];
[q_rv,r_rv] = gfdeconv(b,a,p)
q_rv = 1×4
     1     0     0     1
r_rv = 2

出力を確認するために、元のガロア体の多項式を、商と除数の積に剰余を加算した結果と比較します。

bnew = gfadd(gfconv(q_rv,a,p),r_rv,p);
isequal(b,bnew)
ans = logical

多項式を文字ベクトルを使用して表し、GF(3) 内で除算します。

b = 'x + x^3 + x^4';
a = '1 + x';
[q_cv,r_cv] = gfdeconv(b,a,p)
q_cv = 1×4
     1     0     0     1
r_cv = 2

多項式を string を使用して表し、GF(3) 内で除算します。

b = "x + x^3 + x^4";
a = "1 + x";
[q_s,r_s] = gfdeconv(b,a,p)
q_s = 1×4
     1     0     0     1
r_s = 2

関数 gfpretty を使用して、剰余のない結果を多項式型で表示します。

gfpretty(q_s)
 
                                    1 + X 

ガロア体 GF(3) で、 x k - 1 ( k 1 + x 2 により割り切れる [2, 8] の範囲) の形式の多項式を出力します。最小次数 2 の GF(p) 上の既約多項式は、 p m - 1 よりも小さい正の整数 k に対して - 1 + x k を割り切れない場合に限り、原始多項式です。詳細については、関数 gfprimck を参照してください

GF(3) 上の 1 + x 2 の既約性は、出力である多項式と共に、 1 + x 2 が GF( 3 2 ) に対する原始多項式ではないことを示しています。

p = 3; m = 2;
a = [1 0 1]; % 1+x^2
for ii = 2:p^m-1
   b = gfrepcov(ii); % x^ii
   b(1) = p-1; % -1+x^ii
   [quot,remd] = gfdeconv(b,a,p);
   % Display -1+x^ii if a divides it evenly.
   if remd==0
      multiple{ii}=b;
      gfpretty(b)
                                    2 + X 
                                    2 + X 

入力引数

すべて折りたたむ

ガロア体の多項式。行ベクトル、文字ベクトル、または string として指定します。 b は、 Communications Toolbox での多項式の表現 または数値ベクトルのいずれかにできます。

a b は、両方とも GF(p) 多項式または GF(p m ) 多項式でなければなりません。ここで、p は素数です。p の値は、含まれている場合は指定された値、省略されている場合は 2 になり、 field が指定されている場合は暗黙的に決まります。

例: '1 + x' は、文字ベクトルとして表された GF(2 4 ) の多項式です。

データ型: double | char | string

ガロア体の多項式。行ベクトル、文字ベクトル、または string として指定します。 a は、 Communications Toolbox での多項式の表現 または数値ベクトルのいずれかにできます。

a b は、両方とも GF(p) 多項式または GF(p m ) 多項式でなければなりません。ここで、p は素数です。p の値は、含まれている場合は指定された値、省略されている場合は 2 になり、 field が指定されている場合は暗黙的に決まります。

例: [1 2 3 4] は、行ベクトルとして表された GF(5) の多項式 1+2x+3x 2 +4x 3 です。

データ型: double | char | string

素数。素数として指定します。

データ型: double

GF(p m ) のすべての要素の m 組。行列として指定します。 field は、同じ原始元に対応して配置された GF(p m ) のすべての要素をリストする行列です。GF(p m ) のすべての要素の m 組を生成するには、次を使用します。

field =gftuple([-1:p^m-2]',m,p)
指数形式で指定された係数は、GF(p m ) の体の元を表します。これらの形式の説明は、 ガロア体の元の表現 を参照してください。

データ型: double

出力引数

すべて折りたたむ

ガロア体の多項式。昇べきの順に並べた多項式の係数の行ベクトルとして返されます。 q b a で除算した商で、入力多項式と同じガロア体にあります。

除算の剰余。昇べきの順に並べた多項式の係数のスカラーまたは行ベクトルとして返されます。 r b a で除算した剰余です。

ヒント

  • 関数 gfdeconv は、GF(p m ) の計算を行います。ここで、p は素数、m は正の整数です。この関数は、ガロア体上の多項式を除算します。GF(2 m ) で実行するには、ガロア配列に対して gf オブジェクトの関数 deconv を使用します。詳細は、 多項式の乗算と除算 を参照してください。

  • ガロア体の要素を除算するために、 gfdeconv の代わりに gfdiv を使用することもできます。代数的には、ガロア体上の多項式の除算は、多項式の係数を含むベクトルの逆畳み込みと等価です。この逆畳み込み操作では、同じガロア体上の演算が使用されます。

バージョン履歴

R2006a より前に導入

次の MATLAB コマンドに対応するリンクがクリックされました。

コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。

MathWorks

Accelerating the pace of engineering and science