線形代数のレポートや論文を書くとき、行列の表記は避けて通れません。連立方程式の係数行列、座標変換の回転行列、機械学習の重み行列など、行列はあらゆる理工系の分野で登場します。しかし、LaTeXで行列をきれいに書こうとすると「括弧の種類はどう変えるのか」「大きな行列で省略記号を入れるにはどうするのか」といった疑問が次々と浮かびます。
本記事では、LaTeXにおける行列表記の基本から応用までを網羅的に解説します。具体的には以下の内容を扱います。
本記事の内容
- matrix環境の基本的な書き方
- 括弧の種類による使い分け(pmatrix, bmatrix, vmatrix 等)
- 大型行列の省略記法(dots, ddots, vdots)
- ブロック行列・拡大係数行列の書き方
- KaTeXでの互換性に関する注意点
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- argminやargmaxをLatexで表現する — LaTeXの基本的なコマンドの使い方
行列の基本:matrix環境
最もシンプルな行列
LaTeXで行列を書くための最も基本的な環境が matrix 環境です。数学の教科書で行列を手書きするとき、要素を縦横に並べて括弧で囲みますが、LaTeXでもそれと同じ考え方です。行を \\ で改行し、列を & で区切ります。
たとえば $2 \times 2$ の行列を書くには、次のようにします。
$$ \begin{matrix} a & b \\ c & d \end{matrix} $$
この matrix 環境だけでは括弧がつかないため、要素が裸のまま並んだ状態になります。実際の数学表記では括弧で囲むのが一般的ですから、通常は次に紹介する pmatrix や bmatrix といった派生環境を使います。
LaTeXのソースコードは次のとおりです。
$$
\begin{matrix}
a & b \\
c & d
\end{matrix}
$$
ポイントは3つです。
- 列の区切りは
&(アンパサンド)を使います - 行の区切りは
\\(バックスラッシュ2つ)を使います - 環境全体を
$$...$$で囲んでブロック数式にします
この基本構造はすべての行列環境で共通ですので、しっかり覚えておきましょう。
それでは、括弧の種類を変えた行列環境を見ていきましょう。
括弧の種類で使い分ける行列環境
実際の数式では、行列を何らかの括弧で囲みます。LaTeXでは括弧の種類ごとに専用の環境が用意されており、用途や分野の慣習に応じて使い分けます。以下の表に主要な環境をまとめます。
| 環境名 | 括弧の形 | 主な用途 | 出力例 |
|---|---|---|---|
matrix |
なし | 括弧を自分で指定したい場合 | $\begin{matrix} a & b \\ c & d \end{matrix}$ |
pmatrix |
丸括弧 ( ) | 物理学、工学で多用 | $\begin{pmatrix} a & b \\ c & d \end{pmatrix}$ |
bmatrix |
角括弧 [ ] | 線形代数の教科書で多用 | $\begin{bmatrix} a & b \\ c & d \end{bmatrix}$ |
Bmatrix |
波括弧 { } | 集合や特殊な表記 | $\begin{Bmatrix} a & b \\ c & d \end{Bmatrix}$ |
vmatrix |
縦線 | | | 行列式 | $\begin{vmatrix} a & b \\ c & d \end{vmatrix}$ |
Vmatrix |
二重縦線 ‖ ‖ | ノルムなど | $\begin{Vmatrix} a & b \\ c & d \end{Vmatrix}$ |
pmatrix:丸括弧の行列
丸括弧で囲んだ行列は、物理学や工学の分野で最もよく使われる表記です。ベクトルを列ベクトルとして表すときにも頻繁に登場します。
$$ \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} $$
$$
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
$$
たとえば、2次元の回転行列は次のように書けます。
$$ \bm{R}(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix} $$
このように、pmatrix は物理量の変換行列やベクトルの成分表示に適しています。
bmatrix:角括弧の行列
角括弧(ブラケット)で囲んだ行列は、線形代数の教科書で特によく見る表記です。日本の大学で使われる線形代数のテキストでは、この表記が主流です。
$$ \bm{A} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$
$$
\bm{A} = \begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{bmatrix}
$$
上の例は $3 \times 3$ の単位行列 $\bm{I}$ です。対角成分がすべて1、非対角成分がすべて0であることが一目でわかります。
vmatrix:行列式
行列式を表すときは vmatrix 環境を使います。行列式は行列の「大きさ」や「体積の拡大率」を表すスカラー量であり、縦線で囲んで表記するのが慣例です。
$$ \det(\bm{A}) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad – bc $$
$$
\det(\bm{A}) = \begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
= ad - bc
$$
行列そのもの(bmatrix や pmatrix)と行列式(vmatrix)を混同しないよう注意しましょう。行列はベクトルの集まりであり、行列式はそこから計算されるスカラー値です。
Vmatrix:二重縦線
Vmatrix は二重の縦線で囲む環境です。ノルムの表記など、特殊な場面で使用されることがあります。
$$ \begin{Vmatrix} a & b \\ c & d \end{Vmatrix} $$
使用頻度は他の環境に比べて低いですが、論文のスタイルによっては必要になる場合があります。
ここまでで括弧の種類による行列環境の使い分けを理解しました。次に、行列のサイズが大きくなったときに省略記号を使って表現する方法を見ていきましょう。
大型行列の省略記法
実際の数学では $n \times n$ のような一般的なサイズの行列を扱うことが多く、すべての要素を書き出すわけにはいきません。そのような場合には省略記号(ドット記号)を使って行列の構造を表現します。
省略記号の種類
LaTeXには3種類のドット記号が用意されています。それぞれの特徴と用途は以下のとおりです。
| コマンド | 表示 | 方向 | 用途 |
|---|---|---|---|
\cdots |
$\cdots$ | 水平 | 行方向の省略 |
\vdots |
$\vdots$ | 垂直 | 列方向の省略 |
\ddots |
$\ddots$ | 斜め | 対角方向の省略 |
一般的な $n \times n$ 行列
これら3つのドット記号を組み合わせると、一般的な $n \times n$ 行列を次のように表現できます。
$$ \bm{A} = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix} $$
$$
\bm{A} = \begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}
$$
ここでのポイントは、\ddots(斜めのドット)を対角方向に配置することです。これにより「同じパターンが対角方向に続く」ことが視覚的に伝わります。特に対角行列や単位行列を一般化して書く場合には、この斜めのドットが欠かせません。
対角行列
対角行列は対角成分以外がすべて0の行列です。省略記号を活用して簡潔に書けます。
$$ \bm{D} = \begin{pmatrix} d_1 & 0 & \cdots & 0 \\ 0 & d_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d_n \end{pmatrix} $$
$$
\bm{D} = \begin{pmatrix}
d_1 & 0 & \cdots & 0 \\
0 & d_2 & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & d_n
\end{pmatrix}
$$
対角行列は固有値分解、特異値分解、正規化など多くの場面で登場するため、この書き方は頻繁に使うことになります。
帯行列(三重対角行列)
数値解析でよく現れる三重対角行列(tridiagonal matrix)も、省略記号を工夫して表現できます。
$$ \bm{T} = \begin{pmatrix} b_1 & c_1 & & & 0 \\ a_2 & b_2 & c_2 & & \\ & a_3 & b_3 & \ddots & \\ & & \ddots & \ddots & c_{n-1} \\ 0 & & & a_n & b_n \end{pmatrix} $$
$$
\bm{T} = \begin{pmatrix}
b_1 & c_1 & & & 0 \\
a_2 & b_2 & c_2 & & \\
& a_3 & b_3 & \ddots & \\
& & \ddots & \ddots & c_{n-1} \\
0 & & & a_n & b_n
\end{pmatrix}
$$
空のセル(& だけで要素を書かない部分)は0を意味します。行列の左下と右上に明示的に $0$ を書いておくと、読者にとってわかりやすくなります。
省略記号を使いこなせば、どんな大きさの行列でも構造を明確に伝えることができます。次は、行列をブロックに分けて書く方法を見ていきましょう。
ブロック行列の書き方
大きな行列は、小さな行列(ブロック)の組み合わせとして表現することがよくあります。たとえば、状態空間モデルや制御工学では、システム行列をブロック行列として書くのが一般的です。
基本的なブロック行列
ブロック行列は、太字の行列記号を要素として配置するだけで表現できます。
$$ \bm{M} = \begin{pmatrix} \bm{A} & \bm{B} \\ \bm{C} & \bm{D} \end{pmatrix} $$
$$
\bm{M} = \begin{pmatrix}
\bm{A} & \bm{B} \\
\bm{C} & \bm{D}
\end{pmatrix}
$$
各ブロック $\bm{A}, \bm{B}, \bm{C}, \bm{D}$ はそれぞれ行列であり、全体として1つの大きな行列 $\bm{M}$ を構成しています。
具体的な応用:状態空間モデル
制御工学における状態空間モデルでは、次のようなブロック行列が登場します。
$$ \begin{pmatrix} \dot{\bm{x}} \\ \bm{y} \end{pmatrix} = \begin{pmatrix} \bm{A} & \bm{B} \\ \bm{C} & \bm{D} \end{pmatrix} \begin{pmatrix} \bm{x} \\ \bm{u} \end{pmatrix} $$
$$
\begin{pmatrix}
\dot{\bm{x}} \\
\bm{y}
\end{pmatrix}
=
\begin{pmatrix}
\bm{A} & \bm{B} \\
\bm{C} & \bm{D}
\end{pmatrix}
\begin{pmatrix}
\bm{x} \\
\bm{u}
\end{pmatrix}
$$
このように、ブロック行列を使うことでシステムの構造が視覚的にわかりやすくなります。
零行列と単位行列を含むブロック行列
ブロック行列の中に零行列 $\bm{O}$ や単位行列 $\bm{I}$ を含める書き方もよく使います。
$$ \begin{pmatrix} \bm{I} & \bm{O} \\ \bm{O} & \bm{A} \end{pmatrix} $$
このような構造は、行列の直和(direct sum)を表す場面などで頻出します。
ブロック行列の書き方がわかったところで、次は連立方程式を解くときに使う拡大係数行列の書き方を紹介します。
拡大係数行列(augmented matrix)
連立一次方程式をガウスの消去法で解くとき、係数行列と右辺ベクトルを1つにまとめた「拡大係数行列」を使います。拡大係数行列では、係数部分と右辺部分を縦線(パーティション)で区切って表記します。
array環境を使った方法
拡大係数行列を書く最も確実な方法は、array 環境を使うことです。列の区切りに | を入れることで縦線を引くことができます。
$$ \left(\begin{array}{ccc|c} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \end{array}\right) $$
$$
\left(\begin{array}{ccc|c}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
9 & 10 & 11 & 12
\end{array}\right)
$$
ここでの {ccc|c} は「中央揃え(center)の列が3つ、縦線、中央揃えの列が1つ」を意味しています。\left( と \right) で括弧のサイズを自動調整しています。
行の簡約操作の表記
ガウスの消去法では、行の操作を右側に注釈として書くことがあります。
$$ \left(\begin{array}{ccc|c} 1 & 2 & 3 & 4 \\ 0 & -4 & -8 & -12 \\ 0 & -8 & -16 & -24 \end{array}\right) $$
2行目は「$R_2 \leftarrow R_2 – 5R_1$」、3行目は「$R_3 \leftarrow R_3 – 9R_1$」のように行操作を示します。
拡大係数行列は線形代数の基礎で頻出する表記ですので、しっかり書けるようにしておきましょう。次に、行列をインライン(文中)で書く方法について解説します。
インライン行列:smallmatrix
文章の中に小さな行列を埋め込みたい場合があります。通常の pmatrix 環境を文中で使うと行間が大きく広がってしまうため、smallmatrix 環境を使います。
たとえば、「行列 $\left(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\right)$ の行列式は $ad – bc$ である」のように、文中に自然に行列を挿入できます。
行列 $\left(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\right)$ の行列式は $ad - bc$ である。
smallmatrix は要素のサイズが小さくなり、行間も詰まるため、本文の流れを崩しません。ただし、要素が多い行列をインラインで書くと見づらくなるため、$2 \times 2$ や $3 \times 1$ 程度の小さな行列に限定するのがよいでしょう。
インライン行列の使い方を押さえたところで、次は行列の転置や逆行列といった、行列に付随する記号の書き方を見ていきましょう。
行列に付随する記号
行列を扱う際には、転置、逆行列、随伴行列などの記号を付けることがよくあります。ここでは、それぞれの書き方を紹介します。
転置行列
転置行列は上付き文字の $\mathrm{T}$ で表します。立体(ローマン体)にするのが一般的です。
$$ \bm{A}^\mathrm{T}, \quad \bm{A}^\top $$
$$
\bm{A}^\mathrm{T}, \quad \bm{A}^\top
$$
\mathrm{T} はローマン体の T、\top は専用の転置記号です。どちらを使うかは論文や教科書のスタイルに従ってください。
逆行列
逆行列は上付き文字の $-1$ で表します。
$$ \bm{A}^{-1} $$
$$
\bm{A}^{-1}
$$
波括弧 {} で -1 を囲むことで、上付き文字全体として扱われます。\bm{A}^-1 のように波括弧を省略するとレイアウトが崩れるので注意してください。
エルミート転置(随伴行列)
複素行列の場合、エルミート転置(共役転置)を使います。記号としては $\dagger$ やアスタリスク $*$ が使われます。
$$ \bm{A}^\dagger, \quad \bm{A}^*, \quad \bm{A}^\mathrm{H} $$
$$
\bm{A}^\dagger, \quad \bm{A}^*, \quad \bm{A}^\mathrm{H}
$$
量子力学では $\dagger$(ダガー)が標準的ですが、工学では $\mathrm{H}$ が使われることもあります。
行列の諸量
行列に関連するよく使う記号をまとめます。
| 記号 | LaTeX | 説明 |
|---|---|---|
| $\det(\bm{A})$ | \det(\bm{A}) |
行列式 |
| $\mathrm{tr}(\bm{A})$ | \mathrm{tr}(\bm{A}) |
トレース(対角和) |
| $\mathrm{rank}(\bm{A})$ | \mathrm{rank}(\bm{A}) |
階数(ランク) |
| $\bm{A}^{-1}$ | \bm{A}^{-1} |
逆行列 |
| $\bm{A}^\mathrm{T}$ | \bm{A}^\mathrm{T} |
転置行列 |
これらの記号は線形代数の記事や論文で頻出するので、すぐに書けるようにしておくと効率が上がります。
行列に付随する記号を一通り紹介しました。次に、LaTeXではなくKaTeXでブログに数式を書く場合の互換性について確認しておきましょう。
LaTeX と KaTeX の互換性に関する注意点
本ブログではKaTeX(LaTeXのサブセットをブラウザ上でレンダリングするライブラリ)を使用しています。行列環境に関して、KaTeXはほぼすべての主要な機能をサポートしていますが、いくつか注意点があります。
サポートされている環境
以下の行列環境はKaTeXで問題なく使用できます。
matrix,pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrixsmallmatrixarray
注意が必要な点
-
\hlineの使用:array環境内での\hline(水平線)は、KaTeXのバージョンによってはサポートが不完全な場合があります。拡大係数行列の縦線(|)は問題なく使えます。 -
\bordermatrix: 行列の行や列にラベルを付ける\bordermatrixコマンドは、KaTeXではサポートされていません。代わりにarray環境で工夫する必要があります。 -
amsmath パッケージ: LaTeXでは
\usepackage{amsmath}が必要ですが、KaTeXではこのパッケージの機能がデフォルトで利用可能です。特別な読み込みは不要です。 -
\hdotsfor: 複数列にまたがるドットを表す\hdotsforコマンドは、KaTeXではサポートされていない場合があります。代わりに\cdotsを適切なセルに配置しましょう。
ブログやWebサイトでKaTeXを使う場合は、上記の点に気をつければ、本記事で紹介した行列の書き方はほぼそのまま使えます。
では最後に、行列をLaTeXで書くときによくある間違いとその対処法を紹介します。
よくある間違いとTips
間違い1:列の区切りを間違える
行列環境で最もよくある間違いは、列の区切りにカンマやスペースを使ってしまうことです。
% NG: カンマ区切り
\begin{pmatrix}
1, 2 \\
3, 4
\end{pmatrix}
% OK: & 区切り
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
行列環境では必ず & で列を区切りましょう。
間違い2:行数と列数の不一致
行ごとに & の数が異なると、コンパイルエラーが発生します。
% NG: 1行目は2列、2行目は3列
\begin{pmatrix}
1 & 2 \\
3 & 4 & 5
\end{pmatrix}
% OK: すべての行で列数を揃える
\begin{pmatrix}
1 & 2 & 0 \\
3 & 4 & 5
\end{pmatrix}
すべての行で & の数を揃えるように気をつけてください。
間違い3:最終行に \\ を付ける
行列の最後の行には \\ を付けないのが基本です。付けると余分な空行が入ったり、環境によってはエラーになることがあります。
% 非推奨: 最終行に \\ がある
\begin{pmatrix}
1 & 2 \\
3 & 4 \\
\end{pmatrix}
% 推奨: 最終行に \\ はなし
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
Tips1:行列の要素に数式を入れる
行列の各要素には、単なる数値だけでなく数式も書けます。
$$ \bm{J} = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} \\ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} \end{pmatrix} $$
この例はヤコビ行列(Jacobian matrix)で、各要素が偏微分になっています。要素が複雑な場合でも、& と \\ の構造さえ正しければ問題ありません。
Tips2:行列の積を並べて書く
複数の行列の積を1行で書くこともよくあります。
$$ \bm{C} = \bm{A}\bm{B} = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix} $$
$$
\bm{C} = \bm{A}\bm{B} =
\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}
\begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}
= \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}
$$
行列の積を視覚的に示す場合には、このように計算結果まで並べて書くとわかりやすくなります。
Tips3:行列のサイズ表記
行列のサイズを明示するときは、下付き文字を使います。
$$ \bm{A}_{m \times n}, \quad \bm{A} \in \mathbb{R}^{m \times n} $$
$$
\bm{A}_{m \times n}, \quad \bm{A} \in \mathbb{R}^{m \times n}
$$
$\mathbb{R}^{m \times n}$ は「$m \times n$ の実数行列全体の集合」を意味し、行列の定義域を明示するときに使います。
まとめ
本記事では、LaTeXで行列を書くための方法を基本から応用まで解説しました。
- matrix系環境(
matrix,pmatrix,bmatrix,vmatrix等)で括弧の種類を使い分ける - 省略記号(
\cdots,\vdots,\ddots)で大型行列を簡潔に表現する - array環境で拡大係数行列の縦線を引く
- smallmatrixで文中に小さな行列を埋め込む
- 転置・逆行列・行列式などの付随記号を正しく書く
行列の表記は線形代数をはじめ、制御工学、機械学習、数値解析など幅広い分野で必要になります。本記事で紹介した環境とコマンドを押さえておけば、ほとんどの場面に対応できるでしょう。
次のステップとして、以下の記事も参考にしてください。
- ベクトルの太字・矢印記号をLaTeXで書く — ベクトルの表記法
- 偏微分・全微分をLaTeXで書く — ヤコビ行列の要素に使う偏微分記号