小学算数1203731 views
高校化学2933198 views
MathPython501700 views
高校生物553211 views
ヒストリア294981 views
小学理科721729 views
数学講師2913151 views
高校日本史191026 views
中学数学625176 views
高校国語790013 views
Help
Tools

English

行列のランクを求める練習|行基本変形・行列式・積と和のランク

行列のランクは、行基本変形で行階段形に直したときのピボットの個数である。列ベクトルから一次独立に選べる最大個数にも等しい。

以下の問題は、掃き出して数える型から始めてある。後半には行列式と小行列式で判定する型、積や和のランクを見積もる型を置いた。

行階段形とピボット

各行で最初に現れる でない成分をピボットという。行階段形では、ピボットの位置が下の行ほど右へずれていく。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 220" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="48" y="26" font-size="11" fill="#1f1f1f">階段の下はすべて 0 で、段の数がランクになる</text>
	<rect x="110" y="50" width="250" height="128" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
	<line x1="160" y1="50" x2="160" y2="178" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="210" y1="50" x2="210" y2="178" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="260" y1="50" x2="260" y2="178" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="310" y1="50" x2="310" y2="178" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="110" y1="82" x2="360" y2="82" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="110" y1="114" x2="360" y2="114" stroke="#e8e8e8" stroke-width="1"></line>
	<line x1="110" y1="146" x2="360" y2="146" stroke="#e8e8e8" stroke-width="1"></line>
	<polyline points="110,50 110,82 160,82 160,114 260,114 260,146 360,146" fill="none" stroke="#d0562a" stroke-width="2"></polyline>
	<circle cx="135" cy="70" r="4" fill="#1b81e0"></circle>
	<circle cx="185" cy="102" r="4" fill="#1b81e0"></circle>
	<circle cx="285" cy="134" r="4" fill="#1b81e0"></circle>
	<text x="185" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="235" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="285" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="335" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="135" y="106" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="235" y="106" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="285" y="106" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="335" y="106" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="135" y="138" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="185" y="138" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="235" y="138" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="335" y="138" font-size="12" fill="#9a9a9a" text-anchor="middle">*</text>
	<text x="135" y="170" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="185" y="170" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="235" y="170" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="285" y="170" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="335" y="170" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
	<text x="372" y="74" font-size="11" fill="#1b81e0">青丸がピボット</text>
	<text x="48" y="200" font-size="11" fill="#9a9a9a">この例ではピボットが 3 個なので、ランクは 3 である</text>
</svg>

ピボットの個数は、途中でどの変形を選んでも変わらない。だから「どう掃き出すか」を悩む必要はなく、行が消えるまで進めればよい。

問題 1:行が比例している行列

次の行列のランクを求めよ。

解答 1

第 行が第 行の 倍、第 行が 倍になっている。掃き出すと 行とも消える。

ピボットは 個だけである。

行がすべて 本のベクトルの定数倍になっているので、行の張る空間は直線になる。

問題 2:3 次でランクが落ちる例

次の行列のランクを求めよ。

解答 2

第 列で掃き出す。

第 行と第 行が一致したので、片方が消える。

ピボットは 個である。

もとの行列を見ると第 行が第 行と第 行の和になっている。掃き出す前に気づけば計算を省ける。

問題 3:4 次の行列

次の行列のランクを求めよ。

解答 3

第 列を掃き出す。

下の 行がそろってしまった。 行が消える。

次の行列だがピボットは 個しかない。

第 行が第 行と第 行の和、第 行が 倍の第 行と第 行の和になっている。

問題 4:フルランクの例

次の行列のランクを求めよ。

解答 4

第 列を掃き出す。

続けて第 列を掃き出す。

行とも生き残った。

正方行列でランクが次数と一致する状態をフルランクという。このとき逆行列が存在する。

問題 5:横長の行列

次の行列のランクを求めよ。

解答 5

行が 本しかないので、ランクは多くても である。

第 行は消えなかった。ピボットは第 列と第 列にある。

一般に 行列のランクは を超えない。行の本数と列の本数の小さいほうで頭打ちになる。

問題 6:縦長の行列と転置

次の行列のランクを求め、問題 5 の結果と比べよ。

解答 6

列が 本なので、ランクは多くても である。掃き出す。

零行列の行が途中に挟まっているので、入れ替えて下へ送る。

ピボットは 個である。

この は問題 5 の の転置になっている。値が一致したのは偶然ではなく、どんな行列でも が成り立つ。

行から数えても列から数えても同じ値になる、という主張でもある。縦長の行列が出てきたら、転置して横長にしてから掃き出してもよい。

問題 7:パラメータを含む行列

を実数とする。次の行列のランクを で分類せよ。

解答 7

まず行列式を計算する。フルランクかどうかがこれで決まる。

因数分解すると次のようになる。

かつ なら行列式が でないので、ランクは である。

のときは第 列が となり、第 列と一致する。残る 列は一次独立なのでランクは になる。

のときは第 列と第 列が で一致する。やはりランクは である。

まとめると、 でランク 、 または でランク となる。第 列と第 列がどんな でも一次独立なので、ランクが 以下になる は存在しない。

問題 8:行列式で判定する

次の行列のランクを、掃き出さずに求めよ。

解答 8

正方行列なら、行列式が でないことがフルランクと同じ意味を持つ。

順に計算する。

でないので、ランクは次数に等しい。

この手が使えるのは正方行列に限られ、しかも「 かそれ未満か」しか分からない。値が だったときは、結局もっと小さい行列式を見るか掃き出すことになる。

問題 9:小行列式で判定する

次の行列のランクを、小行列式を使って求めよ。

解答 9

ランクは「 でない小行列式の最大の次数」に等しい。 なので、まず 次から調べる。

行を選ぶ選び方は 通りある。どれを計算しても になる。

残る 通りも である。したがってランクは 以下になる。

次に 次の小行列式を つ見つける。第 行と第 行、第 列と第 列を取る。

でない 次の小行列式があるので、ランクはちょうど である。

小行列式による判定は、 でないものを つ見つければ下から押さえられる点が便利である。ただし上から押さえるにはすべてを調べる必要があり、次数が上がると掃き出すほうが速い。

問題 10:積のランク

次の つの行列について、それぞれのランクと積 のランクを求めよ。

解答 10

どちらも第 行が第 行の定数倍なので、ランクは ずつである。積を計算する。

零行列になったので、ランクは である。

一般に が成り立つ。この例は不等号が真に成り立つ場合で、掛けるとランクは下がりうるが上がることはない。

問題 11:和のランク

次の つの行列について、 のランクを求めよ。また のランクとも比べよ。

解答 11

どちらもランクは である。足すと単位行列になる。

ランクは で、 に一致した。一方 は零行列で、ランクは に落ちる。

この不等式は等号になることも、大きく下回ることもある。和のランクは足し算では決まらない。

問題 12:ランク 1 の行列を作る

、 とする。 のランクを求めよ。

解答 12

まず積を書き下す。 の各成分に を掛ければよい。

第 行は第 行の 倍、第 行は 倍である。掃き出せば 行が消える。

どの行も の定数倍になっているので、 と がどちらも零ベクトルでなければ必ずランク になる。逆にランク の行列は、すべてこの形に書ける。

問題 13:列基本変形も使う

問題 2 の行列 を、行と列の基本変形を両方使って簡単な形にせよ。

解答 13

行の掃き出しはすでに終わっている。

ここから列を操作する。第 行を使って第 列と第 列を掃く。

第 行を使って第 列を掃き、最後に第 列を 倍する。

左上に が つ並び、残りは になった。この形を標準形といい、並ぶ の個数がランクである。

列基本変形を混ぜてよいのは、ランクを求めるときに限る。連立方程式を解いている途中で列を動かすと、変数の対応が入れ替わってしまう。

問題 14:ランクとして起こりうる値

行列のランクとして、どんな値がありうるか答えよ。

解答 14

上限は行数と列数の小さいほうである。

下限は で、零行列のときに限って達成される。

途中の値もすべて実現できる。左上に を 個並べて残りを にした行列を作れば、ランクはちょうど になる。

以上にならない理由は、行が 本しかないからである。一次独立に選べる行は最大でも 本しかない。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 200" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="48" y="26" font-size="11" fill="#1f1f1f">3 次の行列では、列の張る空間の次元がランクである</text>
	<line x1="70" y1="140" x2="150" y2="80" stroke="#1b81e0" stroke-width="1.5"></line>
	<circle cx="90" cy="125" r="3" fill="#1b81e0"></circle>
	<circle cx="110" cy="110" r="3" fill="#1b81e0"></circle>
	<circle cx="130" cy="95" r="3" fill="#1b81e0"></circle>
	<polygon points="200,130 265,110 300,70 235,90" fill="#1b81e0" fill-opacity="0.18" stroke="#1b81e0" stroke-width="1.5"></polygon>
	<line x1="390" y1="115" x2="345" y2="135" stroke="#1b81e0" stroke-width="1.5"></line>
	<line x1="390" y1="115" x2="425" y2="130" stroke="#1b81e0" stroke-width="1.5"></line>
	<line x1="390" y1="115" x2="390" y2="65" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="345,135 390,115 425,130 380,150" fill="#1b81e0" fill-opacity="0.10" stroke="#c8c8c8" stroke-width="1"></polygon>
	<text x="110" y="172" font-size="11" fill="#1f1f1f" text-anchor="middle">ランク 1</text>
	<text x="250" y="172" font-size="11" fill="#1f1f1f" text-anchor="middle">ランク 2</text>
	<text x="385" y="172" font-size="11" fill="#1f1f1f" text-anchor="middle">ランク 3</text>
	<text x="110" y="190" font-size="11" fill="#9a9a9a" text-anchor="middle">直線</text>
	<text x="250" y="190" font-size="11" fill="#9a9a9a" text-anchor="middle">平面</text>
	<text x="385" y="190" font-size="11" fill="#9a9a9a" text-anchor="middle">空間全体</text>
</svg>

よくある誤り

掃き出しの途中で行を入れ替えるのをためらう。入れ替えてもランクは変わらない
でない行の本数を数える前に、階段形になっているか確かめること。段が崩れていると数え違える
行列式が だからランクは だ、とは言えない。 という情報はフルランクでないことしか教えない
を で計算してしまう例が多い。これは上限にすぎない
積のランクが元より大きくなることはない。 で押さえられている
行列のランクが を超えることはない。行と列の少ないほうで頭打ちになる
連立方程式を解いている最中に列基本変形を混ぜると、変数の対応が壊れる

参考文献

Rank (linear algebra)
Row echelon form
Gaussian elimination
Minor (linear algebra)
Rank–nullity theorem
Smith normal form
Sylvester's rank inequality
行基本変形で行階段形に直し、ピボットを数えるのが基本です。行が消える例、横長と縦長の行列、パラメータを含む場合分け、行列式と小行列式による判定、積と和のランクまで、解答を省かずに並べます。