数学記号記法一覧(集合・線形代数・テンソル代数)

34 min read読了の目安(約31300字 2

数学記号記法一覧

普段私が用いているルールに則った記号・記法の一覧。私の専門の都合上、情報系の機械学習・数理最適化(線形代数、微積分、微分幾何など)に偏っており、プログラミング言語理論(論理学、圏論)や暗号・符号(群、環、体)の方面はほとんど書いていない。

本記事の内容のほとんどは一般的な表記に則っているため、他の本や論文を読むときに索引してもよい(一部独自表記を含むがその際はそう明記する)。

記号についてあまり詳しい解説はしない。

  • 実際に表示される記号
  • なんという名前の概念に対応しているか
  • LaTeX コマンド

などを書いておくので、わからなければ各自調べてほしい。

定義

ABにより定義するとき、以下のような表記が用いられる。どれを用いるかは好みの問題である。

表記 LaTeX 備考
A = B A = B 不親切で誤解を招くがよく使われる
A \stackrel{\mathrm{def}}{=} B A \stackrel{\mathrm{def}}{=} B あまり見かけない
A := B A := B 工学部っぽい
A \triangleq B A \triangleq B 最近情報系の論文でよく見る
A \equiv B A \equiv B 理学部っぽい
A \stackrel{\mathrm{def}}{\equiv} B A \stackrel{\mathrm{def}}{\equiv} B 一番親切で誤解がない
A :\Leftrightarrow B A :\Leftrightarrow B 圏論で見た
A \stackrel{\mathrm{def}}{\Leftrightarrow} B A \stackrel{\mathrm{def}}{\Leftrightarrow} B 見たことない

但し書き

数式の前後に文章で断りを入れるのが面倒くさいときは、数式中に但し書きを入れることがある。

表記 LaTeX 意味
\mathrm{let} \mathrm{let} (以下の数式において)この条件を課す
\therefore \therefore (前の数式の結論として)ゆえに
\because \because (前の数式が導出されたのは)なぜならば
\mathrm{where} \mathrm{where} (前の数式を説明するために)ただし
\mathrm{if} \mathrm{if} (前の数式は)以下の条件のもとで
\mathrm{otherwise} \mathrm{otherwise} \mathrm{if}を受けて)それ以外

たとえば「x0以上の実数とする。このxx ^ 2 = 3を満たす。ゆえにx = \sqrt{3}である(なぜならばx \geq 0だから)」は

\begin{aligned} \mathrm{let} \,\, x \in \mathbb{R}, x \geq 0: \,\, x ^ 2 = 3 \\ \therefore x = \sqrt{3} \quad (\because x \geq 0) \end{aligned}

と書ける。LaTeX だと綺麗に配置するのがしんどいが、手書きのときなどは適宜改行やインデントをしてよい。

他にも「y=\operatorname{ReLU}(x)である。ただし\operatorname{ReLU}(x)x \geq 0のときxをそのまま出力し、その他では0を取る関数である」は

y = \operatorname{ReLU}(x) \quad \mathrm{where} \,\, \operatorname{ReLU}(x) = \begin{cases} x &\mathrm{if} \,\, x \geq 0 \\ 0 &\mathrm{otherwise} \end{cases}

と書ける。ちなみに上記の数式はそれぞれ

\begin{aligned}
\mathrm{let} \,\, x \in \mathbb{R}, x \geq 0: \,\, x ^ 2 = 3 \\
\therefore x = \sqrt{3} \quad (\because x \geq 0)
\end{aligned}
y = \operatorname{ReLU}(x) \quad \mathrm{where} \,\, \operatorname{ReLU}(x) = \begin{cases}
x &\mathrm{if} \,\, x \geq 0 \\
0 &\mathrm{otherwise}
\end{cases}

で出力している。

集合

複数のものを集めて扱うとき、数学では集合(set)という対象を用いる。

基本的な集合

集合 表記 LaTeX
自然数の集合 \mathbb{N} \mathbb{N}
整数の集合 \mathbb{Z} \mathbb{Z}
実数の集合 \mathbb{R} \mathbb{R}
複素数の集合 \mathbb{C} \mathbb{C}
任意の体 \mathbb{K} \mathbb{K}

範囲を限定するとき

0より大きい」とか「0以上の」といった指定を整数の集合や実数の集合につけたいときは右下添字で簡易的に書かれることがある。「より大きい」は大なり(>)を用いるからよいが、「以上の」にはちょっと気取った大なりイコール(\geqslant)を用いるので一瞬ビックリする。

集合 表記 LaTeX
0より大きい整数 \mathbb{Z} _ {> 0} \mathbb{Z} _ {> 0}
0以上の自然数 \mathbb{Z} _ {\geqslant 0} \mathbb{Z} _ {\geqslant 0}
0より大きい実数 \mathbb{R} _ {> 0} \mathbb{R} _ {> 0}
0以上の自然数 \mathbb{R} _ {\geqslant 0} \mathbb{R} _ {\geqslant 0}

集合の演算

A, Bを任意の集合とする。

演算 表記 LaTeX
A \cup B A \cup B
A \cap B A \cap B
A \setminus B A \setminus B

複数の集合A _ 1, A _ 2, \ldots, A _ nで和や積を取るときは以下の表記が用いられる。

\begin{aligned} \bigcup _ {i=1} ^ n A _ i &\stackrel{\mathrm{def}}{\equiv} A _ 1 \cup A _ 2 \cup \cdots \cup A _ n \\ \bigcap _ {i=1} ^ n A _ i &\stackrel{\mathrm{def}}{\equiv} A _ 1 \cap A _ 2 \cap \cdots \cap A _ n \end{aligned}

LaTeX コマンドはそれぞれ\bigcup _ {i=1} ^ n\bigcap _ {i=1} ^ nである。

集合の元と量化子

aが集合Aの元であるとき、aA属するといい、a \in Aと表記する。たとえばxが実数であることを主張するときはx \in \mathbb{R}と書く。

表記 LaTeX 意味
a \in A a \in A aは集合Aの元である

「任意の実数に対して」のように指定する記号は量化子と呼ばれる。

量化子 表記 LaTeX 用法 意味
全称量化 \forall \forall \forall x \in X 集合Xのすべての元xについて/任意のxについて
存在量化 \exists \exists \exists x \in X 集合Xのある元xについて/xが存在して
唯一存在量化 \exists! \exists! \exists! x \in X 集合Xのある唯一の元xについて/唯一のxが存在して

包含関係

集合A, Bがまったく同じ元を持つとき集合ABは等しいといいA=Bで表す。集合Aの元がすべて集合Bにも属しているとき、集合Aは集合B含まれるといいA \subset Bと表す。このときABの部分集合(subset)であるという。

ABが等しいときでも「集合Aの元がすべて集合Bにも属している」という条件を満たすので「ABの部分集合である」といえる。集合Aが集合Bに含まれるが等しくはないとき、ABの真部分集合(true subset)であるという。

A \subset Bという表記の場合、それがA=Bを含意するかどうかについて明確な決まりはない。文脈から判断するしかないが、まともな書き手であれば必ず最初の方で断りを入れているはずなので探したほうがよい。より親切な書き手ならば真部分集合(\subsetneq)か部分集合(\subseteq)で書いているはずである。

表記 LaTeX 意味
A = B A = B 集合A,Bは等しい
A \subset B A \subset B 集合Aは集合Bの(真)部分集合である
A \subsetneq B A \subsetneq B 集合Aは集合Bの真部分集合である
A \subseteq B A \subseteq B 集合Aは集合Bの部分集合であるかまたは等しい

外延表記と内包表記

集合を定義するときは主に外延的定義と内包的表記という方法がある。

外延表記

集合の要素をすべて書き下して集合を定義する記法を外延的定義(extensional definition)という。この表記の仕方自体のことは日本語では「外延表記」というが、英語では "Roster notation" という。

表記例 LaTeX
A = \{ 1, 2, 3 \} A = \{ 1, 2, 3 \}
A = \{ 1, 2, \ldots, n \} A = \{ 1, 2, \ldots, n \}

内包表記

集合の要素が満たすべき条件を書き下して集合を定義する記法を内包的定義(intensional definition)という。この表記の仕方自体のことは日本語では「内包表記」というが、英語では "set-builder notation" という。

表記例 LaTeX
A = \{ x \mid 1 \leq x \leq n \} A = \{ x \mid 1 \leq x \leq n \}

集合の直積

複数の集合からひとつずつ元を選んで作られる組を元とする新たな集合を定義するとき、この集合をもとの集合のデカルト積(Cartesian product)または直積(direct product)という。集合A, Bの直積Cを内包表記で定義すれば

C = A \times B \stackrel{\mathrm{def}}{\equiv} \{ (a,b) \mid a \in A, b \in B \}

である。

同じ集合An個についての直積はA ^ nと簡略表記される。

A ^ n \stackrel{\mathrm{def}}{\equiv} \underbrace{A \times A \times \cdots \times A}_{n個}

ちなみに上の式はA ^ n \stackrel{\mathrm{def}}{\equiv} \underbrace{A \times A \times \cdots \times A}_{n個}というコマンドで出力できる。

写像(対応、写像、関数)

高校で習うような関数は、大学の基礎的な集合論ではより一般的な写像や対応といった概念に拡張される。大学以降でもっともよく使うのはおそらく写像である。定義とか意味は本題ではないので各自調べること。

対応(correspondence)は集合Aの元から集合Bの元への対応関係のうちで、イメージ的には多対多のものを言う。状況が一般化されすぎていて扱いづらいのであまり用いられない。

写像(map)は集合Aの元から集合Bの元への対応関係のうちで、イメージ的には多対一のものを言う。状況が適度に一般化されていて扱いやすいのでよく用いられる。ちなみに一対一で対応している特殊ケースの写像は単射(injection)という。

関数(function)は写像のうちで終域(Bのほう)が数の集合(\mathbb{R}, \mathbb{Z}など)となるものを指す。つまり写像の特殊ケースである。

対応、写像、関数は大抵の場合、同じ表記が用いられるので写像で代表する。

集合Aから集合Bへの写像fを考えるとき、Aを始域、Bを終域といいf \colon A \to Bと書く。特にx \in Af(x) \in Bに写されることまで明記するときはf \colon A \to B \colon x \mapsto f(x)のように書く。

表記 LaTeX
f \colon A \to B f \colon A \to B
f \colon A \to B \colon x \mapsto f(x) f \colon A \to B \colon x \mapsto f(x)

たとえばf(x) = x ^ 2も、より厳密に書きたいならば

\begin{aligned} f &\colon \mathbb{R} \to \mathbb{R} _ {\geqslant 0} \colon x \mapsto x ^ 2 \\ f &\colon \mathbb{C} \to \mathbb{R} \colon x \mapsto x ^ 2 \end{aligned}

のようになる。

写像によく使われる文字

表記 LaTeX
f f
g g
h h
F F
G G
H H
\gamma \gamma
\Gamma \Gamma
\phi \phi
\varphi \varphi
\psi \psi

少し発展的な内容

集合族

集合を集めた集合を集合族(family of sets)または集合系(system of sets)という。たとえばA,B,Cがいずれも集合であるとき、集合

\mathfrak{P} = \{ A, B, C \}

は集合族である。LaTeX コマンドの筆記体(\mathcal)、ドイツ文字(\mathfrak)、花文字(\mathscr)などの飾り文字で表されることがあり、大体初見では読めない。飾り文字は『数学記号記法一覧(文字装飾・ギリシャ文字・飾り文字)』にすべて列挙するが、よく出てくるのは以下。

文字 \mathcal \mathfrak \mathscr
A \mathcal{A} \mathfrak{A} \mathscr{A}
B \mathcal{B} \mathfrak{B} \mathscr{B}
C \mathcal{C} \mathfrak{C} \mathscr{C}
D \mathcal{D} \mathfrak{D} \mathscr{D}
F \mathcal{F} \mathfrak{F} \mathscr{F}
O \mathcal{O} \mathfrak{O} \mathscr{O}
P \mathcal{P} \mathfrak{P} \mathscr{P}
V \mathcal{V} \mathfrak{V} \mathscr{V}
X \mathcal{X} \mathfrak{X} \mathscr{X}
Y \mathcal{Y} \mathfrak{Y} \mathscr{Y}
Z \mathcal{Z} \mathfrak{Z} \mathscr{Z}

以下の位相空間、測度空間では集合族を扱うので覚えておくとよい。

位相空間

イメージ的には「近さ」とか「点から点への繋がり」といった構造が入った集合のこと。集合の和(無限個まで)と集合の積(有限個まで)について閉じた集合系である開集合系か、距離構造を直接入れた近傍系を用いて定義されることが多い。

「近さ」が定義されていないと「近づく」ことができないし、「点から点への繋がり」が定義されていないと「どういった近づき方ができるか」がわからないので、極論、微分が定義できない。同様にして派生する概念である「点と点がどれくらい離れてるか」も測れないので積分も定義できない。

つまり微分とか積分が定義されている空間には大体、位相空間の構造が入っている。

測度空間

イメージ的には「部分集合の大きさ」の構造が入った集合のこと。集合の補演算と集合の和(可算無限個まで)について閉じた集合系である\sigma-加法族を用いて定義される。\sigma-加法族は完全加法族ともいう。

積分するのに重要だった「点と点がどれくらい離れてるか」という概念は、一般化すれば「部分集合の大きさ」になるので、位相空間を介さなくても部分集合の大きさのほうを直接定義しにいけば積分自体は定義可能である。

高校で習う、位相空間に基づいた積分はリーマン積分(Riemann integral)、大学以降で習う、測度空間に基づいた積分はルベーグ積分(Lebesgue integral)という。

線形代数

情報系にとってはコンピュータで扱う関係上、有限次元の行列と数ベクトルが主な対象になる。数学できる人からは「それは線形代数ではなく算数だ」などと揶揄される。

ベクトル空間

ベクトル空間(vector space)とは簡単にはベクトルの加法スカラー乗法の2種類の演算について閉じた空間である。ベクトル空間にはU, V, Wなどの文字がよく使われる。

ベクトル空間の元をベクトル(vector)という。ベクトルにはu,v,w,x,y,zなどの文字が使われることが多いが、どんな文字も割り当てられうる。

工学・物理学系の書籍ではベクトルは太字で{\bm v}や矢印をつけて\vec{v}とされることが多いが、数学書や論文ではスカラーと同じ書体でvのように書かれることが多いので注意。

ベクトルの表記 LaTeX 受ける印象
v v 数学寄り
{\bm v} {\bm v} 情報寄り
\vec{v} \vec{v} 物理寄り

コンピュータ上では扱いやすさの関係上、体\mathbb{R}上の有限次元実数ベクトル空間がよく使われる。d次元の実数ベクトル空間の元はd個の実数の組で表せるため直積を用いて\mathbb{R} ^ dと表記される。

表記 LaTeX 意味
v \in V v \in V vはベクトル空間Vの元である
x \in \mathbb{R} ^ d x \in \mathbb{R} ^ d xd次元実数ベクトル空間\mathbb{R} ^ dの元である

ベクトルの表記

d次元実数ベクトル空間\mathbb{R} ^ dの元は直積で定義されているから、()の中に並べて書ける。横に並べて書くときは行ベクトルという。

x = (x _ 1, x _ 2, \ldots, x _ d) \in \mathbb{R} ^ d

一方で、縦に並べて書くときは列ベクトルという。

x = \left( \begin{matrix} x _ 1 \\ x _ 2 \\ \vdots \\ x _ d \end{matrix} \right) \in \mathbb{R} ^ d

ちなみにこれらはそれぞれ

x = (x _ 1, x _ 2, \ldots, x _ d) \in \mathbb{R} ^ d
x = \left(
\begin{matrix}
x _ 1 \\
x _ 2 \\
\vdots \\
x _ d
\end{matrix}
\right) \in \mathbb{R} ^ d

というコマンドで出力している。

ベクトルの転置

行と列の並びの方向を入れ替える操作を転置(transpose)という。つまり

(x _ 1, x _ 2, \ldots, x _ d) ^ \mathrm{T} = \left( \begin{matrix} x _ 1 \\ x _ 2 \\ \vdots \\ x _ d \end{matrix} \right), \quad \left( \begin{matrix} x _ 1 \\ x _ 2 \\ \vdots \\ x _ d \end{matrix} \right) ^ \mathrm{T} = (x _ 1, x _ 2, \ldots, x _ d)

である。行列演算の都合上、ベクトルは列ベクトルで定義されることが多い。また、紙面節約のため、列ベクトルはx = (x _ 1, x _ 2, \ldots, x _ d) ^ \mathrm{T}と行ベクトルを転置して書くことも多い。

内積

ベクトルどうしの内積V \times V \to \mathbb{R}は中点(\cdot)か、角括弧(\left< \cdot, \cdot \right>)を用いて表す。実数ベクトルどうしであれば、u \in \mathbb{R} ^ nv \in \mathbb{R} ^ nの内積は

\left< u, v \right> \stackrel{\mathrm{def}}{\equiv} u ^ \mathrm{T} v = \sum _ {i=1} ^ n u _ i v _ i

で定義される。

また、関数f(x),g(x)は無限次元ベクトル空間\mathscr{X}の元とみなすことができて、関数どうしの内積を以下のように積分で定義することもある。

\left< f, g \right> \stackrel{\mathrm{def}}{\equiv} \int f(x) g(x) dx

他にも、ヒルベルト空間\mathcal{H}や再生核ヒルベルト空間\mathcal{K}の内積というのも、機械学習のカーネル法を勉強していると出てくるが、どの空間での内積かを明記するときは下付き添字を用いて

\left< \cdot, \cdot \right> _ \mathcal{H}, \left< \cdot, \cdot \right> _ \mathcal{K}

のようにする。

u,v \in Vの内積 LaTeX 備考
u \cdot v u \cdot v 簡易的
\left< u , v \right> \left< u, v \right> 一般的なので定義は都度要確認
u ^ \mathrm{T} v u ^ \mathrm{T} v 有限次元実数ベクトル空間V = \mathbb{R} ^ n
\int u(x) v(x) dx \int u(x) v(x) dx 無限次元実数ベクトル空間V = \mathscr{X}
\left< \cdot, \cdot \right> _ \mathcal{H} \left< \cdot, \cdot \right> _ \mathcal{H} ヒルベルト空間V = \mathcal{H}
\left< \cdot, \cdot \right> _ \mathcal{K} \left< \cdot, \cdot \right> _ \mathcal{K} 再生核ヒルベルト空間V = \mathcal{K}

また、Markdown記法の関係上、表の中には書けなかったが、あとで紹介するブラ-ケット記法(bra-ket notation)の\left< u | v \right>、双対性を表す内積の\left[ u , v \right]というものもある。これらは少し変わった内積なのであとで説明する。

ノルム

ベクトルの「大きさ」や「長さ」に相当する概念である。

ベクトルx \in Vのノルム\| \cdot \| \colon V \to \mathbb{R}は、普通は自分自身との内積の平方根によって与えられるユークリッドノルム(Euclid norm)を用いる。

\| x \| \stackrel{\mathrm{def}}{\equiv} \sqrt{\left< x, x \right>}

これは有限次元実数ベクトルx \in \mathbb{R} ^ nであれば、

\| x \| = \sum _ {i=1} ^ n x _ i ^ 2 = x _ 1 ^ 2 + x _ 2 ^ 2 + \cdots + x _ n ^ 2

となる。有限次元実数ベクトル空間ではこの他にp-ノルムまたはL ^ pノルムと呼ばれるノルム\| \cdot \| _ p \colon V \to \mathbb{R}も定義される。L ^ pノルムはp \in \mathbb{R} _ {\geqslant 1}について定義されていて、

\| x \| _ p \stackrel{\mathrm{def}}{\equiv} \left( \sum _ {i=1} ^ n |x _ i| ^ p \right) ^ {\frac{1}{p}}

である。ただし| \cdot |は絶対値記号である。これはp=2のときユークリッドノルムに一致している。p \to +\inftyの極限で定義されるL ^ \inftyノルムもあり、これは「xの要素のうちで絶対値が最大のもの」を表す。

\| x \| _ \infty = \operatorname{max} \{ |x _ 1|, |x _ 2|, \ldots, |x _ n| \}

ちなみにこの式は以下のコマンドで出力している。

\| x \| _ \infty = \operatorname{max} \{ |x _ 1|, |x _ 2|, \ldots, |x _ n| \}

また、本来p1以上が想定されているが、スパースモデリングなどではp \to 0の極限で定義されるL ^ 0ノルムも用いられることがあり、これは「xの要素のうちで0でないものの個数」を表す。

他にも、ノルムを直接定義したバナッハ空間、内積からノルムを定義できるヒルベルト空間、再生核ヒルベルト空間、ヒルベルト空間に関数としての性質が追加された関数空間などでも定義され、どの空間でのノルムかを下付き添字で明記することもある(バナッハ空間のみ添字なしが多い)。

x \in Vのノルム LaTeX 備考
\| x \| \| x \| この表記は一般のノルムを指すのでどんなノルムかは都度要確認
\| x \| \| x \| バナッハ空間(バナッハ空間はベクトル空間とは限らない)
\| x \| _ \mathcal{H} \| x \| _ \mathcal{H} ヒルベルト空間V=\mathcal{H}
\| x \| _ \mathcal{K} \| x \| _ \mathcal{K} 再生核ヒルベルト空間V=\mathcal{K}
x \in \mathbb{R} ^ nのノルム LaTeX 備考
\| x \| \| x \| ユークリッドノルム
\| x \| _ 2 \| x \| _ 2 ユークリッドノルム
\| x \| _ p \| x \| _ p L ^ pノルム
\| x \| _ \infty \| x \| _ \infty L ^ \inftyノルム(要素の絶対値が最大のもの)
\| x \| _ 0 \| x \| _ 0 L ^ 0ノルム(0でない要素の数)

行列(線形変換)

n次元実数ベクトル空間\mathbb{R} ^ nの元に対する線形変換\mathbb{R} ^ n \to \mathbb{R} ^ m行列(matrix)で表すことができる。線形変換(linear transform)または線形写像(linear map)は線形性を満たす写像のことである。

n次元実数ベクトル空間\mathbb{R} ^ dの元xに対する線形変換Aは、一般にm \times n個の数を縦横に並べて

A = \left( \begin{matrix} 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{matrix} \right) \in \mathbb{R} ^ {m \times n}

のように書く。ij列目で代表して

A = A _ {ij}, A = a _ {ij}

のように定義することもあり、単にA _ {ij}と言われたときは、それが行列なのか、行列のij番目の要素なのかに注意する必要がある

特にm=1のときのf \colon \mathbb{R} ^ n \to \mathbb{R}線形汎関数(linear functional)といい、

f = \left( \begin{matrix} a _ {1} & a _ {2} & \cdots & a _ {n} \end{matrix} \right) \in \mathbb{R} ^ {n}

のように行ベクトルで表される。

行列をm個の線形汎関数f _ {(i)} \colon \mathbb{R} ^ n \to \mathbb{R}を縦に並べたものとして考えるとき

A = \left( \begin{matrix} f _ {(1)} \\ f _ {(2)} \\ \vdots \\ f _ {(m)} \end{matrix} \right)

と解釈することがあり、同様にn個のm次元ベクトルx _ {(j)} \in \mathbb{R} ^ mを横に並べたものとして考えるとき

X = \left( \begin{matrix} x _ {(1)} & x _ {(2)} & \cdots & x _ {(n)} \end{matrix} \right)

と解釈することもある。

行列の転置

ベクトルに転置を定義したように行列にも転置が定義される。

A ^ \mathrm{T} = \left( \begin{matrix} 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{matrix} \right) ^ \mathrm{T} = \left( \begin{matrix} a _ {11} & a _ {21} & \cdots & a _ {m1} \\ a _ {12} & a _ {22} & \cdots & a _ {m2} \\ \vdots & \vdots & \ddots & \vdots \\ a _ {1n} & a _ {2n} & \cdots & a _ {mn} \\ \end{matrix} \right) \in \mathbb{R} ^ {n \times m}

零行列

零行列O \in \mathbb{R} ^ {n \times n}は正方行列のうちですべての成分が0のものである。

零行列 LaTeX
O O

単位行列

単位行列I _ n \in \mathbb{R} ^ {n \times n}は正方行列のうちで対角成分がすべて1、その他がすべて0の行列である。

I _ n = \left( \begin{matrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \\ \end{matrix} \right)

単位行列のサイズが自明なときは単にIとも書かれ、Iの代わりに文字Eが用いられることもある。

また、単位行列の要素はクロネッカーのデルタ\delta _ {ij}で定義することができるので、単に\delta _ {ij}と書かれているものが単位行列を指していることもある。

I = \delta _ {ij} \quad \mathrm{where} \,\, \delta _ {ij} = \begin{cases} 1 & \mathrm{if} \,\, i = j \\ 0 & \mathrm{otherwise} \end{cases}
単位行列 LaTeX
I I
I _ n I _ n
E E
E _ n E _ n
\delta _ {ij} \delta _ {ij}

逆行列

正方行列A \in \mathbb{R} ^ {n \times n}が正則ならば、逆行列が唯一つ存在し、それをA ^ {-1}と表記する。

逆行列は以下の性質を満たす。

A A ^ {-1} = A ^ {-1} A = I
逆行列 LaTeX
A ^ {-1} A ^ {-1}

行列式

正方行列に対しては行列式(determinant)\operatorname{det}(A)が定義できる。

\operatorname{det}(A)は、A \in \mathbb{R} ^ {n \times n}を、n次元ベクトルをn本、行ごとに並べたものとみなすとき、そのn本のベクトルがつくる図形(n=2ならば平行四辺形、n=3ならば平行六面体、それ以上は超立体)の符号付き体積に一致する。

行列式 LaTeX
\operatorname{det}(A) \operatorname{det}(A)

行列の対角和(トレース)

正方行列に対しては対角成分の総和演算であるトレース(trace)が定義できる。

\operatorname{tr}(A) = \sum _ {i=1} ^ n a _ {ii}
行列の対角和 LaTeX
\operatorname{tr}(A) \operatorname{tr}(A)

行列の内積

行列はあくまで線形写像の表記の一種に過ぎず、A \in \mathbb{R} ^ {m \times n}m \times n次元のベクトルとみなしてもよい(行列の和とスカラー倍は、ベクトル空間の公理としてのベクトルの和とスカラー倍にそのまま用いることができる)。

ベクトルだとみなしたら内積やノルムを定義したくなるのが道理であり、行列A, B \in \mathbb{R} ^ {m \times n}にも内積\left< \cdot, \cdot \right> \colon \mathbb{R} ^ {m \times n} \times \mathbb{R} ^ {m \times n} \to \mathbb{R}が定義される。行列の内積はベクトル同様、位置が対応する成分どうしをかけたあとで、すべて足し合わせる。

\left< A, B \right> = \operatorname{tr}(A ^ \mathrm{T} B) = \sum _ {i=1} ^ m \sum _ {j=1} ^ n a _ {ij} b _ {ij}

\operatorname{tr}(A ^ \mathrm{T} B)という書き方がよく好まれるが、正直わかりにくいと思う。Python で計算するときもnumpy.trace(A.T.dot(B))とするよりnumpy.sum(A * B)で計算したほうが速い。

他にもベクトルの内積と同様にA \cdot Bと書かれることもある。

行列の内積 LaTeX
A \cdot B A \cdot B
\left< A, B \right> \left< A, B \right>
\operatorname{tr}(A ^ \mathrm{T} B) \operatorname{tr}(A ^ \mathrm{T} B)

行列のノルム

行列の内積から誘導されるノルムはフロベニウスノルム(Frobenius norm)と呼ばれ\| \cdot \| _ F \colon \mathbb{R} ^ {m \times n} \to \mathbb{R}で表記される。

\| A \| _ F \stackrel{\mathrm{def}}{\equiv} \sqrt{\sum _ {i=1} ^ m \sum _ {j=1} ^ n a _ {ij} ^ 2} = \sqrt{\left< A, A \right>}

Python で計算するときはnumpy.linalg.norm(A)で計算できる。

行列Y \in \mathbb{R} ^ {m \times n}を、行列X \in \mathbb{R} ^ {m \times p}, W \in \mathbb{R} ^ \mathbb{n \times p}

\hat{Y} = X W ^ \mathrm{T}

と近似したいとき、二乗誤差はフロベニウスノルムの二乗で書けるためよく見かける。たとえばXが固定の最小二乗法ならば、目的関数f(W)

f(W) = \| Y - \hat{Y} \| _ F ^ 2 = \| Y - X W ^ \mathrm{T} \| _ F ^ 2

と書ける。

行列のノルム LaTeX 備考
\| A \| \| A \| 一般的なノルムを表す表記のため定義は都度要確認
\| A \| _ F \| A \| _ F フロベニウスノルム

行列の随伴

複素数\mathbb{C}共役(conjugate)の概念を複素数ベクトル\mathbb{C} ^ nや複素数行列\mathbb{C} ^ {m \times n}に拡張したのが随伴(adjoint)である。

実数ベクトルは転置すればそのベクトルに対応した線形汎関数を得ることができたのだが、複素数ベクトルに同様の概念を考えようとすると転置するだけでは不十分で、転置した上で各要素で複素共役を取らねばならない(リースの表現定理より)。この操作を随伴といいA ^ \astA ^ \daggerで表す。

Aの随伴 LaTeX
A ^ \ast A ^ \ast
A ^ \dagger A ^ \dagger
A ^ \dagger = \left( \begin{matrix} 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{matrix} \right) ^ \dagger = \left( \begin{matrix} \bar{a} _ {11} & \bar{a} _ {21} & \cdots & \bar{a} _ {m1} \\ \bar{a} _ {12} & \bar{a} _ {22} & \cdots & \bar{a} _ {m2} \\ \vdots & \vdots & \ddots & \vdots \\ \bar{a} _ {1n} & \bar{a} _ {2n} & \cdots & \bar{a} _ {mn} \\ \end{matrix} \right) \in \mathbb{R} ^ {n \times m}

エルミート内積

2つの複素数ベクトルx, y \in \mathbb{C} ^ nの内積\mathbb{C} ^ n \times \mathbb{C} ^ n \to \mathbb{C}は随伴を用いて

\left< x, y \right> \stackrel{\mathrm{def}}{\equiv} x ^ \dagger y = \sum _ {i=1} ^ n \bar{x} _ i y _ i

のように定義される。

ブラ-ケット記法による内積

量子力学や量子情報理論における波動関数は無限次元複素数ベクトルで表現できるので、ある粒子の状態を記述する波動関数はその粒子の状態ベクトルとも呼ばれる。波動関数\psi(x)で表現される粒子の存在確率は自身とのエルミート内積

\left< \psi | \psi \right> \stackrel{\mathrm{def}}{\equiv} \int \psi(x) ^ \dagger \psi(x) dx

で表される。\psi(x) ^ \dagger\psi(x)の随伴である。

こう書くと\left< \psi | \psi \right>\left< \psi \right|\left| \psi \right>に分けて、それぞれベクトルだと思いたくなる。なった人がいた。それで、

\begin{aligned} \psi(x) &= \left| \psi \right> \\ \psi(x) ^ \dagger &= \left< \psi \right| \end{aligned}

と書くことにして、\left< \psi \right|をブラベクトル(bra vector)、\left| \psi \right>をケットベクトル(ket vector)と呼ぶことになった。ブラベクトルが行ベクトルでケットベクトルが列ベクトルに対応している。随伴を取ると互いに入れ替わるので

\left| \psi \right> ^ \dagger = \left< \psi \right|, \quad \left< \psi \right| ^ \dagger = \left| \psi \right>

である。

量子ビット

古典情報理論で扱うビット(bit)は01かで情報を表したが、量子情報理論で登場する量子ビット(qubit: quantum bit の略)は\left| 0 \right>\left| 1 \right>の重ね合わせ(線形和)で状態を表す。

\left| 0 \right>, \left| 1 \right> \in \mathbb{C} ^ 2

\left| 0 \right> \stackrel{\mathrm{def}}{\equiv} \left( \begin{matrix} 1 \\ 0 \end{matrix} \right), \quad \left| 1 \right> \stackrel{\mathrm{def}}{\equiv} \left( \begin{matrix} 0 \\ 1 \end{matrix} \right)

と定義されており、複素数\alpha, \beta \in \mathbb{C} \, (|\alpha|^2 + |\beta|^2=1)を用いて

\left| \psi \right> = \alpha \left| 0 \right> + \beta \left| 1 \right> = \left( \begin{matrix} \alpha \\ \beta \end{matrix} \right)

と表現できる\left| \psi \right>1量子ビットの表現できる情報の範囲である。先程、量子状態の観測確率は状態ベクトルの自身とのエルミート内積で表されると言った。量子ビットは理論的には観測に失敗することを考慮していない。つまり確率101のどちらかの状態が観測されるものとするから、先に断りを入れたように

\left< \psi | \psi \right> = \left( \begin{matrix} \bar{\alpha} & \bar{\beta} \end{matrix} \right) \left( \begin{matrix} \alpha \\ \beta \end{matrix} \right) = \bar{\alpha}\alpha + \bar{\beta}\beta = |\alpha| ^ 2 + |\beta| ^ 2 = 1

を要請するのである。

量子ビットは観測したときに結果が01に定まる。量子ビットが保持しているのは「どちらが何%の確率で観測されるか」という情報である。0, 1が観測される確率をそれぞれp _ 0, p _ 1とおくと、

\begin{aligned} p _ 0 = |\alpha| ^ 2 \\ p _ 1 = |\beta| ^ 2 \end{aligned}

である。

\left| 0 \right> = 1 \cdot \left| 0 \right> + 0 \cdot \left| 1 \right>

であるから、\left| 0 \right>p _ 0 =1, p _ 1 = 0で「必ず0が観測される」ことを意味し、これは古典ビットの0に対応する状態になる。同様にして\left| 1 \right>は古典ビットの1に対応する。

複数量子ビットは量子ビットどうしのテンソル積\otimes\otimes)で定義される。テンソルやテンソル積についてはテンソル代数の章で説明するが、

\left| z \right> = \left| x \right> \otimes \left| y \right> \quad \mathrm{where} \,\, \left| x \right> = \left( \begin{matrix} x ^ 0 \\ x ^ 1 \end{matrix} \right), \left| y \right> = \left( \begin{matrix} y ^ 0 \\ y ^ 1 \end{matrix} \right)

とするとき、

z ^ {ij} \stackrel{\mathrm{def}}{\equiv} x ^ i y ^ j

により定義される。添え字が上付きなのは反変成分表示していることを意味する(下付きだと共変成分表示の意味になる)。反変とか共変というのが何を意味しているかわからない人は、量子情報理論ではあまり気にしなくてよく、ただのベクトルの成分表示だと思ってよい。

zには添字が2つついているので、ij成分をij列目に行列表示すると、

\left| z \right> = \left( \begin{matrix} x ^ 0 y ^ 0 & x ^ 0 y ^ 1 \\ x ^ 1 y ^ 0 & x ^ 1 y ^ 1 \end{matrix} \right)

となる。これが2量子ビットで表現可能な情報量である。いまは添字が2つだからいいが、3量子ビット以上になると添字が3つ以上になり行列では書けないので、量子情報理論の文脈では縦に並べ直すことが多い。

\left| z \right> = \left( \begin{matrix} x ^ 0 y ^ 0 \\ x ^ 0 y ^ 1 \\ x ^ 1 y ^ 0 \\ x ^ 1 y ^ 1 \end{matrix} \right)

これは表記の仕方の問題なので本質的には意味は変わらない。さて、この規則に従って

\begin{aligned} \left| 00 \right> \stackrel{\mathrm{def}}{\equiv} \left| 0 \right> \otimes \left| 0 \right> = \left( \begin{matrix} 1 \\ 0 \\ 0 \\ 0 \end{matrix} \right), & \quad \left| 01 \right> \stackrel{\mathrm{def}}{\equiv} \left| 0 \right> \otimes \left| 1 \right> = \left( \begin{matrix} 0 \\ 1 \\ 0 \\ 0 \end{matrix} \right) \\ \left| 10 \right> \stackrel{\mathrm{def}}{\equiv} \left| 1 \right> \otimes \left| 0 \right> = \left( \begin{matrix} 0 \\ 0 \\ 1 \\ 0 \end{matrix} \right), & \quad \left| 11 \right> \stackrel{\mathrm{def}}{\equiv} \left| 1 \right> \otimes \left| 1 \right> = \left( \begin{matrix} 0 \\ 0 \\ 0 \\ 1 \end{matrix} \right) \end{aligned}

とおく。\left| 0 \right>, \left| 1 \right>のときの議論と同様にして、\left| 00 \right>, \left| 01 \right>, \left| 10 \right>, \left| 11 \right>はそれぞれ古典ビットの00, 01, 10, 11に対応する。

\left| z \right> = z ^ {00} \left| 00 \right> + z ^ {01} \left| 01 \right> + z ^ {10} \left| 10 \right> + z ^ {11} \left| 11 \right>

と基底展開できる。\left| 00 \right>の観測確率p _ {00}

p _ {00} = |z ^ {00}|^2

で表され、\left| 01 \right>, \left| 10 \right>, \left| 11 \right>の観測確率p _ {01}, p _ {10}, p _ {11}に関しても同様である。

3量子ビット以降についても以下同様で、一般にn量子ビットは2 ^ n通りのすべての可能性の観測確率を保持しているため、複数量子ビットに対する操作が可能になれば莫大な情報を内部的に保持した演算が可能になる。これが量子コンピュータが期待されている所以である。

テンソル代数

情報系にとってはコンピュータで扱う関係上、多次元配列として扱うことになる。でもカッコつけたいばかりに多次元配列をテンソルなどと呼んだ日には数学できる人に「それ本当にテンソルなの?」「テンソルにする意味あった?」って半笑いで詰められて死ぬ。

行列とは線形写像の表記の仕方の一種であり、それに対する操作(和、差、行列積など)とセットになって初めて「行列」としての意味を持つのであって、ただデータを2次元配列に詰め込んだだけのものは厳密には行列とは言わない。行列と「みなす」ことができるだけである。同様に多次元配列もテンソルの表記の仕方の一種に過ぎない。

特にテンソルの文脈では、表現の仕方によっては「配列を転置することがどういう意味を持つか」などについて注意を払わねばならない。自分がどういった表現を採用していて、その表現において行う操作が数学的にどんな操作に対応するか把握しておくべきである。

ベクトルの基底展開

n次元ベクトル空間では線形独立なn個のベクトルを選べば、それらの線形和でそのベクトル空間のすべての点を表現することができる。そのようにして選んだn本のベクトルの集合をそのベクトル空間の基底(basis)といい、基底に属するベクトルは基底ベクトル(basis vector)という。基底ベクトルにはeという文字が好まれる。

B = \{ e _ 1, e _ 2, \ldots, e _ n \}

基底はベクトルの集合なので、厳密にはその要素について並び順を考慮しない。したがって「1番目の基底ベクトル」といってもどれを指すか本来はわからない(という意地悪をする人がいるかもしれない)。

基底ベクトルの順序を固定したときは、より正確には順序付けられた基底(ordered basis)とかフレーム: frame)と呼ばれる。でも逆に名前がマイナーでわかりにくいので私は単に「基底」と呼んでしまう。

ベクトルa \in Vを基底ベクトルe _ 1, e _ 2, \ldots, e _ n \in Vの線形和で表す形式を、ベクトルの線形基底展開(linear basis expansion)という。たとえばV = \mathbb{R} ^ nであれば、ベクトルaに対して係数w ^ 1, w ^ 2, \ldots, w ^ n \in \mathbb{R}が唯一通り存在して、

a = w ^ 1 e _ 1 + w ^ 2 e _ 2 + \cdots + w ^ n e _ n

と書ける(添字を上付きにしたのは、あとで出てくる反変を表す添字だからである)。

基底ベクトルは列ごとに、係数は行ごとに並べて、

X = \left( \begin{matrix} e _ 1 & e _ 2 & \cdots & e _ n \end{matrix} \right), \quad w = \left( \begin{matrix} w ^ 1 \\ w ^ 2 \\ \vdots \\ w ^ n \end{matrix} \right)

とすれば、先程の基底展開は行列表記で

a = Xw

と書ける。

イメージがわかない人は基底は座標系、基底展開の係数は座標だと思ってくれればよい。たとえばe _ 1 = (1, 0) ^ \mathrm{T}, e _ 2 = (0, 1) ^ \mathrm{T}とすればよく使うデカルト座標系のx軸とy軸を表すベクトルになるし、w = (2, 3) ^ \mathrm{T}はそこでの点(2,3)に対応する。

重要なのは、基底ベクトルは互いに直交していなくてもよいということである。基底ベクトルがすべて互いに直交している座標系は直交座標系(orthigonal coordinate system)、そうでない座標系は斜交座標系(oblique coordinate system)という。

基底ベクトルがすべて互いに直交している基底は直交基底(orthogonal basis)、さらにすべての基底ベクトルのノルムが1であるとき正規直交基底(orthonormal basis)という。

基底ベクトル LaTeX 備考
e _ i e _ i 数学寄り
{\bm e} _ i {\bm e} _ i 物理・情報寄り
\vec{e} _ i \vec{e} _ i なぜかあまり見ない
{\bm i}, {\bm j}, {\bm k} {\bm i}, {\bm j}, {\bm k} 電磁気学のx,y,z
\vec{i}, \vec{j}, \vec{k} \vec{i}, \vec{j}, \vec{k} 電磁気学のx,y,z

双対ベクトル空間

ベクトル空間Vには必ず双対ベクトル空間(dual vector space)V ^ \astが存在する。さらに

x ^ \ast \stackrel{\mathrm{def}}{\equiv} \left< x , \cdot \right> _ V

で対応するx ^ \ast \in V ^ \astが唯一通り存在する(リースの表現定理)。ただし\left< \cdot , \cdot \right> _ Vはベクトル空間Vにおける内積である。

上の定義がよくわからないという人は、V = \mathbb{R} ^ nならば転置、V = \mathbb{C} ^ nならば随伴と覚えておけばよい。

\begin{aligned} x ^ \ast &= x ^ \mathrm{T} \\ x ^ \ast &= x ^ \dagger \end{aligned}

もとのベクトル空間Vの元を列ベクトルで表記しているならば、双対ベクトル空間V ^ \astの元は行ベクトルで表記する(と都合がいい、あくまで表記の問題)。ブラ-ケット記法の章も読んでいるならば、

\begin{aligned} x &= \left| x \right> \in V \\ x ^ \ast &= \left< x \right| \in V ^ \ast \end{aligned}

になっていることに気付くだろう。

また、双対ベクトル空間の双対ベクトル空間はもとのベクトル空間とみなせる。すなわち、

\begin{aligned} (V ^ \ast) ^ \ast = V \\ (x ^ \ast) ^ \ast = x \end{aligned}

が成り立つ。

表記 LaTeX 備考
V ^ \ast V ^ \ast ベクトル空間Vの双対ベクトル空間
x ^ \ast x ^ \ast ベクトルxに対応する双対ベクトル

双対性を表す内積

双対ベクトル空間V ^ \astの元はベクトル空間Vの元と一対一で対応しているので、どちらか一方の空間からもう一方の空間へ点を写せば、ベクトルx ^ \ast \in V ^ \asty \in Vの間で内積\left[ \cdot, \cdot \right] \colon V ^ \ast \times V \to \mathbb{K}を取ることができる(ただし\mathbb{K}は任意の体でV\mathbb{K}上のベクトル空間、何言ってるかわからない人は\mathbb{K} = \mathbb{R}, V = \mathbb{R} ^ nの場合だけ考えればよい)。これを双対性を表す内積(duality pairing)という。

\left[ x ^ \ast, y \right] \stackrel{\mathrm{def}}{\equiv} \left< (x ^ \ast) ^ \ast, y \right> _ V = \left< x, y \right> _ V

V = \mathbb{R} ^ nならばx ^ \ast = x ^ \mathrm{T}だから、

\left[ x ^ \ast, y \right] = x ^ \mathrm{T} y

とそのまま行列積を取ればよい。V = \mathbb{C} ^ nならば例のごとく転置が随伴に拡張される。

誤解がない場合や、書き手が面倒くさがりだったりすると単に\left< x ^ \ast, y \right>と書かれることがある。

また、ブラ-ケット記法では\left< x | y \right>となる(\left< x \right|x ^ \astを意味しているため\astが外れていることに注意)。

x ^ \ast \in V ^ \asty \in Vの内積 LaTeX 備考
\left[ x ^ \ast, y \right] \left[ x ^ \ast, y \right] 双対性を表す内積
x ^ \mathrm{T} y x ^ \mathrm{T} y V=\mathbb{R} ^ nのとき
x ^ \dagger y x ^ \dagger y V=\mathbb{C} ^ nのとき
\left< x ^ \ast, y \right> \left< x ^ \ast, y \right> 伝わるが若干不親切

案の定、ブラ-ケット記法は Markdown の仕様上、表内に書けないので書いていない。

双対基底

双対ベクトル空間もベクトル空間なので基底が定義できる。その中でも重要なのが、もとのベクトル空間に基底をひとつ定めたときに、それに対応して唯一つ定まる双対基底(dual basis)である。

双対基底B ^ \ast = \{ e ^ 1, e ^ 2, \ldots, e ^ n \} \subset V ^ \astとは、もとのベクトル空間の基底をB = \{ e _ 1, e _ 2, \ldots, e _ n \} \subset Vと定めたとき、以下の条件

\left[ e ^ i, e _ j \right] = \begin{cases} 1 & \mathrm{if} \,\, i = j \\ 0 & \mathrm{otherwise} \end{cases}

を満たすものを言う。これは正規直交基底が満たす条件

\left< e _ i, e _ j \right> = \begin{cases} 1 & \mathrm{if} \,\, i = j \\ 0 & \mathrm{otherwise} \end{cases}

によく似ていることから、双対基底はもとの基底と双直交(biorthogonal)であるという。

よくわからないという人は、先ほど基底展開の章で

X = \left( \begin{matrix} e _ 1 & e _ 2 & \cdots & e _ n \end{matrix} \right)

と行列で表記したことを思い出してほしい。一方で双対基底については双対基底ベクトルを行ごとに並べて、

X ^ \ast = X ^ {-1} = \left( \begin{matrix} e ^ 1 \\ e ^ 2 \\ \vdots \\ e ^ n \end{matrix} \right)

と表現することにすると、双直交の条件から

X ^ \ast X = I

を満たすので、X ^ \ast = X ^ {-1}が求まる。

表記 LaTeX 備考
e _ i e _ i もとのベクトル空間Vの基底の基底ベクトル
e ^ i e ^ i 双対ベクトル空間V ^ \astの基底の基底ベクトル

反変成分表示と共変成分表示

先ほど基底展開の章で、ベクトルa \in V

a = X w

と基底展開した。今後、この基底を基準として共変基底(covariant basis)と呼ぶことにする。Xが基底ならばXは正則だから逆行列X ^ {-1}が存在する。上式にX ^ {-1}をかけると、

w = X ^ {-1} a

となる。さらに双対基底についてX ^ \ast = X ^ {-1}が成り立つことを思い出せば、

w = X ^ \ast a

である。双対基底のほうは反変基底(contravariant basis)と呼ばれ、wはもとのベクトルと反変基底との内積で取り出された係数なので、もとのベクトルの反変成分表示という。

一方で、もとの空間のベクトルa \in Vに対応した双対ベクトルa ^ \ast \in V ^ \astは、双対基底によって以下のように展開できる。

a ^ \ast = v ^ \ast X ^ \ast

反変成分表示のときと同様に(X ^ \ast) ^ {-1} = Xを右からかければ

v ^ \ast = a ^ \ast X

となる。v ^ \astはもとのベクトル(に対応する双対ベクトル)と共変基底との内積で取り出された係数なので、もとのベクトルの共変成分表示という。

テンソルの文脈では、反変成分表示は上付き添字、共変成分表示は下付き添字で書くというルールがある

基底展開の章で

a = Xw = \left( \begin{matrix} e _ 1 & e _ 2 & \cdots & e _ n \end{matrix} \right) \left( \begin{matrix} w ^ 1 \\ w ^ 2 \\ \vdots \\ w ^ n \end{matrix} \right)

wの添字を上付きにしていたのは、wが反変成分表示だからである。同様にして共変成分で表示するときは

a ^ \ast = v ^ \ast X ^ \ast = \left( \begin{matrix} v _ 1 & v _ 2 & \cdots & v _ n \end{matrix} \right) \left( \begin{matrix} e ^ 1 \\ e ^ 2 \\ \vdots \\ e ^ n \end{matrix} \right)

となる。

ところで任意の基底ベクトルe _ iも、もとのベクトル空間の元であるから、これについても反変成分表示と共変成分表示の2通りを考えることができる

a = X wという行列表記を採用していて、wが反変成分表示の場合、Xの基底ベクトルについても反変成分表示が採用されたことになる。共変基底ベクトルe_iの第j反変成分は

e _ i ^ j

と表記される(反変が上、共変が下)。このときaの第j行目に入る成分は

a ^ j = \sum _ {i = 1} ^ n e _ i ^ j w ^ i

で表現されていることがわかる。ここでアインシュタインの規約(Einstein convention)という略記法がよく導入される。上式のように「反変添字と共変添字で同じ文字が使われていたら和を取ることにするので\sumは書かなくてよい」というルールである。つまり、誤解が生じないならば

a ^ j = e _ i ^ j w ^ i

と書いてよいことになっている。理由は次の不変性の章で説明する。

実のところ、e _ iを共変成分表示してe _ {ij}としてもよいのだが、その場合は行列表記できない(いま、共変成分表示は列ごとに並べることに約束で、共変基底ベクトルも列ごとに並べる約束だから、文字を並べる方向が被ってしまう)。もしそうしたいなら自分で何をやっているかしっかりと整理した上で、自分で定義した方法で2次元配列に詰め込めばよい。

表記(iを基底ベクトルの番号とするとき) LaTeX 備考
e _ i e _ i 共変基底ベクトル
e _ i ^ j e _ i ^ j 共変基底ベクトルの第j反変成分
e _ {ij} e _ {ij} 共変基底ベクトルの第j共変成分
e ^ i e ^ i 反変基底ベクトル
e ^ i _ j e ^ i _ j 反変基底ベクトルの第j共変成分
e ^ {ij} e ^ {ij} 反変基底ベクトルの第j反変成分
a _ i a _ i ベクトルの共変成分表示
a ^ i a ^ i ベクトルの反変成分表示

不変性

テンソル

テンソル積