Main Content

gfrank

ガロア体上の行列のランクを計算

構文

rk = gfrank(A,p)

説明

メモ

この関数は、p が素数のとき、GF(p) の計算を行います。GF(2m) で操作している場合、ガロア配列に対して関数 rank を使用します。詳細については、ランクの計算を参照してください。

rk = gfrank(A,p) は、p が素数である場合に GF(p) で行列 A のランクを計算します。

下記のコードにおいて、gfrank は、行列 A はフルランクでないことを示しています。この結論は、A の行列式が zero mod p であるため理に適っています。

A = [1 0 1;
   2 1 0;
   0 1 1];
p = 3;
det_a = det(A); % Ordinary determinant of A
detmodp = rem(det(A),p); % Determinant mod p
rankp = gfrank(A,p);
disp(['Determinant = ',num2str(det_a)])
disp(['Determinant mod p is ',num2str(detmodp)])
disp(['Rank over GF(p) is ',num2str(rankp)])

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

Determinant = 3
Determinant mod p is 0
Rank over GF(p) is 2

アルゴリズム

gfrank は、ガウス消去と同様のアルゴリズムを使用します。

バージョン履歴

R2006a より前に導入