Main Content

gfroots

ガロア素体における多項式の根の求解

構文

rt = gfroots(f,m,p)
rt = gfroots(f,prim_poly,p)
[rt,rt_tuple] = gfroots(...)
[rt,rt_tuple,field] = gfroots(...)

説明

メモ

この関数は、p が素数のとき、GF(pm) の計算を行います。GF(2m) で実行するには、ガロア配列に対して関数 roots を使用します。詳細については、多項式の根を参照してください。

すべての構文に対して、f は、多項式の文字ベクトルまたは次数 d の多項式の係数を昇べきの順に与える行ベクトルです。

メモ

gfroots は、根の多重度を無視し、各根を 1 回だけ表示します。

rt = gfroots(f,m,p) は、f が表現する多項式の GF(p^m) 内で根を求めます。rt は、各列ベクトルのエントリが根の指数形式である列ベクトルです。指数形式は、GF(p^m) に対する既定の原始多項式の根に対応しています。

rt = gfroots(f,prim_poly,p) は、f が表現する多項式の GF(pm) 内で根を求めます。rt は、各列ベクトルのエントリが根の指数形式である列ベクトルです。指数形式は、prim_poly が表す GF(pm) に対する次数 -m の原始多項式の根に対応します。

[rt,rt_tuple] = gfroots(...) は、追加の行列 rt_tuple を返します。この行列の k 番目の行は根 rt(k)k の多項式形式です。多項式と指数形式は、両方共同じ原始元に対応します。

[rt,rt_tuple,field] = gfroots(...) は、追加の行列 rt_tuple と行列 field を返します。rt_tuple の説明は、前の段落にあります。field は、拡大体の元のリストです。元のリスト、多項式形式、指数形式は、すべて同じ原始元に対応します。

メモ

gfroots のさまざまな形式の説明については、ガロア体の元の表現を参照してください。

多項式の根には、gfroots の使用法の説明と例が含まれています。

下記のコードは、GF(81) に対する原始多項式 2 + x3 + x4 の根の多項式形式を求めます。そして、alph の多項式として根を従来の形式で表示します (ここでは、出力は省略します)。prim_poly は、原始多項式かつ根が求められた多項式であるため、alph 自体が根となります。

p = 3; m = 4;
prim_poly = [2 0 0 1 1]; % A primitive polynomial for GF(81)
f = prim_poly; % Find roots of the primitive polynomial.
[rt,rt_tuple] = gfroots(f,prim_poly,p);
% Display roots as polynomials in alpha.
for ii = 1:length(rt_tuple)
  gfpretty(rt_tuple(ii,:),'alpha')
end

バージョン履歴

R2006a より前に導入

参考