行列のランクを求める練習|行基本変形・行列式・積と和のランク
行列のランクは、行基本変形で行階段形に直したときのピボットの個数である。列ベクトルから一次独立に選べる最大個数にも等しい。
以下の問題は、掃き出して数える型から始めてある。後半には行列式と小行列式で判定する型、積や和のランクを見積もる型を置いた。
行階段形とピボット
各行で最初に現れる でない成分をピボットという。行階段形では、ピボットの位置が下の行ほど右へずれていく。
<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
上限は行数と列数の小さいほうである。
下限は で、零行列のときに限って達成される。
途中の値もすべて実現できる。左上に を 個並べて残りを にした行列を作れば、ランクはちょうど になる。
以上にならない理由は、行が 本しかないからである。一次独立に選べる行は最大でも 本しかない。
<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>











