Skip to main content
linear algebraalgebracalculatorguide

行列の階数(ランク)計算:行階段形を使った求め方

·12 min read·Solvify Team

行列のランク(階数)を求める計算では、行列を行階段形に変形し、非ゼロのピボット行の数を数えることで、線形独立な行(または列)の数を求めます。ランクは、連立一次方程式が一意の解を持つか、無数の解を持つか、あるいは解を持たないかを決定づける値であり、線形代数の授業だけでなく、コンピュータグラフィックスやデータサイエンスの次元削減にも登場します。このガイドでは、行基本変形の手順を計算過程を省略せずステップごとに解説し、正方行列に使える行列式のショートカット、フルランクとランク不足の行列の両方の計算例を扱います。さらに、よくある間違いと、完全な解答付きの練習問題も紹介します。

行列のランク(階数)とは?

行列のランクとは、その行列に含まれる線形独立な行の最大数のことです——これは線形独立な列の最大数と等しくなります。行列は次元的には大きくても(たとえば5×5)、多くの行や列が他の行・列の組み合わせで表せる場合、ランクは小さくなります。ランクは0から「行数と列数のうち小さい方」までの1つの数値です。m×n行列の場合、0 ≤ rank(A) ≤ min(m, n) となります。 ランクがmin(m, n)に等しい行列を「フルランク」と呼びます。n×nの正方行列でランクがちょうどnであれば、その行列は正則(可逆)です。ランクがnより小さい正方行列は「特異行列」と呼ばれ、逆行列を持ちません。ランクは行列のサイズと同じものではありません——4×4の行列でも、4つの行のうち2つが残り2つの倍数であれば、簡単にランク2になり得ます。

ランク = 線形独立な行の数 = 線形独立な列の数 = 行列を行階段形に変形したときのピボットの数。

行階段形を使ってランクを求める方法とは?

ランクを求める計算では、ガウスの消去法を使って行列を行階段形(REF)に変形します。行階段形とは、各行の最初の非ゼロ要素(ピボット)が、その1つ上の行のピボットよりも必ず右側に位置し、すべてがゼロの行は一番下にまとまっている三角形状のレイアウトです。行列が行階段形になれば、ランクは単純に非ゼロの行の数、すなわちピボットの数に等しくなります。 消去のプロセスでは、ランクを変えない3つの合法な行操作を使います。2つの行を入れ替える、ある行を非ゼロの定数倍する、ある行の定数倍を別の行に加える、の3つです。これらの操作は線形従属関係を保存するため、行基本変形後の行列のランクは、常に元の行列のランクと一致します。

1. ステップ1 — 最初のピボットを見つける

1列目を上の行から下に向かって走査し、最初の非ゼロ要素を見つけます。1行目の要素がゼロで、下の行の1列目に非ゼロの値がある場合は、行を入れ替えてその非ゼロ値をピボットにします。

2. ステップ2 — ピボットの下の要素を消去する

ピボット行より下にある各行について、ピボット行の何倍かを引くことで、ピボットのある列の要素をすべて0にします。その列のピボットより下の要素がすべて0になるまで繰り返します。

3. ステップ3 — 次の列に移動して繰り返す

1行下・1列右に移動し、残った部分行列の中で非ゼロのピボットを探す作業を繰り返します。行または列がなくなるまでこれを続けます。

4. ステップ4 — 非ゼロの行を数える

これ以上ピボットが見つからなくなったら、すべてがゼロではない行の数を数えます。その数が行列のランクです。

行操作(入れ替え、定数倍、定数倍を加える)はランクを変えません。行階段形にすればランクが一目でわかります——非ゼロの行の数がそのままランクです。

計算例:フルランクの3×3行列のランクを求める

A = [[1, 2, 3], [2, 5, 3], [1, 0, 8]] を考えます。これはフルランクの行基本変形を示す典型的な3×3行列です。正方行列なので、ここでのフルランクとはランク3を意味します。

1. ステップ1 — ピボットの下にある1列目を消去する

ピボットは a₁₁ = 1。 R2 = R2 - 2R1: [2-2(1), 5-2(2), 3-2(3)] = [0, 1, -3] R3 = R3 - 1R1: [1-1(1), 0-1(2), 8-1(3)] = [0, -2, 5] 行列は次のようになります: [[1, 2, 3], [0, 1, -3], [0, -2, 5]]

2. ステップ2 — ピボットの下にある2列目を消去する

ここでのピボットは、2行2列目の値1です。 R3 = R3 + 2R2: [0+2(0), -2+2(1), 5+2(-3)] = [0, 0, -1] 行列は次のようになります: [[1, 2, 3], [0, 1, -3], [0, 0, -1]]

3. ステップ3 — ピボットを数える

すべての行に非ゼロの先頭要素があります:1、1、-1。3つの行すべてが非ゼロなので、rank(A) = 3です。Aは3×3行列でランク3なので、フルランクかつ可逆です。これは det(A) = 1(5·8-3·0) - 2(2·8-3·1) + 3(2·0-5·1) = 40 - 26 - 15 = -1 と一致し、この値が非ゼロであることがフルランクであることを裏付けています。

結果:A = [[1,2,3],[2,5,3],[1,0,8]] のとき rank(A) = 3。非ゼロのピボット行が3つあり、これは非ゼロの行列式 -1 と一致します。

計算例:ランク不足の行列のランクを求める

次に B = [[1, 2, -1], [2, 4, 1], [3, 6, 3]] を考えます。2列目がちょうど1列目の2倍になっている点に注目してください(2 = 2·1、4 = 2·2、6 = 2·3)——これはこの行列がフルランクにならないことを示す強いヒントです。

1. ステップ1 — ピボットの下にある1列目を消去する

ピボットは b₁₁ = 1。 R2 = R2 - 2R1: [2-2(1), 4-2(2), 1-2(-1)] = [0, 0, 3] R3 = R3 - 3R1: [3-3(1), 6-3(2), 3-3(-1)] = [0, 0, 6] 行列は次のようになります: [[1, 2, -1], [0, 0, 3], [0, 0, 6]]

2. ステップ2 — ピボットの下にある3列目を消去する

2列目には利用できるピボットがありません(1行目より下はどちらも0)。そこで3列目に移ると、2行目にピボット3があります。 R3 = R3 - 2R2: [0-2(0), 0-2(0), 6-2(3)] = [0, 0, 0] 行列は次のようになります: [[1, 2, -1], [0, 0, 3], [0, 0, 0]]

3. ステップ3 — ピボットを数える

非ゼロの行は2つだけです:1行目(1列目にピボット)と2行目(3列目にピボット)。3行目は完全にゼロです。したがって、Bは3×3行列であるにもかかわらず rank(B) = 2 です。これは最初に気づいた列の従属関係——2列目 = 1列目の2倍——と一致しており、3つの列が張る空間は実質2次元にすぎません。

結果:3×3行列で rank(B) = 2——2列目 = 1列目の2倍であるため、フルランクよりも次元が1つ足りません。

正方行列に使える行列式のショートカット

n×nの正方行列には、ショートカットがあります。行列式を計算するのです。det(A) ≠ 0 であれば、その行列は自動的にフルランクとなり、rank(A) = n が成り立ちます——行基本変形は不要です。det(A) = 0 の場合は rank(A) < n であることはわかりますが、行列式だけでは正確なランクまではわかりません。ランクがnからどれだけ下がっているかを知るには、依然として行基本変形(あるいはより小さい部分行列の行列式の確認)が必要です。

1. ステップ1 — 行列式を計算する

C = [[4, 2], [2, 1]] のとき: det(C) = (4)(1) - (2)(2) = 4 - 4 = 0。

2. ステップ2 — det = 0 なので、行基本変形でランクがnより小さいことを確認する

R2 = R2 - 0.5R1: [2-0.5(4), 1-0.5(2)] = [0, 0] 行列は次のようになります: [[4, 2], [0, 0]]。非ゼロの行が1つだけなので、rank(C) = 1 であり、2ではありません。

正方行列のショートカット:det ≠ 0 ならその場で rank = n(フルランク)とわかります。det = 0 は rank < n を示すだけで、正確な値は行基本変形で求めます。

行ランクと列ランク:なぜ常に等しいのか?

意外に思えるかもしれませんが、正方行列であるかどうかにかかわらず、どんな行列でも、線形独立な行の最大数は常に線形独立な列の最大数と等しくなります。この結果は「ランク定理」と呼ばれることがあり、線形代数の授業で「行ランク」「列ランク」と区別せず単に「ランク」と呼べる理由でもあります。 直感的に理解する方法の1つは次の通りです。行基本変形は行の結合と並べ替えしか行わず、その結果生じるピボット列の数は、元の行列における独立な列の数とちょうど一致します。一方で非ゼロの行の数は独立な行の数です。どちらの数量も同じピボットの集合から得られるため、両者は必ず一致します。先ほどの例の B = [[1, 2, -1], [2, 4, 1], [3, 6, 3]] では、行基本変形後の形で1列目と3列目にピボットがあり、独立な列がちょうど2つであることが確認できます。これは独立な行が2つであることとも一致します。

行ランクは常に列ランクと等しくなります。この共通の値を単に行列の「ランク」と呼びます——「行ランク計算機」と「列ランク計算機」が別々に存在するわけではありません。

ランクは連立方程式について何を教えてくれるか?

連立一次方程式 Ax = b について、解の種類はランクによって正確に決まります。係数行列のランク rank(A) と、定数項を余分な列として付け加えた拡大係数行列のランク rank([A|b]) を比較します。rank(A) < rank([A|b]) であれば、その連立方程式は矛盾しており解を持ちません。rank(A) = rank([A|b]) = n(未知数の数)であれば、解はちょうど1つです。rank(A) = rank([A|b]) < n であれば、解は無数にあり、自由変数の数は n - rank になります。

1. ステップ1 — 拡大係数行列を作る

係数行列 B = [[1, 2, -1], [2, 4, 1], [3, 6, 3]] と定数 b = (4, 7, 10) を使うと: [1, 2, -1 | 4] [2, 4, 1 | 7] [3, 6, 3 | 10]

2. ステップ2 — 拡大係数行列を行基本変形する

R2 = R2 - 2R1: [0, 0, 3 | -1] R3 = R3 - 3R1: [0, 0, 6 | -2] R3 = R3 - 2R2: [0, 0, 0 | 0] 最後の行は 0 = 0 となり、これは常に成り立ちます——したがって rank([A|b]) = 2 で、rank(A) = 2 と一致します。

3. ステップ3 — 結果を解釈する

rank(A) = rank([A|b]) = 2 < 3(未知数の数)なので、この連立方程式は無数の解を持ち、自由変数は1つ(y)です。これを b = (4, 7, 9) の場合と比較してみましょう。同じ手順を踏むと、最後の行が 0 = -1 という不可能な等式になります。このとき rank(A) = 2 ですが rank([A|b]) = 3 となるため、この連立方程式には解が存在しません。

連立方程式のランク判定:rank(A) < rank([A|b]) なら解なし、両方が n に等しければ解は1つ、両方が等しくnより小さければ解は無数。

行列のランクを計算するときによくある間違い

手計算でランクを求めるとき、繰り返し現れるいくつかの間違いがあります。

1. 間違い1 — ランクと行列のサイズを混同する

4×4の行列が自動的にランク4を持つわけではありません。ランクは行や列の数ではなく、線形独立性によって決まります。

2. 間違い2 — ピボットの位置が0のときに行の入れ替えを忘れる

ピボットとして必要な要素が0で、その下の行の同じ列に非ゼロの値がある場合は、続ける前に必ず行を入れ替える必要があります——このステップを飛ばすと、誤った階段形になり、ランクも間違ってしまいます。

3. 間違い3 — det = 0 を rank = 0 だと思い込む

正方行列において det(A) = 0 が意味するのは rank(A) < n だけです。実際のランクは n-1、n-2、あるいはそれより小さい任意の値の可能性があり、それを特定するにはやはり行基本変形が必要です。

4. 間違い4 — 行基本変形を途中でやめてしまう

ランクは完全に簡約された階段形から読み取らなければなりません。消去の途中でやめてしまうと、一見非ゼロに見える行が、あと1回の操作でゼロになってしまう場合があり、実際より大きいランクを数えてしまうことになります。

最もよくあるランクの間違い:消去が完了する前にランクを読み取ってしまうこと。ピボットを数える前に、必ず行基本変形を最後まで終えましょう。

練習問題:行列のランクの理解度をチェックする

次の3つの問題に取り組んでから、以下の解答で自分の行基本変形を確認してください。

1. 問題1 — D = [[2, 4], [1, 2]] のとき rank(D) を求めよ

解答:det(D) = (2)(2) - (4)(1) = 0 なので rank < 2。R2 = R2 - 0.5R1 とすると [0, 0] になります。非ゼロの行が1つだけ残るので、rank(D) = 1 です。

2. 問題2 — E = [[1, 0, 2], [0, 1, 1], [1, 1, 3]] のとき rank(E) を求めよ

解答:R3 = R3 - R1 - R2 とすると [1-1-0, 1-0-1, 3-2-1] = [0, 0, 0] になります。1行目と2行目は非ゼロで独立のまま残ります(それぞれ1列目と2列目にピボット)。したがって rank(E) = 2 です。

3. 問題3 — x - y = 3 と 2x - 2y = 6 は無矛盾か。また係数行列のランクはいくつか

解答:係数行列 [[1, -1], [2, -2]] は2行目 = 1行目の2倍なので、rank = 1です。拡大係数行列 [[1, -1 | 3], [2, -2 | 6]] も(定数列を含めて)2行目 = 1行目の2倍なので、そのランクも1です。両方のランクが1で、未知数の数2より小さいため、この連立方程式は無矛盾で無数の解を持ちます——2つの方程式は同一の直線を表しています。

検算のコツ:計算したランクが高すぎるように見えたら、完全に階段形まで簡約し直し、それぞれの「非ゼロ」の行に本当に非ゼロのピボットがあるか確認しましょう。

ステップバイステップの練習に行列ランク計算機を使う理由

長い行列を手で行基本変形すると、途中で間違えやすくなります——2行目での計算ミス1つが、その下のすべての行に伝播してしまいます。各消去ステップを表示してくれる行列ランク計算機を使えば、最終的なランクが合っているかどうかだけでなく、自分の計算を1行ずつ確認し、どこで間違えたのかを正確に突き止めることができます。SolvifyのステップバイステップソルバーとAI数学チューターは、このガイドと同じ方法で行基本変形、行列式のショートカット、ランクの問題を解説してくれるので、宿題の確認や試験対策、特定の行列でつまずいたときにも、各手順の背後にある考え方を見失うことなく理解できます。

タグ:
linear algebraalgebracalculatorguide

今すぐ宿題ヘルプを入手

数百万人の学生が利用するAI数学ソルバーに参加しましょう。数学の問題の即時解決、ステップバイステップの説明、24時間365日の宿題サポートを受けられます。

iOSおよびAndroidデバイスで利用可能