モジュール詳細:行列

線形代数の講義を受けなさい。我々は待っている……だが、爆弾は待ってくれないようだ。

モジュールを解除するには、特定の行列に関する質問に数問答えるだけでいい。何のトリックもなく、とても簡単だ……ただし、行列を対角化するまでは。

注:質問ごとに新しい行列が生成されるため、各ステージごとに処理担当者に尋ねることを忘れずに。ステージ数は一定ではない。

警告:私は教えることもマニュアルを書くのも下手なので、付録は自己責任で読んでいただくか、インターネットで関連資料を探してほしい。

このマニュアルは、モジュールを解除するために必要なごく基本的なこと(しかも不十分)しかカバーしていないため、講義やウィキペディア、その他のオンライン資料など、他の情報源から学ぶことを強く推奨する。

付録の内容

  • 質問一覧
  • 行列とは
  • 行列の種類
    • 対角行列
    • 三角行列
    • 対称行列
    • 歪対称行列
    • 中心対称行列
  • 行列に関連する数値
    • 簡単な行列式
    • 小行列式と余因子
    • 複雑な行列式
    • パーマネント
    • トレース
    • 可逆行列
  • 特別な二乗行列
    • 対合行列
    • 冪等行列
  • 方程式の解き方
    • 行階段形
    • 行列の退化次数
    • 行列の階数
  • 最終ボス
    • 固有値
    • 固有ベクトル
    • 対角化可能な行列

質問一覧

英文和文
Is A triangular?Aは三角行列?
Is A diagonal?Aは対角行列?
Is A symmetric?Aは対称行列?
Is A skew-symmetric?Aは歪対称行列?
Is A centrosymmetric?Aは中心対称行列?
Does tr A = N?tr AはN?
Does det A = N?det AはN?
Does perm A = N?perm AはN?
Does Mx,y of A = N?AのM(x,y)はN?
Does Cx,y of A = N?AのC(x,y)はN?
Does null A = N?null AはN?
Does rank A = N?rank AはN?
Is A invertible?Aは可逆行列?
Is A involutory?Aは対合行列?
Is A idempotent?Aは冪等行列?
Is A diagonalizable?Aは対角化可能?

モジュール必須知識詳細:線形代数

線形代数とは、線形変換およびそのような操作を行うことができる対象(ベクトル)に関する非常に深い研究分野である。

ベクトルは非常に深く研究されており、幅広い用途をカバーしているが……そんなことをしている時間はないので簡単にまとめなければいけない!

ベクトル

ベクトルとは、実数のリストであると覚えておけばいい。そして、ここに登場するすべてのベクトルは3つの数字を持つ。

ベクトルには位置番号(インデックス)をつけることができる。ベクトルVがあるとき、Viはベクトル内の上からi番目の数字を示す。
例:

W = ( 2 7 6 ) , W1 = 2 , W2 = 7 , W3 = 6

行列

行列は3×3の実数グリッドと覚えておけばよく、これを使ってさまざまな演算を行うことができる。

行列にも位置番号(インデックス)をつけることができ、最初の数字は行、二番目の数字は列の位置を示す。

A = ( 123 456 789 )
A1,1 = 1 , A1,2 = 2 , A1,3 = 3 , A2,1 = 4 , A2,2 = 5 , A2,3 = 6 , A3,1 = 7 , A3,2 = 8 , A3,3 = 9

方程式の中には、英字が添えられているものがある(通常はiとj)。これは、行列やベクトル内にある特定の成分を取得するには、まず英字の場所にインデックスを代入してから通常の計算を行うことを意味する。

例:

Ai,j = 10 * i + j A = ( 111213 212223 313233 )

演算

行列もベクトルも、同じ大きさである別の行列やベクトルに足したり、数値を掛け合わせたりすることができる。

ベクトル

ベクトルは同じ大きさであれば足し合わせることができ、スカラー倍と呼ばれる掛け算もできる。

公式:

C = A + B Ci = Ai + Bi
B = a A Bi = a * Ai

例:

( 2 0 1 ) + 2 ( 3 3 0 ) = ( 8 6 1 )
行列

ベクトルと同様に、同じ形状の行列を足し合わせたり、スカラー数を掛けたりすることができる。

公式:

C = A + B Ci,j = Ai,j + Bi,j
B = a A Bi,j = a * Ai,j

例:

( 123 456 789 ) + 3 ( 100 010 001 ) = ( 423 486 7812 )
行列同士の掛け算
C = A B Ci,j = k=1n Ai,k * Bk,j

nは行列のサイズである。ここでは3×3の行列だけ計算しているので、nを3に置き換えると和を次のように書き出すことができる。

C = A B Ci,j = Ai,1 * B1,j + Ai,2 * B2,j + Ai,3 * B3,j

例:

( 61-4 3-12 351 ) ( -421 1-10 -274 ) =
( 6(-4)+1*1+(-4)(-2) 6*2+1(-1)+(-4)*7 6*1+1*0+(-4)*4 3(-4)+(-1)*1+2(-2) 3*2+(-1)(-1)+2*7 3*1+(-1)*0+2*4 3(-4)+5*1+1(-2) 3*2+5(-1)+1*7 3*1+5*0+1*4 ) = ( -15-17-10 -172111 -987 )
行列とベクトルの掛け算
w = A v wi = k=1n Ai,k * vk

行列の掛け算と同様に、n=3の合計を拡張することができる。

w = A v wi = Ai,1 * v1 + Ai,2 * v2 + Ai,3 * v3

例:

( 61-4 3-12 351 ) ( 4 1 3 ) = ( 6*4+1*1+(-4)*3 3*4+(-1)*1+2*3 3*4+5*1+1 *3 ) = ( 13 17 20 )

モジュール補足情報詳細:行列の種類

名称 条件
対角行列(Diagonal) 対角成分(左上から右下に向かう対角線上にある値)ではない値がすべて0である場合、その行列は対角行列である。 ( 500 000 001 )
三角行列(Triangular) 対角成分より下または上の値がすべて0である場合、その行列は三角行列である。 ( 400 930 071 )
対称行列(Symmetric) すべての値が対角成分を通る直線に対して線対称である場合、その行列は対称行列である。 ( 498 937 871 )
歪対称行列(Skew-Symmetric) すべての値が対角成分を通る直線に対して線対称であり、値の符号が反転している場合、その行列は歪対称行列である。注:つまり、対角線上の値はすべて0でなければいけない。 ( 09-8 -907 8-70 )
中心対称行列(Centro-Symmetric) すべての値が中心に対して点対称である場合、その行列は中心対称行列である。 ( 308 767 803 )
単位行列(Identity) 対角成分がすべて1である対角行列の場合、その行列は単位行列である。 ( 100 010 001 )

モジュール補足情報詳細:行列式 & 小行列式 & 余因子 & パーマネント & トレース

簡単な行列式(Determinants)とパーマネント(Permanents)

3×3行列の行列式(det A)を理解するためには、まず2×2行列の行列式を理解する必要がある。
幸いにも、これは非常に簡単である。

det ( ab cd ) = a d - b c

パーマネント(perm A)の計算もよく似ているが、マイナスの代わりにプラス記号を使う。

perm ( ab cd ) = a d + b c

小行列式(Minors)

行列の小行列式(Mi,j)とは、元の行列から1行1列を取り除いた行列の行列式のことである。

例:

( 61-4 3-12 351 ) M1,2 = det ( 32 31 ) = det ( 32 31 ) = 3 * 1 - 3 * 2 = -3

余因子(Cofactors)

余因子(Ci,j)は小行列式と非常によく似ているが、インデックスの合計(i + j)が奇数の場合に符号を反転させる。

公式:

Ci,j=(-1)i+jMi,j

例:

M1,1 = 1 C1,1 = 1
M3,2 = 2 C3,2 = -2

3×3行列の行列式とパーマネント

小行列式や余因子の機能法に関する知識は、行列式を計算するのに非常に役立つ。行列式は以下の式を満たすからだ。

det ( abc def ghi ) = a * det ( ef hi ) - b * det ( df gi ) + c * det ( de gh )

パーマネントも同様であるが、加算を実行する。

perm ( abc def ghi ) = a * perm ( ef hi ) + b * perm ( df gi ) + c * perm ( de gh )

行列式の面白い性質

積の行列式は行列式の積である(両方とも正方行列であるとする)。

det(A*B)=det(A)*det(B)=det(B*A)

n行n列の行列Aと数cについて、次の式が成り立つ。

det(cA)=cn*det(A)

トレース(Traces)

行列のトレース(tr A)は、対角成分をそのまま合計したものである。

tr ( abc def ghi ) = a + e + i

モジュール補足情報詳細:可逆(Invertible)/逆(Inverse)行列

A*B=I (Iは単位行列。つまり、対角成分が1でそれ以外が0の行列)を満たすようなBが存在する行列Aを、可逆行列という。
このとき、BAの逆行列といい、一般的にA-1で表す。

次のことを知っておくと非常に便利である: 正方行列Aが可逆行列であるのは、det(A)0の場合のみである。

可逆行列ではない行列は特異行列(singular matrix)と呼ばれる。

余因子を覚えているだろうか。そうでない場合は、2セクション前に戻っていただきたい。
各余因子は2つのインデックスを持ち、これらのインデックスを行列のインデックスとして使用すると、余因子行列(Cofactor matrix)Cを定義することができる。

行列を転置する、つまり対角成分に沿って反転させると、共役行列(Adjugate matrix)と呼ばれるものが得られる。

最後に、行列をAの行列式で割ると逆行列(Inverse)が得られる。

最終的な公式は、

Ai,j-1 = 1det(A) adj(A)i,j = 1det(A) Cj,i

モジュール補足情報詳細:特別な二乗行列

掛け算を定義できれば、累乗は掛け算の繰り返しで示せる。

A2=A*A

行列の中には、以下のように二乗すると特殊な性質を持つものがある。

Aは対合行列(involutory)A2=I
Aは冪等行列(idempotent)A2=A

行列式の性質を使えば、対合行列の行列式は1か-1であり、冪等行列の行列式は1か0であると定義できる。しかし、このような行列式を持つ行列がすべて冪等行列または対合行列であるとは限らない。

モジュール補足情報詳細:方程式の解き方

行列を使うと、行列を一次方程式の集合として解釈できる。行列の各要素は一次方程式の変数の係数になる。
学校の授業で、方程式の両辺にゼロ以外の数を掛けることができることや、方程式同士を引き算することができることを覚えているかもしれない。
行列でも同様のことがいえるが、各方程式は行列の行であるため、行ごとにゼロ以外の数を掛けたり、行同士を引いたり足したりすることができる。

( 2-22 81-2 -21110 ) ~ ( 2-22 09-10 -21110 ) ~ ( 2-22 09-10 0912 ) ~ ( 2-22 09-10 0022 )

行列の各行が0から始まり、各行が一つ前の行より後から始まっていることに注目してほしい。

これはいわゆる行列の行階段形(Row Echelon form)である。

もう一つ、行標準形(Reduced Row Echelon form)という用語も知っておくといい。これは、行内のゼロではない最初の項が常に1になる形であり、各行を最初のゼロではない値で割るだけで成立させられる。

階級(Rank)と退化次数(Nullity)

行階段形は行列の退化次数と階級を決定するのに非常に便利である。まずは行列を簡約化して行階段形にする。

( 2-22 81-2 -211-12 ) ~ ( 2-22 81-2 09-10 ) ~ ( 2-22 09-10 09-10 ) ~ ( 2-22 09-10 000 )

行階段形が判明したら、退化次数はすべて0で埋められている行数を調べればよく、階数はそれ以外の行数になる。

したがって、上記の行列の退化次数は1であり、階数は2である。

退化次数が0より大きければ行列式は必ず0になることは、おそらく役立つだろう。

モジュール補足情報詳細:最終ボス

固有値(Eigenvalues)と固有ベクトル(Eigenvectors)

固有値と固有ベクトルは(λv)の形でペアとして扱われ、以下の式が成り立つ。

Av=λv

つまり、

(A-λI)v=0

固有値を求めるには、この方程式を解けばよい。この方程式は固有方程式と呼ばれる。

det(A-λI)=0

例:

det ( ( 3-68 4-1725 4-1420 )-( λ00 0λ0 00λ ) ) = 0
det ( 3-λ-68 4-17-λ25 4-1420-λ ) = 0
- λ3 + 6 λ2 - 11 λ + 6 = 0

これで我々は固有多項式と呼ばれるものを得た。この式の解が固有値である。

- ( λ-3 ) ( λ-2 ) ( λ-1 ) = 0
λ = 3 , 2 , 1

これで行列の3つの固有値が判明した。

固有値を求めたら、以下に示す固有ベクトルの方程式を使って3つの異なる固有ベクトルがあるかどうかを調べる必要がある。

(A-λI)v=0

前章の退化次数について覚えているだろうか?ここでその概念が戻ってくる。固有ベクトルには幾何学的多重度と呼ばれるものがあるためである。この幾何学的多重度を簡単に求めるには、行列(A-λI)を使用し、ある固有値に対する退化次数を求める。そして、すべての固有値の幾何学的多重度の和を取得すれば、行列に関連するベクトルの次元を求めることができる。我々は3×3行列を使用するため、次元数は高々3になる。

例(続き):

null ( 3-λ-68 4-17-λ25 4-1420-λ ) null ( 3-1-68 4-17-125 4-1420-1 )
( 2-68 4-1825 4-1419 ) ~ ( 2-68 4-1825 0-23 ) ~ ( 2-68 0-69 0-23 ) ~ ( 2-68 0-69 000 ) 退化次数 = 1
null ( 3-λ-68 4-17-λ25 4-1420-λ ) null ( 3-2-68 4-17-225 4-1420-2 )
( 1-68 4-1925 4-1418 ) ~ ( 1-68 05-7 4-1418 ) ~ ( 1-68 05-7 010-14 ) ~ ( 1-68 05-7 000 ) 退化次数 = 1
null ( 3-λ-68 4-17-λ25 4-1420-λ ) null ( 3-3-68 4-17-325 4-1420-3 )
( 0-68 4-2025 4-1417 ) ~ ( 4-2025 4-1417 0-68 ) ~ ( 4-2025 06-8 0-68 ) ~ ( 4-2025 06-8 000 ) 退化次数 = 1

ここで、すべての固有値から得られた退化次数を合計すると、1 + 1 + 1 = 3となり、3×3の行列を扱っているので、元の行列は対角化可能であると結論づけることができる。

注釈:この例では固有値が3つあったが、固有値が1つか2つしかない可能性も十分にある。また、ここではすべての退化次数が1だったが、もし固有値が1つの場合、退化次数は1から3の間になるかもしれない。重要な注意点:ここでは3つの退化次数をすべて計算したが、3つの異なる固有値がある場合、行列は常に対角化可能であることが知られている。