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
の特解を出力します。a
、b
、および x
の要素は 0 または 1 です。方程式が解をもたない場合、x
は空になります。
x = gflineq(A,b,p)
は、GF(p
) 上の線形方程式 A x
= b
の特解を返します。ここで、p
は素数です。A
が k 行 n 列の行列で b
が長さ k のベクトルの場合、x
は長さ n のベクトルです。A
、x
、および 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 より前に導入