⚔️

数学記号記法一覧(解析学・テンソル解析)

10 min read

前回公開していたものを記事の分量の関係でこちらに移したため、かなり書きかけですが公開しています。時間はかかりますが内容はそのうち大幅に更新します。

数学記号記法一覧

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

前記事までは内容のほとんどが一般的な表記に則っていたが、本記事からは内容が高度化するため一般的な表記を網羅できる自信がない(私が知らず知らずのうちに独自表記を含めてしまっている可能性もある)。

代わりに解説を充実させて読み物として面白くなるよう配慮した。見たことがない表記があったら知識の確認も兼ねて自分の書き方と対応付けてほしい。

読み進める前に知っておいてほしいこと

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

行列とは線形写像の表記の仕方の一種であり、それに対する操作(和、差、行列積など)とセットになって初めて「行列」としての意味を持つのであって、ただデータを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}}{=} \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}}{=} \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 & \text{if} \,\, i = j \\ 0 & \text{otherwise} \end{cases}

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

\left< e _ i, e _ j \right> = \begin{cases} 1 & \text{if} \,\, i = j \\ 0 & \text{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 ベクトルの反変成分表示

不変性

ベクトルa \in Vが基底の取り方によらず不変な対象の場合、成分表示は座標(基底)の取り方に依存するので都合が悪い。しかし、ベクトルa \in Vを反変ベクトルwと共変基底Xの積により

a = Xw

と表示しているとき、座標変換に一定のルールを設けることでこの表示は座標変換に対して不変にすることができる。そのルールは、座標変換をBと置くとき、

  • 共変基底には右からBがかかる
  • 反変ベクトルには左からB ^ {-1}がかかる

とするものである。このルールのもとでは実際にベクトルa \in Vに座標変換Bをかけたあとのベクトルa ^ \primeに関して

a ^ \prime = (XB)(B ^ {-1} w) = X (B B ^ {-1}) w = X w = a

が成り立つ。

双対ベクトルa ^ \ast \in V ^ \astについても同様に、共変ベクトルv ^ \astと反変基底X ^ \astの積により

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

と表示しているとき、座標変換Bに際して

  • 共変ベクトルには右からBがかかる
  • 反変基底には左からB ^ {-1}がかかる

というルールを設けることで、座標変換に対して不変にすることができる。

座標変換に対して不変となる性質のことを不変性(invariance)といい、不変性を持つ対象のことを不変量(invariant)という。

反変ベクトルと共変基底の積で表されるベクトル、共変ベクトルと反変基底の積で表される双対ベクトルはそれぞれ不変量であることがわかったが、これは反変ベクトルx ^ \astと共変ベクトルyの内積が不変量であることによる。確かめるのは簡単で、座標変換をBとおき、

  • 共変ベクトルには右からBがかかる
  • 反変ベクトルには左からB ^ {-1}がかかる

というルールを引き続き採用すれば、

\left[ (x ^ \ast B), (B ^ {-1} y) \right] = (x ^ \ast B)(B ^ {-1} y) = x ^ \ast (B B ^ {-1}) y = x ^ \ast y = \left[ x ^ \ast, y \right]

となり、内積が不変量であることがわかる。

テンソル

テンソル積