Main Content

gflineq

ガロア素体における Ax = b の特解を求める

構文

x = gflineq(A,b)
x = gflineq(A,b,p)
[x,vld] = gflineq(...)

説明

メモ

この関数は、p が素数のとき、GF(p) の計算を行います。GF(2m) で実行するには、ガロア配列に \ または / 演算子を適用します。詳細については、線形方程式の解を参照してください。

x = gflineq(A,b) は、GF(2) での線形方程式 A x = b の特解を出力します。ab、および x の要素は 0 または 1 です。方程式が解をもたない場合、x は空になります。

x = gflineq(A,b,p) は、GF(p) 上の線形方程式 A x = b の特解を返します。ここで、p は素数です。A が k 行 n 列の行列で b が長さ k のベクトルの場合、x は長さ n のベクトルです。Ax、および b の各エントリは、0 ~ p-1 の整数です。解が存在しない場合は、x は空です。

[x,vld] = gflineq(...) は、解の存在を示すフラグ vld を返します。vld = 1 の場合、解 x が存在し、有効であることを示します。vld = 0 の場合、解は存在しません。

以下のコードは、GF(3) 上の線形方程式の有効な解を出力します。

A = [2 0 1;
     1 1 0;
     1 1 2];
% An example in which the solutions are valid
[x,vld] = gflineq(A,[1;0;0],3)

出力は以下のようになります。

x =

     2
     1
     0


vld =

     1

反対に、以下のコマンドは、線形方程式が解を "もたない" ことを示します。

[x2,vld2] = gflineq(zeros(3,3),[2;0;0],3)

出力は以下のようになります。

This linear equation has no solution.

x2 =

     []


vld2 =

     0

アルゴリズム

gflineq は、ガウス消去を使用します。

バージョン履歴

R2006a より前に導入