線形代数でよく出てくる行列をまとめました。Octaveでのコマンドを使って例を示しています。英訳はWikipediaを参考にしています。
零行列(zero matrix, null matrix)
すべての成分が0である行列。例:
octave:> a = zeros(3,4) a = 0 0 0 0 0 0 0 0 0 0 0 0
正方行列(square matrix)
列の数と行の数が等しい行列。以下は4次正方行列(4-by-4 matrix? 定訳探し中)の例。
octave:> a = rand(4) a = 0.98426 0.49094 0.86232 0.40518 0.73916 0.29774 0.59957 0.17014 0.17946 0.50465 0.93745 0.68141 0.21681 0.57076 0.47181 0.23143
対角行列(diagonal matrix)
対角成分以外の成分がすべて0である正方行列。例:
octave:> a = diag([2 4 5]) a = Diagonal Matrix 2 0 0 0 4 0 0 0 5
単位行列(identity matrix)
対角成分がすべて1である対角行列。eye()はやはりidentityの最初の音節から来てるんでしょうか?
octave:> a = eye(3) a = Diagonal Matrix 1 0 0 0 1 0 0 0 1
転置行列(transposed matrix)
ある行列の行と列を入れ替えてできる行列のこと。Octaveでは、行列aにアポストロフィをつけると置換行列になります。
octave:> a = [2 4 -1; 1 3 -5] a = 2 4 -1 1 3 -5 octave:> a' ans = 2 1 4 3 -1 -5
対称行列(symmetric matrix)
対角線を基準に行と列を入れ替えても(=転置しても)元の行列と等しくなるような正方行列。
octave:> a = [1 -3 5; -3 2 9; 5 9 -2] a = 1 -3 5 -3 2 9 5 9 -2
交代行列(alternative matrix)
転置して各要素を-1倍すると元の行列と等しくなるような正方行列。対角成分は必ず0なのに注意。歪対称行列(skew-symmetric matrix)、または反対称行列(antisymmetric matrix, antimetric matrix)ともいうらしいですが聞いたことないです。
octave:> a = [0 -3 5; 3 0 9; -5 -9 0] a = 0 -3 5 3 0 9 -5 -9 0
逆行列(inverse matrix)
ある行列Aに対して、AB=BA=E(単位行列)となるとき、行列Bを行列Aの逆行列と呼びます。Octaveではinv()を使って求めます。
octave:> a = [1 2; 3 -1] a = 1 2 3 -1 octave:> inv(a) ans = 0.14286 0.28571 0.42857 -0.14286 octave:> a * inv(a) ans = 1 0 0 1
正則行列(regular matrix(?))
逆行列を持つ正方行列のこと。上のa = [1 2; 3 -1]は正則行列。
日本語版Wikipediaには正則行列の英訳はregular matrixと書いてあったんですが、この英語には曖昧性があるようです。 もしかするとinvertible matrix(可逆行列)やnon-singular matrix(非特異行列)の方が普通かも?(要出典) en:Wikipediaへのリンクは以下です。Invertible matrix - Wikipedia, the free encyclopedia
できれば英語の教科書をチェックしてどの語が一般的か調査したいところ。
特異行列(singular matrix)
正則行列ではない正方行列のこと。非正則行列と呼ぶこともある。例:
octave:> a = [1 0; 0 0] a = 1 0 0 0
直交行列(orthogonal matrix)
どの列ベクトルどうしも直交していて(=内積が0で)、かつどの列も長さが1であるような行列。言い換えると、Aと、Aの転置行列をかけると単位行列になるならAは直交行列。例えば以下のaは直交行列。
octave:> a = [1 0 0; 0 1/sqrt(2) 1/sqrt(2); 0 1/sqrt(2) -1/sqrt(2)] a = 1.00000 0.00000 0.00000 0.00000 0.70711 0.70711 0.00000 0.70711 -0.70711 octave:> a * a' ans = 1.00000 0.00000 0.00000 0.00000 1.00000 -0.00000 0.00000 -0.00000 1.00000