行列
数学の線型代数学周辺分野における行列(ぎょうれつ、matrix)は、数や記号や式などを縦と横に矩形状に配列したものである。
横に並んだ一筋を行(row)、縦に並んだ一筋を列(column)と呼ぶ。
例えば、下記のような行列
\begin{bmatrix}1 & 9 & -13 \\20 & 5 & -6 \end{bmatrix}
は2つの行と3つの列によって構成されているため、(2,3)型または2×3型の行列と呼ばれる。
書き並べられた要素は行列の成分と呼ばれ、行列の第 i 行目、j 列目の成分を特に行列の (i, j) 成分と言う。行列の (i, j) 成分はふつう ai j のように二つの添字を単に横並びに書くが、誤解を避けるために添字の間にコンマを入れることもある。また略式的に、行列 A の (i, j) 成分を指定するのに Ai j という記法を用いることもある。
行列の和は、行の数と列の数が同じ行列において、成分ごとの計算によって与えられる。
行列の積の計算はもっと複雑で、2つの行列がかけ合わせられるためには、積の左因子の列の数と右因子の行の数が一致していなければならない。
行列の応用として代表的なものは一次変換の表現で、これは f (x)  4x のような一次関数を一般化したものである。例えば、三次元空間におけるベクトルの回転は一次変換にあたり、R が回転行列で v が空間の点の位置を表す列ベクトル(1 列しかない行列)であるとき、それらの積 Rv は回転後の点の位置を表す列ベクトルを表現している。また 2つの行列の積は、2つの一次変換の合成を表現するものとなる。
また、その他の応用としては、線型方程式系の解法が挙げられる。行列が正方行列であるとき、そのいくつかの性質は、行列式を計算することによって知ることができる。例えば、正方行列において、行列式の値が非零となることは、それが正則であるための必要十分条件である。固有値と固有ベクトルは一次変換の幾何学に対する洞察を与える。
行列の応用は科学的な分野の大半に及ぶ。
特に物理学において行列は、古典力学、光学、電磁気学、量子力学などにおける様々な物理現象のモデル化と研究に利用される。
運動学やロボット工学では座標変換や姿勢制御などに行列が使われる。特に同次座標変換のため、2次元の座標変換では3×3行列が、3次元の座標変換では4×4行列が使われることが多い。コンピュータグラフィックスにも応用されている(後述)。
確率論や統計学、確率行列において行列は確率の組を表現するのに用いられ、例えば、これはGoogle検索におけるページランクのアルゴリズムで使われている。
行列の微積分は、古典的な解析学における微分や指数関数の概念を高次元へ一般化するものである。
経済学では経済上の関係のシステムを説明するのに行列が用いられる。
行列計算の効率的なアルゴリズムの研究は数値解析における主要な分野であり、これは何世紀にもわたるもので、今日でも研究領域が広がっている。
行列の分解は、理論的にも実用的にも計算を簡単化するもので、そのアルゴリズムは正方行列や対角行列などといった行列の特定の構造に合わせて仕立てられており、有限要素法やそのほかの計算を効率的に処理させる。
惑星運動論や原子論では無限次行列が現れる。
無限次行列の簡単な例としては、関数のテイラー級数に対して作用する微分作用素を表す行列がある。
行列は数または数を表わす文字から成る要素 (element) を矩形状に書き並べて、大きな丸括弧(あるいは角括弧)で括った形に書かれる。ここで文字送りの方向(横)の並びを行 (row) といい、行送りの方向(縦)の並びを列 (column) と呼ぶ。例えば
\begin{bmatrix}
a_{1 1} & a_{1 2} & a_{1 3}\\
a_{2 1} & a_{2 2} & a_{2 3}
\end{bmatrix},\ \begin{pmatrix}
a_{1 1} & a_{1 2} & a_{1 3}\\
a_{2 1} & a_{2 2} & a_{2 3}
\end{pmatrix},\ \begin{bmatrix}
3 & -4 & 6\\
0 & 1 & -2
\end{bmatrix},\ \begin{pmatrix}
3 & -4 & 6\\
0 & 1 & -2
\end{pmatrix}
は 2 つの行と 3 つの列を持つ行列である。行列自身は、ふつうはアルファベットの大文字イタリック(しばしば太字下線や二重下線などを付けることもあるが、これはタイプライター原稿で用いられた太字書体を指示する書式の名残)で表し、その要素は対応する小文字に二つの添字を付けたもので表す(略式的に行列を表す大文字に添字を付けたものを用いることもあるが、その場合小行列の記号と紛らわしい)。つまり一般の m 行 n 列の行列を
A=\mathbf{A}=\begin{bmatrix}
a_{1 1} & a_{1 2} & \cdots & a_{1 n}\\
a_{2 1} & a_{2 2} & \cdots & a_{2 n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m 1} & a_{m 2} & \cdots & a_{m n}
\end{bmatrix}=\begin{pmatrix}
a_{1 1} & a_{1 2} & \cdots & a_{1 n}\\
a_{2 1} & a_{2 2} & \cdots & a_{2 n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m 1} & a_{m 2} & \cdots & a_{m n}
\end{pmatrix}= [\mathbf{a}_{i j}]_{m \times n , (1\le i\le m\ , 1\le j\le n) }
= (\mathbf{a}_{i j})_{m \times n , (1\le i\le m\ , 1\le j\le n) }
のように書く。
書き並べられた要素は行列の成分 (entry, component) と呼ばれる。成分が取り得る値は(さまざまな対象を想定できるが)大抵の場合はある体または可換環 K の元であり、このとき K 上の行列 (matrix over K) という。特に、K が実数全体の成す体 R であるとき実行列と呼び、複素数全体の成す体 C のとき複素行列と呼ぶ。
一つの成分を特定するには、二つの添字が必要である。行列の第 i 行目、j 列目の成分を特に行列の (i, j) 成分と呼ぶ。例えば上記行列 A の (1, 2) 成分は a1 2 である。行列の (i, j) 成分はふつう ai j のように二つの添字を単に横並びに書くが、誤解を避けるために添字の間にコンマを入れることもある。例えば 1 行 11 列目の成分を a1,11 と書いてよい。また略式的には、行列 A の (i, j) 成分を指定するのに Ai j という記法を用いることがある。この場合、例えば積(後述)A B の (i, j) 成分を (A B)i j と指定したりできるので、これで記述の簡素化を図れる場合もある。
行列に含まれる行の数が m, 列の数が n である時に、その行列を m 行 n 列行列や m × n 行列、m n 行列などと呼ぶ。行列を構成する行の数と列の数の対を型 (type) あるいはサイズという。したがって m 行 n 列行列のことを (m, n) 型行列などと呼ぶこともある。K 上の m × n 行列の全体は Km×n, Km,n や Mat(m, n; K), Mm×n(K) などで表される。
1つの列を持つ行列を列ベクトル、1つの行をもつ行列を行ベクトルと呼ぶ。例えば行列
A=\begin{bmatrix} a_{1 1} & a_{1 2}\\ a_{2 1} & a_{2 2}\end{bmatrix}
に対して、[a1 1] , [a1 2] はその列ベクトル、[a1 1 a1 2], [a2 1 a2 2] はその行ベクトルである。
行と列の数が同じである行列は正方行列と呼ばれる。無限の行または列をもつ行列を無限次行列と呼ぶ。プログラミングにおいて行または列を持たない行列を考えると便利となることがしばしばあるが、このような行列を空行列と呼ぶ。
行列は二重に添字づけられた族であり、添字の各対 (i, j) に成分 aij を割り当てる二変数写像
A\colon \{1,\ldots, m\} \times \{1,\dots, n\} \to K; \quad (i,j) \mapsto a_{ij}
である。例えば添字の対 (1, 2) には写像の値として a12 が割り当てられる。値 aij は行列の i-行 j-列成分であるといい、m および n はそれぞれ行および列の数を意味する。写像としての行列の定義と行列が表す線型写像とを混同してはならない。
K に成分を持つ m × n 行列の全体は、したがって配置集合
\operatorname{map}(\{1,\ldots, m\} \times \{1,\ldots, n\}, K) = K^{\{1,\ldots, m\}\times\{1,\ldots n\}
であり、省略形として Km×n(あるいはやや稀だが mKn)や M(m×n; K) などと書くことの一つの根拠になる。
行の数と列の数が一致するような行列は正方行列と呼ばれる。
ただ一つの列を持つ行列は列ベクトル、ただ一つの行を持つ行列は行ベクトルと呼ばれる。Kn のベクトルは、文脈によって行ベクトル空間 K1×n または列ベクトル空間 Kn×1 の元を表すのにも用いられる。
線型方程式の解法における応用に関して、行列は長い歴史を持つ。紀元前10世紀から紀元前2世紀の間に書かれた中国の書物『九章算術』は連立方程式の解法に行列を用いた最初の例であるといわれ、それには行列式の概念が含まれていた。1545年にイタリアの数学者ジェロラモ・カルダーノは『偉大なる術(アルス・マグナ)』を著し、この方法をヨーロッパに持ち込んだ。日本の関孝和は1683年に連立方程式の解法として同様に行列による方法を用いている。ドイツのヨハン・デ・ウィットは1659年の著書 Elements of Curves  において行列の変形について説明している。1700年から1710年にかけてドイツのライプニッツは50以上の異なる体系を用いて行列の使い方を発表した。クラメルが有名な公式を生み出すのは1750年のことである。
行列論の初期においては、行列よりも行列式のほうに非常に重きが置かれており、行列式から離れて現代的な行列の概念と同種のものが浮き彫りにされるのは1858年、ケイリーの歴史的論文 Memoir on the theory of matrices(「行列論回想」)においてである。用語 "matrix"(ラテン語で「生み出すもの」の意味の語に由来)はシルベスターが導入した。シルベスターは行列を、(今日小行列式と呼ばれる)もとの行列から一部の行や列を取り除いて得られる小行列の行列式として、たくさんの行列式を生じるものとして理解していたOEDによれば、数学用語としての "matrix" の最初の用例は J. J. Sylvester in London, Edinb. & Dublin Philos. Mag. 37 (1850), p. 369:  "We ‥commence‥ with an oblong arrangement of terms consisting, suppose, of m lines and n columns. This will not in itself represent a determinant, but is, as it were, a Matrix out of which we may form various systems of determinants by fixing upon a number p, and selecting at will p lines and p columns, the squares corresponding to which may be termed determinants of the pth order.。1851年の論文でシルベスターは
と説明している。
行列式の研究はいくつかの流れから生じてきたものである。数論的な問題はガウスが二次形式(つまり、 x^2 + xy - 2y^2 のような数式)の係数と三次元の線型写像を行列に結び付けたことに始まり、アイゼンシュタインがこれらの概念をさらに進めて、現代的な用語でいえば行列の積が非可換であることなどを指摘した。コーシーは行列  A=(a_{ij}) の行列式として、多項式
a_1 a_2 \cdots a_n \prod_{i < j} (a_j - a_i)
(ここで ∏ は条件を満たす項の総乗を表す)の冪 a を ajk で置き換えたものという定義を採用し、それを用いて行列式についての一般的な主張を証明した最初の人である。コーシーは1829年に、対称行列の固有値が全て実数であることも示している。ヤコビは、幾何学的変換の局所的あるいは無限小のレベルでの挙動を記述することができる関数行列式(後にシルベスターが「ヤコビ行列式」と呼んだ)の研究を行った。クロネッカーの Vorlesungen über die Theorie der Determinanten とワイエルシュトラスの Zur Determinantentheorie はともに1903年に出版された。前者は、それまでのコーシーの用いた公式のような具体的な手法とは反対に、行列式を公理的に扱ったものである。これを以って、行列式の概念がきっちりと確立されたと見なされている。
多くの定理は、初めて確立されたときには小さいサイズの行列に限った主張として示された。例えばケーリー=ハミルトンの定理は、ケイリーが先述の回想録において 2 × 2 行列に対して示し、ハミルトンが 4 × 4 行列に対して証明して、その後の1898年にフロベニウスが双線型形式についての研究の過程で任意次元に拡張した。また、19世紀の終わりに、(ガウスの消去法として今日知られるものを特別の場合として含む)ガウス–ジョルダン消去法をヴィルヘルム・ヨルダンが確立し、20世紀の初頭には行列は線型代数学の中心的役割を果たすようになった。前世紀の超複素数系の分類にも行列の利用が部分的に貢献した。
ハイゼンベルク、ボルン、ジョルダンらによる行列力学の創始は、行または列の数が無限であるような行列の研究へ繋がるものであった。後にフォン・ノイマンは、(大体無限次元のユークリッド空間にあたる)ヒルベルト空間上の線型作用素などの関数解析学的な概念をさらに推し進めることにより、量子力学の数学的基礎を提示した。
二つの行列は、それが同じ型を持つならば互いに加えることができ、この算法を行列の加法、演算の結果を和と言う。異なる型の行列に対しては和は定義されない。つまり、m 行 n 列の行列同士の和を、成分ごとの和
A + B: = [a_ {i j} + b_ {i j}]_{i= 1,\ldots, m,\atop j = 1,\ldots, n}
で定める。
\begin{bmatrix}
5 & 6 \\
-7 & 8
\end{bmatrix} + \begin{bmatrix}
1 & -2 \\
3 & -4
\end{bmatrix} =\begin{bmatrix}
5 + 1 & 6 + (-2) \\
-7 + 3 & 8 + (-4)
\end{bmatrix}= \begin{bmatrix}
6 & 4 \\
-4 & 4 \\
\end{bmatrix}
である。
線型代数学において成分はふつう(実数や複素数の全体のような)体であり、この場合の行列の加法は、結合的かつ可換であり、また単位元として零行列
0\equiv O:=\begin{bmatrix} 0 & \cdots & 0\\ \vdots & \ddots & \vdots\\ 0 & \cdots & 0\end{bmatrix}
を持つ。一般に、これらの三性質を満たす代数系に成分を持つ(同じ型の)行列の全体は、やはりこれらの性質を満たす。
行列の各成分に一つのスカラーを掛けることにより、任意の行列のスカラー倍
\lambda A := [\lambda a_{i j}]_{i=1,\ldots, m,\atop j=1,\ldots, n}
が定義される。例えば、
5 \cdot \begin{bmatrix} 1 & -3 & 2 \\ 1 & 2 & 7 \end{bmatrix} = \begin{bmatrix} 5 \cdot 1 & 5 \cdot (-3) & 5 \cdot 2 \\ 5 \cdot 1 & 5 \cdot 2 & 5 \cdot 7 \end{bmatrix} = \begin{bmatrix} 5 & -15 & 10 \\ 5 & 10 & 35 \end{bmatrix}
である。
スカラー乗法が意味を持つためには、スカラー λ と行列の成分が同じ環 (K, +, ·, 0) からとった元であるべきであり、このとき m × n 行列の全体 Km×n は、左 K-加群(K が体ならばベクトル空間)になる。ベクトル空間(あるいは自由加群)としての Km×n は m n 次元数ベクトル空間 Km n と同型である。
行列の積を初めて定義したのはケイリーである。行列の積は狭い意味での二項演算(即ち、台とする集合 X に対して X × X → X なる写像を定めるもの)ではない。l × m 行列 A と m × n 行列 B の積は l × n 行列となり、C = A B の (i, j) 成分 ci j は、
c_{i j} = \sum_{k=1}^{m}a_{i k}b_{k j}
で与えられる。
例えば、
\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix} = \begin{bmatrix}
5 \cdot 1 + 6 \cdot 3 & 5 \cdot 2 + 6 \cdot 4 \\
7 \cdot 1 + 8 \cdot 3 & 7 \cdot 2 + 8 \cdot 4 \\
\end{bmatrix}= \begin{bmatrix}
23 & 34 \\
31 & 46
\end{bmatrix}
である。
即ち一般には
B \cdot A \neq A \cdot B
となることが両辺が定義される場合 (l = n) であっても起こり得る。さらに m = n(= l) のとき、つまり両辺が正方行列同士の積であれば両辺とも定義されるが、その場合でも一般には両者は異なる。
即ち、乗法が定義される限りにおいて
(A\cdot B)\cdot C = A\cdot (B\cdot C)
が成り立つ。
即ち、各項における加法と乗法が定義される限りにおいて
(A + B)\cdot C = A\cdot C + B\cdot C
および
A\cdot (B + C) = A\cdot B + A\cdot C
が成り立つ。
正方行列に関して行列の乗法は特別な役割を持つ。環 R 上の正方行列全体 Rn×n は行列の加法と乗法に関して、ふたたび環を成すのである。環 R が単位的(つまり単位元 1 を持つ)ならば、単位行列
E_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & 1 \end{bmatrix}
は行列の積に関する単位元となり、環 Rn×n もまた単位的となる。しかし、n > 1 のとき、この環は(基礎環 R が可換環であっても)可換環でない。
行列が区分行列に分解されるとき、そのような行列の積は、それらのブロックが適当なサイズならば、ブロック成分ごとに積を計算することができる。例えば
\begin{align} \left[\begin{array}{cc|cc} a & b & 0 & 0\\ c & d & 0 & 0\\\hline x & y & 1 & 0\\ z & w & 0 & 1 \end{array}\right] \cdot \left[\begin{array}{c|c} n & 0\\ m & 0\\\hline q & 1\\ p & 0 \end{array}\right] &= \begin{bmatrix} A & 0\\ X & E_2 \end{bmatrix} \cdot \begin{bmatrix} N & 0\\ Q & \left[\begin{smallmatrix}1 \\ 0\end{smallmatrix}\right] \end{bmatrix} \\ &= \begin{bmatrix} AN + 0 & 0 + 0\\ XN + E_2Q & 0 + E_2\left[\begin{smallmatrix}1 \\ 0\end{smallmatrix}\right] \end{bmatrix}\end{align}
である。ここで E2 は二次の単位行列、右辺の 0 は全ての成分が 0R(基礎環 R の零元)であるような適当なサイズの行列である。
m × n 行列 A = [ai j] の転置とは n × m 行列 tA = [aj i], 即ち
A = \begin{bmatrix} a_{1 1} & \dots & a_{1 n} \\ \vdots & \ddots & \vdots \\ a_{m 1} & \dots & a_{m n} \end{bmatrix} \iff {}^tA = \begin{bmatrix} a_{1 1} & \dots & a_{m 1} \\ \vdots & \ddots & \vdots \\ a_{1 n} & \dots & a_{m n} \end{bmatrix}
である。これはもとの行列の各列を各行に持つ行列であり、主対角成分 a1 1, a2 2, … に関して折り返したものになっている。
転置行列は以下の計算規則に従う:
\begin{align} {}^t(A + B) &=  {}^tA + {}^tB \\ {}^t(cA) &= c\,{}^tA \\ {}^t({}^tA) &= A \\ {}^t(A B) &= {}^tB\,{}^tA \\ {}^t(A^{-1}) &= ({}^tA)^{-1} \end{align}
n × n 行列 A = [ai j] の行列式とは、
\det(A) = \sum_{\sigma \in \mathfrak{S}_n} \operatorname{sgn} (\sigma) \prod_{i = 1}^n a_{i \sigma (i)}
で定義される数である。これは行列の固有値の積と一致し、det(En)  1, det(A B)  det(A) det(B) などが成り立つ。
行列 A のランクまたは階数とは、この行列の列ベクトルの中で線型独立なものの最大個数であり、また
行ベクトルの中で線型独立なものの最大個数とも等しい。あるいは A の表現する線型写像の像の次元と言っても同じである。階数・退化次数の定理は、行列の核に階数を加えると、その行列の列の数に等しいことを述べるものである。
n × n 行列 A = [ai j] のトレースまたは跡とは、その対角線上にある成分の和
\operatorname{tr}(A) = a_{1 1} + a_{2 2} + \dotsb + a_{n n}
のことである。これは tr(A B)  tr(B A) を満たし、行列のトレースはその固有値の和に等しい。
K-加群としての Mm×n(K) はまた、行列の積 tA B のトレース
\langle A, B \rangle = \operatorname{tr}({}^tA B) = \sum_{i=1}^n \sum_{j=1}^m a_{i j}b_{i j}
を内積に持つ。K = R のとき、これはユークリッドノルムを導き、Mm×n(R) は m n-次元ユークリッド空間 Km n になる。この内積空間において、対称行列全体の成す部分空間と歪対称行列全体の成す部分空間とは互いに直交する。即ち、A が対称, B が歪対称ならば ⟨A, B⟩ = 0 が成り立つ。同様に K = C の場合には、Mm×n(C) は
\langle A, B\rangle = \operatorname{tr} ({}^t\bar{A}B) = \sum_{i=1}^n \sum_{j=1}^m \bar{a}_ {i j}b_ {i j}
(ただし、上付きのバーは複素共軛)をエルミート内積として複素ユニタリ空間を成す(この内積をヒルベルト・シュミット内積と呼ぶ)。この内積はフロベニウスノルムを導き、Mm×n(C) はバナッハ空間となる。
任意の行列 B に対し、その成分をそれぞれの成分の加法逆元に全て取り換えた行列を −B と書けば、同じサイズの行列 A, B の和 A + (−B) を A − B と略記して差を定めることができるこれは与えられた行列の全ての成分が加法逆元を持つ限りにおいて、加法のみから定められることに注意。特にスカラー乗法が(任意のスカラーと任意の行列に対する演算として)定義されている必要はない。従って、同じサイズの任意の行列に対する減法を定めるならば、例えば係数域が加法についてアーベル群であれば十分であるが、通例として行列の係数域は何らかの可換環と仮定するから、それには環の加法群構造を用いればよい。より強く、スカラー乗法が定義される場合には、特にスカラー (−1)-倍は (−1)B = −B を満たすのだから、和とスカラー倍を使って差を定義することもできる。
\begin{bmatrix}
5 & 6 \\
-7 & 8
\end{bmatrix} -\begin{bmatrix}
1 & -2 \\
3 & -4
\end{bmatrix} =\begin{bmatrix}
5 - 1 & 6 - (-2) \\
-7 - 3 & 8 - (-4)
\end{bmatrix}= \begin{bmatrix}
4 & 8 \\
-10 & 12 \\
\end{bmatrix}
とすればよい.
n × n の正方行列 A に対して行列のべき乗は An (ここで n は実数) と書かれる。
行列 A が対角化可能であれば、An = (P−1DP)n = P−1DnP として容易に計算できる。
v と w を n × 1 の列ベクトルとすると、v と w との間に行列の積は定義されないが、tv w および v tw は行列の積として定義することができる。前者は 1 × 1 行列であり、これをスカラーと解釈すれば、v と w との標準内積 ⟨v, w⟩ に他ならない。いっぽう後者は、階数 1 の n × n 行列で、v と w との二項積 v w あるいはテンソル積 v ⊗ w と呼ばれる。
可換環 K 上の m × n 行列の全体 Mm×n(K) は加法とスカラー倍について K-加群を成すばかりでなく、その上の三項演算
M_{m\times n}(K)\times M_{m\times n}(K)\times M_{m\times n}(K)\to M_{m\times n}(K);\quad (X,Y,Z)\mapsto \{X,Y,Z\} := X\,{}^tY\,Z
を定義することができる。これと同様の方法で得られる三重線型な三項系(三項積)の一般論は、ジョルダン環あるいはリー環の理論とかかわりを持つ。