読者です 読者をやめる 読者になる 読者になる

今度こそテンソル積とHom の随伴性を理解する

長らく続いたテンソルに関する記事も、今回が最後である。今日は最初に掲げた4つの疑問のうち最後の1つである随伴性について考察する。以下に疑問の内容を再掲する。

テンソル積の随伴性とは一体何なのか?

より正確には、テンソル積とHomの随伴性と呼ぶようである。随伴性というのは、より一般には圏論において議論されるような、数学においてあらゆるところに現れる概念のようだが、残念ながら圏論の勉強はまだこれからの予定なので、今日はテンソル積とHomについてだけ考える。

随伴性に関する定理の主張と意味

定理の主張

まずはテンソル積とHomの随伴性に関する定理の主張を示す。例によって文献[1]から引用する。

R, Tを環、Xを(T, R)-両側加群、Yを左R-加群、Zを左T-加群とすれば、次の加法群の同型が成り立つ:
\displaystyle{
\mathrm{Hom}_T (X \otimes_R Y, Z) \cong \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z))
}

準同型が成す加法群の構造

上記の定理を理解するためには、まずHomについて理解する必要がある。HomとはR-加群の準同型全体の集合を表す記号である。例えばR-加群X, Yについて、XからYへの準同型全体は \mathrm{Hom}_R(X, Y)と表される。ここで1つ重要なのは、Homが加法群になるということである。以下で簡単に確認してみる。

  1. 2つの写像 \phi, \psi \in \mathrm{Hom}_R(X, Y)と任意の x \in Xについて、 \phi + \psi : x \to \phi(x) + \psi(x)とすれば、 \phi + \psi \in \mathrm{Hom}_R(X, Y)となる。この演算について結合法則が成立することは明らかである。
  2. 写像 \phi \in \mathrm{Hom}_R(X, Y)について、その逆元を -\phi : X \ni x \to -\phi(x) \in Yと定められる。
  3. 全てのXの元をYの単位元に移すような写像、すなわち零写像単位元と定められる。

以上により、Homが加法群を成していることが分かった。

定理の意味

次に、随伴性に関する定理の意味を考えてみよう。定理は2つのHomの間の同型を述べるものであるが、このうち左辺の \mathrm{Hom}_T (X \otimes_R Y, Z)は、XとYのテンソル積からZへの準同型全体が成す加法群を表している。それに対して右辺の \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z))は、Yから"XからZへの準同型全体が成す加法群"への準同型全体が成す加法群を表しており、左辺に比べて少々複雑である。右辺のHomが述べているのは、Yの元が1つ決まると、XからZへの準同型が1つ決まるということである。

これら2つのHomが同型であるというのは、一体どういうことなのだろうか?文献[2]よると、これはカリー化と呼ばれる概念と関係があるようである。Wikipediaのカリー化に関する記事[4]の最初の一文を引用する。

カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。

随伴性の定理に当てはめて考えると、まず準同型 X \otimes_R Y \to Zを、XとYの2つの引数を持つ関数であると捉える。そして、その戻り値はZの元であると考える。これがWikipediaで述べられているところの「複数の引数をとる関数」に相当する。この関数を1変数関数に変換する操作がカリー化である。すなわち、元の関数からYだけを引数とする関数を生成するのである*1。そして、カリー化により生成された関数の戻り値は、XからZへの準同型となる。別の言い方をすれば、カリー化によって高階関数が得られたということになるだろう。

以上、2変数関数をカリー化によって1変数の高階関数に変換したわけだが、それによってその関数(準同型)が成す加法群の構造が変わることはないというのが随伴性に関する定理の主張であると考えられる。

証明の概略

後の議論のために必要となるので、簡単に証明のポイントだけを記載したいと思う。詳細は文献[1][2]などを参照されたい。

まず、以下の2つの写像を考える。

 \displaystyle{
\begin{eqnarray}
\sigma: \mathrm{Hom}_T (X \otimes_R Y, Z) \to \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z)) \\
\tau: \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z)) \to \mathrm{Hom}_T (X \otimes_R Y, Z)
\end{eqnarray}
}

このとき、 \sigmaを以下の式を満たすような写像だと定義する。

 \displaystyle{
\begin{eqnarray}
&& [\sigma(\phi)(y)](x) = \phi(x \otimes y) \\
&& \ \ (x \in X, y \in Y, \phi \in \mathrm{Hom}_T (X \otimes_R Y, Z))
\end{eqnarray}
}

また、 \tauを以下の式を満たすような写像だと定義する。

 \displaystyle{
\begin{eqnarray}
&& \tau(\psi)(x \otimes y) = [\psi(y)](x) \\
&& \ \ (x \in X, y \in Y, \psi \in \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z))
\end{eqnarray}
}

このとき、 \sigma, \tauともに加法群の準同型であることを示すことができ、かつ \sigma \tau, \tau \sigmaが恒等写像となることが確かめられる。これはすなわち、 \sigma, \tauが同型であり、かつ互いに逆写像となっていることを意味する。

テンソル積を考える必然性

ここまでの考察で、随伴性とはカリー化前後において準同型が成す加法群Homの構造が変わらない性質のことを言うのだと理解できた。しかし、どうしても1つ引っかかることがある。それは、定理の主張にテンソル積が使われている理由である。2変数関数というのであれば、まず誰しもが直積 X \times Yの方を先に思いつくだろう。なぜ \mathrm{Hom}_T(X \times Y, Z)ではなく、 \mathrm{Hom}_T(X \otimes Y, Z)を考えなければならないのだろうか?

その答えに辿り着くためには、証明の概略で用いた同型 \sigmaについて再考する必要がある。証明の概略では [\sigma(\phi)(y)](x)を考えたが、ここでは仮に \phi \in \mathrm{Hom}_T(X \times Y, Z)だったとする。このとき \sigma(\phi)(y)の部分に着目すると、これは X \to Zという準同型になっているはずである。 x_1, x_2 \in X, y \in Y, \phi \in \mathrm{Hom}_T (X \times Y, Z)とすると、準同型の性質上、以下が成立していなければならない。

 \displaystyle{
\begin{eqnarray}
&& [\sigma(\phi)(y)](x_1 + x_2) = [\sigma(\phi)(y)](x_1) + [\sigma(\phi)(y)](x_2) \\
&\Leftrightarrow& \phi(x_1 + x_2, y) = \phi(x_1, y) + \phi(x_2, y)
\end{eqnarray}
}

同様に \sigma(\phi)に着目すると、これは Y \to \mathrm{Hom}_T(X, Z)という準同型になっているはずである。そのため、 x \in X, y_1, y_2 \in Y, \phi \in \mathrm{Hom}_T (X \times Y, Z)について以下が成立する。

 \displaystyle{
\begin{eqnarray}
&& [\sigma(\phi)(y_1 + y_2)](x) = [\sigma(\phi)(y_1)](x) + [\sigma(\phi)(y_2)](x) \\
&\Leftrightarrow& \phi(x, y_1 + y_2) = \phi(x, y_1) + \phi(x, y_2) \\
\end{eqnarray}
}

ここまで来ると、 \phiが双1次形式でなければならないのではないかという予想が立つ。もうひと押しして、 \phi(xr, y) = \phi(x, ry)\ (r \in R)を示してみよう。

Xが(T, R)-両側加群、Zが左T-加群であることから、 \mathrm{Hom}_T(X, Z)は以下の作用で左R-加群になる[1]。

 \displaystyle{
\begin{eqnarray}
[r \cdot \sigma(\phi)(y)](x) &=& [\sigma(\phi)(y)](xr)\ (r \in R) \\
                               &=& \phi(xr, y)
\end{eqnarray}
}

また、 \sigma(\phi)について、準同型としての性質から以下が成立する。

 \displaystyle{
\begin{eqnarray}
[r \cdot \sigma(\phi)(y)](x) &=& [\sigma(\phi)(ry)](x) \\
                               &=& \phi(x, ry)
\end{eqnarray}
}

よって \phi(xr, y) = \phi(x, ry)が確認できた。

以上により、写像 \phiは双1次形式でなければならないことが分かった。 X \times Y \to Zという双1次形式全体の集合を \mathrm{BiLin}(X \times Y, Z)と表すことにすると、これはやはり加法群になっている。以下で確かめてみる。

  1. 2つの写像 \phi, \psi \in \mathrm{BiLin}(X \times Y, Z)と任意の x \in X, y \in Yについて、 \phi + \psi : (x, y) \to \phi(x, y) + \psi(x, y)とすれば、 \phi + \psi \in \mathrm{BiLin}(X \times Y, Z)となる。実際、 x_1, x_2 \in Xとすると、例えば (\phi + \psi)(x_1 + x_2, y) = (\phi + \psi)(x_1, y) + (\phi + \psi)(x_2, y)が成立することが容易に確かめられる。他の性質も同様に確認でき、BiLinが演算について閉じていることが分かる。この演算について結合法則が成立することは明らかである。
  2. 写像 \phi \in \mathrm{BiLin}(X \times Y, Z)について、その逆元を -\phi : X \times Y \ni (x, y) \to -\phi(x, y) \in Zと定められる。
  3. 全ての X \times Yの元をZの単位元に移すような写像、すなわち零写像単位元と定められる。

実は、BinLinについて以下の同型が成り立つ[3]。

 \displaystyle{
\mathrm{BiLin}(X \times Y, Z) \cong \mathrm{Hom}_T (X \otimes_R Y, Z)
}

これより、テンソル積とHomの随伴性は以下のように書いても良いように思える。

\displaystyle{
\mathrm{BiLin}(X \times Y, Z) \cong \mathrm{Hom}_R(Y, \mathrm{Hom}_T(X, Z))
}

なぜこちらの書き方ではなくテンソル積を用いた書き方が常用されるのか、本当のところは分からない。ひょっとしたら私の考察に穴があり、実際にはテンソル積でなければならないのかもしれない。今のところの私の考えでは、以下のような理由ではないかと推測している。

  1. 圏論における一般の随伴性の定義に合う形式にするため。
  2. 実用上、テンソル積をHomに置き換えたい場面が多くあるため。
  3. HomだのBiLinだのが混ざり合った定義は美しくないため。

まとめ

以上、テンソル積とHomの随伴性について考察した。本当は自然変換がどうとか、もっと奥深い話があるようだが、そこまで行くと圏論を学んでからの方が面白いことを書けそうなので、今回は割愛した。現在読んでいる本[1]では、圏論についても基本的な事柄が記載されているようなので、また理解が深まってからそのあたりのことを書いてみたいと思う。

*1:Wikipediaでは「もとの関数の最初の引数」をとる関数にすることとあるが、実際には最初に限る必要もないのだろう。左加群とか右加群とかそういった諸々の関係を満たすために、カリー化された後の関数の引数はYの元としているのだと思われる。

今度こそテンソルの共変・反変を理解する(高階のテンソル編)

本稿は前回の記事の続編である。前項では、最も基本的なテンソルであるベクトルの共変・反変について述べた。簡単におさらいすると、座標変換によって自然基底がどのように変換されるかを調べ、それと比較してベクトルの係数や双対基底の変化の仕方が同じかどうかによって、共変・反変が決まるのであった。

本稿ではさらに高階のテンソルにおける共変・反変の概念について考えてみたいと思う。

2階のテンソルにおける座標変換

高階のテンソルと言っても、いきなり一般の階数から考え始めるとわけが分からなくなるので、まずは2階のテンソルから考えてみる。容易に予想されるのは、2階のテンソルにおいてもまずは元のテンソル積の空間における座標変換から議論が始まり、それに応じて何か双対的な空間の振る舞いが決まっていくのだろうということである。というわけで、まずは元のテンソル積における座標変換を考えてみる。

Vを適当な体K上のベクトル空間とする。このとき、テンソル V \otimes Vを考える。ここで別の空間Wを持ちだして V \otimes Wを考えてもよいのだろうが、そこまで議論が大きく変わるとは思えないので、本稿では V \otimes Vに着目することにする。

ある座標系におけるVの自然基底を {\bf e}_i\ (i=1, 2, \cdots, n)とする。これを別の座標系に変換したとき、変換先の座標系における自然基底を {\bf e}'_{\mu}\ (\mu=1, 2, \cdots, n)とする。ここで、変換後の自然基底を適当に2つ選び、それらのテンソル積を考える。選ばれた自然基底を {\bf e}'_{\mu}, {\bf e}'_{\nu}とすると、テンソル積は以下のように計算できる。

 \displaystyle{
\begin{eqnarray}
\otimes({\bf e}'_{\mu}, {\bf e}'_{\nu}) &=& {\bf e}'_{\mu} \otimes {\bf e}'_{\nu} \\
                           &=& \left(\left(\sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} {\bf e}_i \right) 
                               \otimes \left(\sum_{j=1}^{n} \frac{\partial x^j}{\partial x'^{\nu}} {\bf e}_j \right) \right) \\
                           &=& \sum_{i=1}^{n} \sum_{j=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} \frac{\partial x^j}{\partial x'^{\nu}}
                               ({\bf e}_i \otimes {\bf e}_j ) \\
\end{eqnarray}
}

最後の等号はテンソル積の双1次形式としての性質による。この式の美しさをなんと表現したらよいのだろう。テンソル積の2つのオペランドに掛かっていたシグマと偏微分係数が綺麗にテンソル積の外に出され、極めて簡潔な形となった。

次に、双対空間 V^{*}について、テンソル V^{*} \otimes V^{*}考えてみよう。元の空間の双対基底を \phi^i\ (i=1, 2, \cdots, n)、座標変換後の双対基底を \phi'^{\mu}\ (\mu=1, 2, \cdots, n)とする。座標変換後の双対基底を適当に2つ選び、それらを \phi'^{\mu}, \phi'^{\nu}とすると、これらのテンソル積は以下のようになる。

 \displaystyle{
\begin{eqnarray}
\otimes(\phi'_{\mu}, \phi'_{\nu}) &=& \phi'_{\mu} \otimes \phi'_{\nu} \\
                           &=& \left(\left(\sum_{i=1}^{n} \frac{\partial x'^{\mu}}{\partial x^i} \phi_i \right) 
                               \otimes \left(\sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \phi_j \right) \right) \\
                           &=& \sum_{i=1}^{n} \sum_{j=1}^{n} \frac{\partial x'^{\mu}}{\partial x^i} \frac{\partial x'^{\nu}}{\partial x^j}  
                               (\phi_i \otimes \phi_j) \\
\end{eqnarray}
}

見事に元の空間のテンソル積と対称な形となった。偏微分係数の分子・分母がどちらもひっくり返っており、まさにこれが反変テンソルとなるのである。

さて、 V \otimes Vにおける座標変換に対して、 V^{*} \otimes V^{*}の振る舞いが反変的であることが分かった。これで議論は全て終わったように思えるが、実はそうではない。2階以上のテンソルの場合、さらに混合テンソルというものが存在する。すなわち、 V \otimes V^{*}という空間を考えることができるのである。実際の計算はせずとも、偏微分係数が共変的なものと反変的なものが入り交じることになるのは、ここまでの議論で容易に想像できるだろう。テンソル積はとにかく自由な双1次形式なのだ。

実は、前回の記事でクロネッカー \delta \delta_i^jと書いていたのは、これを混合テンソルと考えていたからである。例えば双対基底の性質から \phi^j({\bf e}_i) = \delta_i^jが成立していたが、ここでは共変テンソル {\bf e}_iと反変テンソル \phi^jからクロネッカー \deltaが得られるので、混合テンソルとして表現しているのだろう。

さて、そうなると V^{*} \otimes Vというテンソル積も考えたくなるのが人間というものだが、これは考える必要がない。なぜなら、 V^{*} \otimes V \cong V \otimes V^{*}という同型が成立するからである。この事実の証明については文献[2]を参照のこと。この同型により、テンソル積は全て共変的なものを前に、反変的なものを後ろに書くという、ある種の標準形のようなものだけを考えれば良いことが分かる。

テンソル空間

ついに一般の階数のテンソルを考えるときが来た。テンソルには共変・反変・混合の3つが存在することが分かったが、一般のテンソルでは共変と反変の割合がいろいろあり得る。一般に、 m, n \in \mathbb{N}について、m階の共変テンソルとn階の反変テンソルが混ざり合ったようなテンソルをm階共変-n階反変であると言い、このようなテンソル全体の空間をテンソル空間と呼ぶ[1]。共変、反変テンソルがそれぞれ V, V^{*}に属するとき、テンソル空間は以下のように書ける。

 \displaystyle{
T^m_n(V) = \underbrace{V \otimes \cdots \otimes V}_{m\ \mathrm{copies}} \otimes \underbrace{V^{*} \otimes \cdots \otimes V^{*}}_{n\ \mathrm{copies}}
}

これが高階のテンソルの正体である。

まとめ

ベクトルの共変・反変の議論を用いながら、高階のテンソルの共変・反変について考察した。高階のテンソルではさらに混合という概念が存在するが、結局はテンソル積の各オペランドがそれぞれ独立に共変・反変っぽく振る舞うというだけのことであり、ベクトルでの議論が分かっていれば何も怖くはない。

前回と今回の記事では、計量テンソルには触れることが出来なかった。これはこれで物理などでテンソルを扱う際に重要な概念なのだが、共変・反変の心を理解するだけの目的であれば不要であると考え、議論の簡潔さを優先して敢えて持ち出さないようにした。興味がある方は調べてみると良いだろう。

次回はいよいよテンソル積の随伴性の謎に迫ってみたいと思う。というわけで、また時間を見つけながら勉強の日々だ。

今度こそテンソルの共変・反変を理解する(ベクトル編)

はじめに

前回に引き続き、本稿でもテンソルについて考えてみたいと思う。本稿の目的は、前回掲げた4つの疑問のうち3つ目を解消することである。以下に疑問の内容を再掲する。

テンソルには共変テンソルと反変テンソルの2種類があるが、これらは何者なのか?

書き始めてみると思いのほか長くなってしまったので、記事を何回かに分けることとし、本稿では1階のテンソルであるベクトルの共変・反変について考えてみたいと思う。

前回の記事ではテンソルが座標系(もしくは基底)に依存しない量であることを述べた。しかしながら、実際にテンソルが使用される場面においては、適当な座標系を用いることが多いように思う。テンソルの共変・反変というのは、テンソルを表現するためのある座標系を別の座標系に変換する際に現れる概念である。以下で順を追って調べていこう。

なお、本稿ではアインシュタインの規約は使用しない。記述が簡潔になるというメリットを捨ててでも、私のような初学者に分かりやすくするためである。その点、ご了承頂きたい。

また、以下の議論は文献[1][2]を参考にしていることを始めに述べておく。特に、岡部先生が書かれた文献[2]は分かりやすいのでおすすめである。

正規直交座標のスケール変換における共変・反変

正規直交基底とその係数

一般のテンソルの議論に比べてベクトルが簡単だとは言っても、いきなり難しい座標系から始めると訳が分からなくなるので、まずはおなじみ \mathbb{R}^2の正規直交座標系、及び標準基底 {\bf e}_1 = (1\ 0)^T, {\bf e}_2 = (0\ 1)^Tから考えてみよう。以下、 \mathbb{R}^2の元は列ベクトルであるとする。これらの基底を用いると、 \mathbb{R}^2の任意のベクトル {\bf x}は、実数 A^1, A^2を用いて以下のように書ける。

 \displaystyle{
{\bf x} = A^1 {\bf e}_1 + A^2 {\bf e}_2
}

この式において、 A^1, A^2の右肩の数字はべき乗を表しているのではなく、単なる添字である。共変的な振る舞いをする量の添字は右下に、反変的な振る舞いをする量の添字は右上に書くのが慣習となっており、ここでもそれに合わせている。今は、添字だということだけ分かれば十分である。

ここで、新たな座標系として (x', y') = (x/3, y/3)という座標変換によって得られるものを考える。また、それに合わせて基底の長さ(ノルム)をそれぞれ3倍にした新しい基底 {\bf e}'_1 = 3{\bf e}_1, {\bf e}'_2 = 3{\bf e}_2を考える。そうすることで、新しい座標系においてx'やy'が1増えたとき、それは基底の長さ分だけ座標が移動することになる。このように、ある1つの座標パラメータ(ここではx'かy')が1増えた時の移動幅、及び移動方向に一致するようなベクトルの組を自然基底と呼ぶ。ようは、座標パラメータが整数になるようなところでグリッドを描いたとき、それとリンクするような基底が自然基底である。

上記のベクトル {\bf x}は新しい基底 {\bf e}'_1, {\bf e}'_2を用いても表すことができるわけだが、ここで重要なのは、どの座標系を用いようともベクトルそのものは変わらないということである。考えている座標系と基底が変わることで、その座標系でのベクトルの見え方は変わるが、それはベクトルそのものが変化しているのとは異なる。すなわち、 {\bf x} {\bf e}'_1, {\bf e}'_2を用いて以下のように表すことができる。

 \displaystyle{
{\bf x} = \frac{A^1}{3} {\bf e}'_1 + \frac{A^2}{3} {\bf e}'_2
}

 {\bf e}_1, {\bf e}_2を用いた式と見比べると、基底のノルムが3倍になった代わりに、係数が1/3になっているのが分かる。このように、あるベクトル空間における基底の係数は、その基底の変化と逆向きに動くため、反変成分と呼ばれる。

双対基底ベクトルとその係数

次に、上で考えたベクトル空間 \mathbb{R}^2の双対空間を考えてみる。この場合、双対空間は \mathbb{R}^2 \to \mathbb{R}という線形写像全体の集合からなるベクトル空間である。双対空間の基底としてはいろいろなものを考えることができるが、ここではその中でも特別な基底として、双対基底というものを考える。双対基底とは、元の空間の基底に対して二重直交性を満たす基底のことである。すなわち、 \phi^1, \phi^2を双対基底とすると、以下が成立する。

 \displaystyle{
\phi^j({\bf e}_i) = \delta_i^j\ (i, j = 1, 2)
}

 \delta_i^jクロネッカー \deltaである。今は元の空間の基底として正規直交基底を考えているが、一般には基底は一次独立かつ空間を張れば良いのであって、必ずしも互いに直交しているとは限らない。それに対し、双対基底は必ず二重直交性を満たすというのがポイントである。

ここで、双対空間上の任意のベクトル {\bf y}を考える。これは、元の空間と同様に、実数 B_1, B_2を用いて以下のように書ける。

 \displaystyle{
{\bf y} = B_1 \phi^1 + B_2 \phi^2
}

この時、先ほどと同様に元の空間の基底のノルムが3倍になると、双対基底は二重直交性を満たすように変化しなければならない。すなわち、 \phi^1 \to \frac{\phi^1}{3}, \phi^2 \to \frac{\phi^2}{3}と変化することになる。変化後の双対基底を \phi'^1, \phi'^2とすると、先ほどのベクトル {\bf y}自体は、やはり基底の変化に対して不変でなければならないため、以下のように書ける。

 \displaystyle{
{\bf y} = 3B_1 \phi'^1 + 3B_2 \phi'^2
}

これより、双対基底自体は元の空間の基底と逆向きに変化し、双対基底の係数は元の基底と同じように変化することが分かった。そのため、双対基底は反変ベクトル、双対基底の係数は共変成分と呼ばれるのである。

以上が、比較的簡単なケースにおける共変・反変の概念の説明である。制限が多い状況ではあるが、共変・反変の感覚はこれで概ね掴むことができただろう。

一般の座標系・座標変換の場合

ここまでは導入として、座標系の縮尺を変えた場合に起こる現象について考えてみた。しかし、一般に座標変換と言ったら回転のようなものなども考えられるだろう。また、そもそも極座標のように曲線座標系になってしまうと、まっすぐな基底が取れないということも起こり得る。ここでは、そのような一般的な状況における共変・反変ベクトルについて考えてみよう。

微小なベクトルを用いた座標変換の記述

曲線座標系まで含めた一般的な状況を考えようとすると、もはや先ほどのようにベクトルを基底を用いて表すことは不可能のように思われる。しかし、ごく微小なベクトルに対してであれば、それは可能な場合がある。そのための前提として、ここで考える座標変換は全て C^1級の写像であり、また曲線座標系を考える場合は、極座標のように滑らかな曲線で座標グリッドが描けるようなものを想定する。

まずは微小なベクトル d{\bf x}を考える。この時、このベクトルの座標上の位置に応じて、ごく局所的な範囲においてのみ、基底ベクトルへの分解を考えることができる。これは、曲線座標系であっても、微小な領域だけに注目すれば、近似的に斜交座標系だと見なせるからである。このとき、どのような基底を考えるかが問題になるが、ここでは各座標グリッドの接線方向正の向きのベクトルを考えることにする。また、それらのノルムはその局所的な座標グリッドの幅に対応するものとする。このような局所的な基底も、やはり自然基底と呼ばれる。この座標近傍での自然基底を {\bf e}_1, {\bf e}_2, \cdots, {\bf e}_n\ (n \in \mathbb{N})とすると、 d{\bf x}は以下のように書ける。

 \displaystyle{
d{\bf x} = \sum_{i=1}^{n} dx^i {\bf e}_i
}

ここで、 d{\bf x}を別の座標系でも表現してみよう。新たな座標系における d{\bf x}の近傍での基底を {\bf e}'_1, {\bf e}'_2, \cdots, {\bf e}'_nとすると、 d{\bf x}は以下のように書ける。

 \displaystyle{
d{\bf x} = \sum_{\mu=1}^{n} dx'^{\mu} {\bf e}'_{\mu}
}

さて、ベクトルはどのような座標系でも同じなのだから、上で示した2つの式は一致するはずである。すると、以下が成立する。

 \displaystyle{
\sum_{i=1}^{n} dx^i {\bf e}_i = \sum_{\mu=1}^{n} dx'^{\mu} {\bf e}'_{\mu}
}

そろそろ、ここで何をやりたいのかを述べておこう。最初に示した簡単な例では、基底ベクトルを3倍にしたときに、基底の係数やら双対基底やらがどうなるかを調べた。3倍にするというのは星の数ほどある座標変換のうちの1つに過ぎないため、これをもっと一般化したい。そのために、より抽象的な形で、ある座標系から別の座標系に移ったとき、それらの基底の間にどのような関係があるのかをまず調べる。そして、それに応じてベクトルの係数やら双対基底やらがどのように変化するかを調べるのが目的である。

この目的を考えると、最後の式をもう少しすっきりさせたい。そこで、全微分を用いることを考える。座標変換は C^1級の写像であると仮定したから、以下が成り立つ。

 \displaystyle{
dx^i = \sum_{\mu=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} dx'^{\mu}
}

これを先ほどの式に代入すると、以下のようになる。

 \displaystyle{
\begin{eqnarray}
\sum_{i=1}^{n} \sum_{\mu=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} dx'^{\mu} {\bf e}_i &=& \sum_{\mu=1}^{n} dx'^{\mu} {\bf e}'_{\mu} \\
\sum_{\mu=1}^{n} \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} dx'^{\mu} {\bf e}_i &=& \sum_{\mu=1}^{n} dx'^{\mu} {\bf e}'_{\mu} \\
\sum_{\mu=1}^{n} \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} dx'^{\mu} {\bf e}_i - \sum_{\mu=1}^{n} dx'^{\mu} {\bf e}'_{\mu} &=& 0 \\
\sum_{\mu=1}^{n} dx'^{\mu} \left( \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} {\bf e}_i - {\bf e}'_{\mu} \right) &=& 0
\end{eqnarray}
}

これが座標変換前後の基底ベクトルの間に成り立つ関係式である。文献[2]によれば、これより以下の式が成り立つようである(追記1参照)。

 \displaystyle{
{\bf e}'_{\mu} = \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} {\bf e}_i
}

これがベースとなる基底の変換公式である。最初の例で言えば、これが基底をそれぞれ3倍することに相当する。これと同じような変換が成り立つ量は共変的であり、逆の変化をするものは反変的なのである。

座標変換の対称性

上で求めた関係式と似たものを、逆方向の座標変換に対しても考えることができる。先ほどと同様に、全微分の性質から以下が成立する。

 \displaystyle{
dx'^{\mu} = \sum_{i=1}^{n} \frac{\partial x'^{\mu}}{\partial x^{i}} dx^{i}
}

これを用いて基底の間の関係を整理すると、以下のようになる。

 \displaystyle{
{\bf e}_{i} = \sum_{\mu=1}^{n} \frac{\partial x'^{\mu}}{\partial x^{i}} {\bf e}'_{\mu}
}

これを見ると、順方向の座標変換と対称な形になっていることが分かる。

双対基底の変化

一般的な座標変換の状況下において、双対基底がどのように変化するかを調べてみよう。まず、座標変換前は以下の式が成り立っている。

 \displaystyle{
\phi^{j}({\bf e}_{i}) = \delta^{j}_{i}
}

ここで、両辺に \frac{\partial x^i}{\partial x'^{\mu}}をかけてiについて総和を取ってみる。

 \displaystyle{
\begin{eqnarray}
\sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} \phi^{j}({\bf e}_{i}) &=& \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} \delta^{j}_{i} \\
\phi^{j}\left(\sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} {\bf e}_{i} \right) &=& \frac{\partial x^j}{\partial x'^{\mu}} \\
\phi^{j}({\bf e}'_{\mu}) &=& \frac{\partial x^j}{\partial x'^{\mu}}
\end{eqnarray}
}

さらに、両辺に \frac{\partial x'^{\nu}}{\partial x^j}をかけてjについて総和を取ってみよう。

 \displaystyle{
\begin{eqnarray}
\sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \phi^{j}({\bf e}'_{\mu}) &=& \sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \frac{\partial x^j}{\partial x'^{\mu}} \\
\left(\sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \phi^{j}\right)({\bf e}'_{\mu}) &=& \sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x'^{\mu}} \\
\left(\sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \phi^{j}\right)({\bf e}'_{\mu}) &=& \delta^{\nu}_{\mu}
\end{eqnarray}
}

最後に、 \phi'^{\nu } = \sum_{j=1}^{n} \frac{\partial x'^{\nu}}{\partial x^j} \phi^{j}と置けば、以下の式が得られる。

 \displaystyle{
\phi'^{\nu }({\bf e}'_{\mu}) = \delta^{\nu}_{\mu}
}

これが双対基底の変換式である。変換の際に利用する偏微分係数が、もとのベクトルのものと分子分母が逆転しているので、双対基底は反変ベクトルと呼ばれるのである。

係数の変化

これまでの議論で、以下の全微分の式が登場した。

 \displaystyle{
dx'^{\mu} = \sum_{i=1}^{n} \frac{\partial x'^{\mu}}{\partial x^{i}} dx^{i}
}

 dx^iは元の空間の基底の係数であり、上記の式は元の空間における係数の変換式と見ることができる。ここで登場する微分係数は、基底の変換の際に登場するベースの微分係数と分子分母が逆転しているため、元のベクトル空間の基底の係数は反変成分であると言われる。

また、双対基底が反変ベクトルであり、かつ二重直交性を満たすことから、双対基底の係数は共変成分となることが分かる。

共変・反変の相対性

ここまで、あるベクトル空間での座標変換に対して、双対空間のベクトルがどのように振る舞うかを見てきた。しかし、双対空間の双対空間は元のベクトル空間であることを考えると、そもそも最初から双対空間の方を基準に考えれば、上で議論した共変・反変の考え方は全て逆になる。このように、共変・反変という概念は相対的なものなのである。

まとめ

以上、座標変換の際の振る舞いから、ベクトルの共変・反変について述べた。共変・反変は双対空間とも深く関係しており、強い対称性を持った美しい概念であると感じた。

今回はベクトルの説明のみに留まったが、次回はいよいよ高階のテンソルについて考えてみたいと思う。また、本稿では例を説明出来なかったが、興味のある方は文献[2]を見ていただくと良い。

追記1

最初、なぜこの式が成立するのか分からなかったが、Twitterにてフォロワーの方に理由を教えて頂いたので、それについて追記する。

ここで考えている微小なベクトル d{\bf x}というのは、どんな方向のベクトルでもよいのである。すなわち、 dx'^1以外の dx'^{\mu} = 0\ (\mu=2, 3, \cdots, n)のようなものでもよい。この場合、以下の式が成立する。

 \displaystyle{
\begin{eqnarray}
dx'^{1} \left( \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{1}} {\bf e}_i - {\bf e}'_{1} \right) = 0
\end{eqnarray}
}

これの両辺を dx'^{1}で割れば、 \mu=1について求めたかった式が得られる。このような塩梅で、どんな dx'^{\mu}の組に対しても本文中に示した関係式が成り立つようにしようとすると、結局 {\bf e}'_{\mu} = \sum_{i=1}^{n} \frac{\partial x^i}{\partial x'^{\mu}} {\bf e}_i以外に解はありえないのである。

今度こそテンソルを理解する

テンソルは難しい

理系の学部出身者であれば、テンソルという言葉を一度は聞いたことがあるだろう。そして、数学やら物理の専門に進むのでなければ、その意味の分からなさに絶望し、理解を放棄した経験があるという人は少なくないのではないかと推察する。少なくとも、私はそうだった。

テンソルはなぜ難しいのだろうか?自分の経験に加えて、たまたま見つけた記事[1]を見て思ったのは、まず第一に定義が複数あり、それらの間のつながりが分かりづらいということである。加えて、テンソルのみを解説した書籍というのが少ないように思う。どうもテンソルというのはあくまで何かをするための道具という扱いであり、それだけを単独で解説するということがあまり行われていないようである。

そこで本稿では、私がテンソルについて個人的に分からないと思っているポイントを挙げ、それらについて順次理解を深めていこうと思う。

テンソルに関する疑問

まず、私が理解できていない事項を具体的に挙げる。

  1. テンソルと言うと、なんだか添字がたくさんついた量という考え方と、双1次形式と普遍性を用いて得られるものの2つがある。これらは本質的には同じものなのだと思うが、どのように結びついているのか?
  2. テンソル積とはどういう演算なのか?
  3. テンソルには共変テンソルと反変テンソルの2種類があるが、これらは何者なのか?
  4. テンソル積の随伴性とは一体何なのか?

本稿ではまず始めの2つの疑問の答えを探ってみる。

2つの定義におけるテンソルテンソル積の関係

添字がたくさんついた量としてのテンソル

このケースでは、体K上のベクトル空間を考えることが多いようなので、ここでもそうする事にする。

K上の2つのベクトル空間V, Wについて、それぞれの基底を {\bf e_1}, {\bf e_2}, \cdots, {\bf e_m}及び {\bf f_1}, {\bf f_2}, \cdots, {\bf f_n} (m, n \in \mathbb{N})とする。この時、V, Wの任意の元v, wはそれそれ v=\sum_{i=1}^m a_i{\bf e_i},\ w=\sum_{i=1}^n b_i{\bf f_i}\ (a_i, b_i \in K)というように基底を用いて表すことができる。これら2つのベクトル空間の元の間に、テンソル積と呼ばれる以下のような演算を導入することができる。

 \displaystyle{
v \otimes w = \sum_{i, j} a_i b_j{\bf e_i} \otimes {\bf f_j}
}

これは何をしているのかというと、V, Wの各基底ベクトルの間には何らの関係性もないと考えて、V, Wにおける各基底ベクトルの全ての組から新しい元が作られるような演算を規定している。そして、基底 {\bf e_i}, {\bf f_j}から生成される新たな元を {\bf e_i} \otimes {\bf f_j}と表記しているのである。この辺りの考え方は、自由群なんかと通じるものがある。

このような演算を行ったとき、V, Wの基底の組み合わせによって新しく産み出される元は、全部でmn個存在する。これらはV, Wの全ての元の間でテンソル積を計算することで得られる空間の基底となる。そのようにして得られる空間をV, Wのテンソル積と呼び、 V \otimes Wと表す。そして、 V \otimes Wの元をテンソルと呼ぶのである。

 V \otimes Wの元は、全て V \otimes Wの基底の線形結合として書き表すことができる。すなわち、 {\bf e_i} \otimes {\bf f_j}の係数を c_{ij}=a_i b_jとおくと、任意の元は \sum_{i, j} c_{ij}{\bf e_i} \otimes {\bf f_j}と表すことができる。さて、ここで登場した係数には何やら添字がたくさんついており、もともと私がテンソルだと思っていたものに近い存在のように思われる。これはどのように捉えたら良いのだろうか?

ここで、 \mathbb{R}^3上のベクトルについて考えてみて欲しい。 \mathbb{R}^3の任意のベクトルは、例えば標準基底 {\bf e_1}, {\bf e_2}, {\bf e_3}を用いて a{\bf e_1} + b{\bf e_2} + c{\bf e_3}\ (a, b, c \in \mathbb{R})と表すことができる。これを成分で書くと (a, b, c)と表すことができる。そして、このように基底ベクトルの係数を並べたもの自体を、やはりベクトルと呼んでいた。

テンソルもこれと同じで、基底の係数を並べたものをテンソルと呼んでいるのだと思われる。上の例で言えば、 \{c_{ij}\}_{i,j}テンソルと呼んでいるのである。これこそが、何だか添字がたくさんついた量としてのテンソルの正体である。

双1次形式と普遍性から導かれるテンソル

上で示したテンソルの表現方法は実用上の計算を行う上では便利であるが、表現の仕方が基底の選び方に依存してしまうという難点がある。実のところ、テンソルは基底の取り方には依存しない概念である。また、数学ではより抽象的な概念である加群に対してもテンソル積を定義することがあるが、一般の加群には基底が存在するとは限らない。そのため、基底の取り方に依存しないテンソル積の定義というのも重要である。

そのようなテンソル積の定義として、ここでは文献[3]に載っているものを紹介しようと思う。そのために、まず双1次形式の定義を示す。

右R-加群Xと左R-加群Yに対して、直積集合 X \times Yから加法群Mへの写像 X \times Y \xrightarrow{\rho} Mは、次の3つの性質をみたすとき、R上の双1次形式と呼ばれる:任意の x, x' \in X,\ y, y' \in Y r \in Rに対して、

 \displaystyle{
\begin{eqnarray}
&& \rho(x+x', y) = \rho(x,y) + \rho(x',y) \\
&& \rho(x, y+y') = \rho(x,y) + \rho(x,y') \\
&& \rho(xr, y) = \rho(x,ry)
\end{eqnarray}
}

このとき、以下の定理が成立する。

右R-加群X、左R-加群Yに対して、次の性質(*)を持つ加法群 X \otimes_R YとR上の双1次形式 \otimes : X \times Y \to X \otimes_R Yが存在する:

(*)任意のR上の双1次形式 X \times Y \xrightarrow{\rho} Mに対して、加法群の準同型 \phi : X \otimes_R Y \to Mが一意的に定まり、 \rho = \phi \cdot \otimesとなる。すなわち、次が可換図式になる(図は省略)
また、性質(*)を持つ加法群 X \otimes_R Yは、X, Yに対して、同型を無視すれば一意的に定まる。

上記定理に対して、文献[3]では以下のようにテンソル*1を定義している。

(前略)加法群 X \otimes_R Yを、右R-加群Xと左R-加群YのR上のテンサー積と呼ぶ。

さて、この定義は一体何を意味しているのだろうか?始めに答えを述べておくと、重要なポイントは以下の3つである。

  1. 加群の直積 X \times Yからテンソル X \otimes_R Yへの写像 \otimesは双1次形式を加法群の準同型に変換する写像である。
  2. 写像 \otimes自身も双1次形式であり、かつあらゆる双1次形式の中で最も自由である。
  3. 写像 \otimesテンソル X \otimes_R Yは2つセットで重要な概念であり、これらはある意味でただ一つだけ存在する。

これらを理解するためには、テンソル積の具体的な構成方法を理解する必要がある。そのために、文献[3]の証明を一部抜粋しよう。

直積集合 X \times Yを基底とした自由アーベル群を
 \displaystyle{
F = \bigoplus_{(x, y) \in X \times Y} \mathbb{Z}(x, y)
}
とし、次の形の元全体で生成された部分群を F_0とする:
 \displaystyle{
\begin{cases}
  (x+x', y) - (x, y) - (x', y) \\
  (x, y+y') - (x, y) - (x, y') \\
  (xr, y) - (x, ry)
\end{cases}\ (x, x' \in X,\ y,y' \in Y,\ r \in R)
}
このとき、剰余加法群 F/F_0 X \otimes_R Yと表し、 (x, y) \in F X \otimes_R Yにおける剰余類を x \otimes yと表す。

この中で、 F_0は自然な全射 F \to F/F_0が双1次形式になるように恣意的に構成されている。そして、その自然な全射こそが \otimesそのものなのである。すなわち、テンソル積とは自由アーベル群からの全射に対して双1次形式を満たすように制約を課したものであり、かつそれ以外の制約は一切課されていないものだと言うことができる。後者が特に重要であり、この事実こそテンソル積を唯一無二の、最も自由な双1次形式たらしめているものなのである。

例として、テンソル積以外の双1次形式とテンソル積を比較してみよう。ここでは写像 \mathrm{det}: \mathbb{R}^2 \times \mathbb{R}^2 \to \mathbb{R}を考えてみる。これが双1次形式になっていることは線形代数で学んだところであろう。しかし、この写像には例えば \mathrm{det}({\bf a}, {\bf a}) = 0\ ({\bf a} \in \mathbb{R}^2)という制約がある。一方、写像 \otimesについては、 \otimes({\bf a}, {\bf a}) = {\bf a} \otimes {\bf a}というように、新たな元が生まれるだけなのである。このように、テンソル積以外の双1次形式には一般に様々な制約が課されており、自由ではないのである。

次に、写像 \otimesと他の双1次形式の関係について詳しく見てみよう。文献[3]から引用した定理によると、任意の双1次形式 \rhoに対して、 \rho = \phi \cdot \otimesとなるような加法群の準同型 \phiがただ一つ存在する。このような性質のことを、テンソル積の普遍性と呼ぶ。 \rhoが双1次形式であることから、 x, x' \in X,\ y \in Yに対して、 \rho(x+x', y) = \rho(x, y) + \rho(x', y)が成り立つ。ここで、 \rho = \phi \cdot \otimesの関係式を適用すると、以下の式が成り立つ。

 \displaystyle{
\rho(x+x', y) = \phi \cdot \otimes(x, y) + \phi \cdot \otimes(x', y)
}

 \phiが加法群の準同型であることから、更に以下のように変形できる。

 \displaystyle{
\begin{eqnarray}
\rho(x+x', y) &=& \phi(\otimes(x, y) + \otimes(x', y)) \\
              &=& \phi(x \otimes_R y + x' \otimes_R y) \\
\end{eqnarray}
}

このように、 \rhoが持っていた双1次形式としての性質は全て写像 \otimesが引き受け、後にはただの加法群の準同型が残るのである。少々乱暴な言い方をすれば、これは双1次形式を線形写像(のようなもの)に変換していると捉えることができる。そして、このような変換の方法はただ一通りしか存在しないのである。

なお、 \rho = \phi \cdot \otimesより明らかであるが、 \rho(x, y) = \phi(x \otimes_R y)となることは実用上重要なポイントであるため、念の為ここで明示的に述べておきたいと思う。

2つの定義の関係性

以上、基底の取り方に依存しないテンソルの定義とその性質を見たわけだが、これは果たして添字がたくさんついた量としてのテンソルと整合性が取れているのだろうか?最後にその事を確認してみよう。

 v \in V, w \in Wに対して、基底に依存しない定義の方で導入した写像 \otimesを施すと、以下のようになる。

 \displaystyle{
\otimes(v, w) = \otimes \left(\sum_{i=1}^m a_i{\bf e}_i, \sum_{i=1}^n b_i{\bf f}_j \right)
}

 \otimesが双1次形式であることから、これは以下のように変形できる。

 \displaystyle{
\begin{eqnarray}
\otimes(v, w) &=& \sum_{i, j} \otimes(a_i{\bf e}_i, b_j{\bf f}_j) \\
              &=& \sum_{i, j} a_i b_j{\bf e}_i \otimes_K {\bf f}_j
\end{eqnarray}
}

これは最初に導入したテンソル積の演算結果と一致している。以上により、2つの定義の間の整合性が確認できた。

まとめ

以上、テンソル、及びテンソル積とは何なのか、そしてテンソルの2通りの定義がどのように関連しているのかについて述べた。本文中では言及できなったが、文献[2][4]なんかも参考になると思うので、興味のある方は見て頂くと良いだろう。特に、文献[2]にはテンソル積の計算例が豊富に紹介されており、参考になるだろう。

テンソルについてはまだ共変・反変の謎、及び随伴性の謎が残されているが、それらについては次回以降で取り上げたいと思う。現時点ではまだどちらも理解できていないので、これからまた勉強だ。

*1:文献[3]では「テンサー積」と記載されている。

p進整数となる分数のp進展開

p進整数となる分数をどうp進展開するか

最近p進数について何度か記事を書いていく中で、ふと疑問に思ったことがある。例として p=5の場合を考える。このとき、 \frac{10}{3}は5進整数である。なぜなら、5進付値が以下のように0以上になるからである。

 \displaystyle{
\begin{eqnarray}
\mathrm{ord}\left(\frac{10}{3} \right) &=& \mathrm{ord}\left(5 \cdot \frac{2}{3} \right) \\
                                       &=& 1 \ge 0
\end{eqnarray}
}

では、この数を5進展開すると、どのように表されるだろうか?p進整数のp進展開とは、p進整数を以下のように表すことであった。

 \displaystyle{
\sum_{n=0}^{\infty} a_n p^{n}\ (a_i \in \mathbb{Z}/p\mathbb{Z},\ i = 0, 1, 2, \cdots)
} *1

一見すると、 a_0 = 0,\ a_1 = \frac{2}{3}とすれば良さそうであるが、残念ながら \frac{2}{3}は整数ではない。しかし、5進整数である以上、一意な5進展開が存在するはずである。一体どのようにすれば5進展開できるのであろうか?

無限級数を利用した解決法

上記の疑問について、なかなかよさ気な解決策を思いついたので、それについて書いてみる。なお、概ね私が自分で考えたことなので、合っている保証はないという点はご注意頂きたい。

まず、問題を少し一般化してみよう。すなわち、任意の0でない有理数のうち、p進整数となるものは q = p^k \frac{a}{b}( p素数 kは0以上の整数、 a \in \mathbb{Z}, b \in \mathbb{N} \frac{a}{b}は既約分数であり、 a, bはどちらも pで割りきれない)と書ける。このとき、 qがどのようにp進展開されるかを考えてみよう。

 p, bが互いに素であることから、 pl + bm =1を満たす整数 l, mが存在する。この時、以下の級数を考える。

 \displaystyle{
\sum_{i=0}^{n} (pl)^{i} = \frac{(pl)^{n+1}-1}{pl - 1}
}

これは実数としては正または負の無限大に発散するのであるが、p進数としてはどのような数に収束するかを考えてみる。 r = \frac{-1}{pl-1}と置くと、上記級数とrのp進距離は以下のように計算できる。

 \displaystyle{
\begin{eqnarray}
\left| \frac{(pl)^{n+1}-1}{pl - 1} -r \right|_p &=& \left| \frac{(pl)^{n+1}}{pl - 1} \right|_p \\
                                                &=& \left| p^{n+1} \cdot \frac{l^{n+1}}{pl - 1} \right|_p \\
                                                &\le& \frac{1}{p^{n+1}}
\end{eqnarray}
}

 \lim_{n \to \infty} \frac{1}{p^{n+1}} = 0より、この級数 rにp進収束することが分かる。よって、p進数の世界では以下が成立する。

 \displaystyle{
\sum_{i=0}^{\infty} (pl)^{i} = \frac{-1}{pl-1}
}

ここで、 pl + bm =1を変形して pl -1 = -bmとなるので、これを代入すると以下のようになる。

 \displaystyle{
\sum_{i=0}^{\infty} (pl)^{i} = \frac{1}{bm}
}

これの両辺に p^k amをかけて左辺と右辺を入れ替えると、以下の式が得られる。

 \displaystyle{
p^k \frac{a}{b} = p^k am \sum_{i=0}^{\infty} (pl)^{i}
}

左辺はまさにp進展開が知りたかった有理数 qそのものである。もう少し整理してみる。

 \displaystyle{
q = \sum_{i=0}^{\infty} (aml^{i}) p^{i+k}
}

ここで、lとmのどちらか片方は定義より明らかに負になる。もし l<0だとすると、 l^iの項がiの偶奇によって正になったり負になったりしてしまい、p進展開の定義と合わなくなってしまう。そのため、 l>0だと都合がよい。もし偶然 l>0となっていればそれでよい。もし l<0の場合は、 pl + bm =1の両辺を2乗したものを考える。

 \displaystyle{
\begin{eqnarray}
(pl + bm)^2 &=& 1^2 \\
(pl)^2 + 2plbm + (bm)^2 &=& 1 \\
p(pl^2) + b(2plm + bm^2) &=& 1
\end{eqnarray}
}

ここで、 l' = pl^2,\ m' = 2plm + bm^2と置くと、 pl' + bm' = 1となっている。また、 l' >0である。よって l', m'を改めて l, mと置き直せば、 l>0とできるのである。

これでほぼp進展開が得られた。あとは \left|aml^{i}\right| \in \mathbb{Z}/p\mathbb{Z}となっていればよい。偶然そうなっていればそれでよいし、もし p \le \left|aml^{i}\right| であれば、適宜桁を繰り上げてやれば、p進展開が得られる。が、そこまで考慮して綺麗に定式化する方法が分からないので、あとは具体的な有理数に対して上記の手続きを適用するときに考えることにしよう。

具体例

冒頭で取り上げた \frac{10}{3}を上記の方法で5進展開してみよう。これは 5\cdot \frac{2}{3}となるので、 k=1, a=2, b=3である。また、 5l + 3m = 1を満たす l, mで、 l >0となるものを探してみると、 (l, m) = (2, -3)が該当することが分かる。これより、以下のような無限級数が得られる。

 \displaystyle{
\begin{eqnarray}
\frac{10}{3} &=& \sum_{i=0}^{\infty} (2\cdot (-3) \cdot 2^{i}) 5^{i+1} \\
             &=& \sum_{i=0}^{\infty} (-3 \cdot 2^{i+1}) 5^{i+1} \\
             &=& -(6 \cdot 5 + 12 \cdot 5^2 + 24 \cdot 5^3 + 48 \cdot 5^4 + 96 \cdot 5^5 + \cdots)
\end{eqnarray}
}

さて、各iについて 5^iの係数の絶対値が5以上になってしまっているので、これを順次繰り上げていく必要がある。例えば、 6 = 1 + 5とすると、この級数は以下のようになる。

 \displaystyle{
\frac{10}{3} = -(1 \cdot 5 + 13 \cdot 5^2 + 24 \cdot 5^3 + 48 \cdot 5^4 + 96 \cdot 5^5 + \cdots)
}

次に、 13 = 3 + 2 \cdot 5とすれば、以下のように変形できる。

 \displaystyle{
\frac{10}{3} = -(1 \cdot 5 + 3 \cdot 5^2 + 26 \cdot 5^3 + 48 \cdot 5^4 + 96 \cdot 5^5 + \cdots)
}

さらに、 26 = 1 + 5^2とすれば、以下のように変形できる。

 \displaystyle{
\frac{10}{3} = -(1 \cdot 5 + 3 \cdot 5^2 + 1 \cdot 5^3 + 48 \cdot 5^4 + 97 \cdot 5^5 + \cdots)
}

同じように、 48 = 3 + 4 \cdot 5 + 5^2とすれば、以下のように変形できる。

 \displaystyle{
\frac{10}{3} = -(1 \cdot 5 + 3 \cdot 5^2 + 1 \cdot 5^3 + 3 \cdot 5^4 + 101 \cdot 5^5 + \cdots)
}

これで最後にしよう。 101 = 1 + 4 \cdot 5^2とすれば、以下のように変形できる。

 \displaystyle{
\frac{10}{3} = -(1 \cdot 5 + 3 \cdot 5^2 + 1 \cdot 5^3 + 3 \cdot 5^4 + 1 \cdot 5^5 + \cdots)
}

結局、 \frac{10}{3}をp進展開すると、以下のようになることが分かった。

 \displaystyle{
\frac{10}{3} = -\cdots 131310
}

これを見ると、各桁に1と3が交互に並ぶのではないかと予想できる。これが正しいかどうか計算してみよう。もし1と3が交互に現れるのだとすると、そのような数は1が現れる桁と3が現れる桁をそれぞれ足し合わせることで、以下のように計算できる。

 \displaystyle{
\begin{eqnarray}
 -\left(\sum_{i=0}^{\infty} 5\cdot 25^{i} + \sum_{i=0}^{\infty} 75 \cdot 25^{i} \right) &=& -\left(\frac{-5}{25-1} + \frac{-75}{25-1} \right) \\
             &=& \frac{80}{24} \\
             &=& \frac{10}{3}
\end{eqnarray}
}

最初の等号はp進数としての収束を表していることに注意して欲しい。以上により、1と3が交互に並ぶという仮説は正しいことが分かった。恐らくだが、通常の有理数と同じように、p進数においても有理数は無限に桁が続いたとしても、それが循環するようになっているのかもしれない。

ちなみに、このようにして得られたp進展開からp進付値は1であることが容易に分かるが、これは冒頭で述べた事実と一致している。

まとめ

以上、p進整数となるような有理数のp進展開について述べた。このように具体的な計算例については、数学書では特に説明されないため、実際に計算することで得られた知見は大変有意義であった。

今回は突然疑問に思ったことを記事にしたくなったため、元々の予定とずれてしまったが、まあそんな日があっても良いだろう。

追記

本文中では、結論として \frac{10}{3} = -\cdots 131310というように、マイナスが付いた形でのp進展開を行った。これの両辺に3をかけると、 10 = -\cdots 444430となるわけだが、どうにも両者が一致しているような気がしない。また、10の5進展開は 2 \cdot 5のはずであるから、5進展開が2通り存在することになってしまっているようにも見える。p進展開はただ一通りになされるはずであるから、これは何かがおかしい。

この原因は、おそらく5進展開の先頭についたマイナスにある。調べたところ、どうやらp進展開というのはすべて正の数として表現できそうだということがわかった。そこで、この追記では負の数のp進展開について考え、 \frac{10}{3}の正の数としての5進展開を示す。

まず、簡単なところからはじめよう。 p=5としたとき、3と-3を5で割った余りはそれぞれいくつになるだろうか?3の方は当然余り3であるが、-3の方は余り2になる。なぜなら、 -3 = 5 \cdot (-1) + 2のように表せるからである。このように、負の数の剰余を考えると、それは正の数として表現できる。また、自然数 nに対して、 n -nの剰余というのは、一般的には異なる値になる。

ここで、-3の剰余を求めた式を少し変更すると、 5-3 = 2とも書ける。これは、ある数(ここでは-3)に5の倍数をいくら足しても、5で割った余りは変わらないという事実を表していると考えることができる。すなわち、 -3 \equiv 2 (\mod 5)なのである。

さて、-3を5で割った余りが2だったので、-3と2は5進数として等しいのだろうか?答えは否である。なぜなら、これらは25で割った余りが異なるからだ。2を25で割った余りは2、-3を25で割った余りは22になる。これは、 -3 = 25 \cdot (-1) + 22となるからである。ここで、22は5で割った余りが2であり、かつ25で割った余りが22であるため、5進数としては2と比べてより-3に近い数であると言える。また、先ほどと同様の変形をすると 25 - 3 = 22が得られる。ある数に25の倍数を足しても、25で割った余りは変わらないため、 -3 \equiv 22 (\mod 25)となるのである。

このようなことを繰り返すと、 -3 \equiv 5^m -3 (\mod 5^m)となることがわかる。これが無限に大きいmについて成立すれば、両者は5進数として等しくなるはずである。 5^mは5進展開すると 10\cdots 00(0がm個)と表せるのだから、 \cdots 0000 (無限の彼方に1が立っている)という数を-3に足して得られる正の数は、5進数として-3に等しいと言える。これを具体的に計算すると、以下のようになる。

 \displaystyle{
\cdots 000000 - 3 = \cdots 444442
}

この式の右辺こそが、まさに-3の5進展開となるのである。

では、ここでついに \frac{10}{3}= -\cdots 131310の正の数としての5進展開を考える。要するに、無限の彼方に1が立ったような5進数を足してやればよいのである。

 \displaystyle{
(\cdots 000000) - (\cdots 131310) = \cdots 313140
}

この式に3をかけて、10になるかどうか見てみよう。

 \displaystyle{
\cdots 1313140 \times 3 = \cdots 000020
}

おや、先頭の無限に続く0はさておき、値が20になったぞ?というのは当然で、これは5進数表記だからである。5進数表記での20は10進数に直すと10になるので、これは確かに \frac{10}{3}の5進展開を表していたと言える。

結局、本文で示したような負のp進展開を考えてしまうと、p進展開が一意でなくなってしまうので、ここで示したように正の数に直してやらないといけないのだろうと思われる。

もっとも、私が考える程度のことはすでに考えた人がいるようで、分数のp進展開を最初から正の数として求める方法が存在するようである。それについては下記のサイトを参照されたい。

d.hatena.ne.jp

*1:以前の記事と添字の付け方を若干変えているが、同じことである。

p進整数の可視化による逆極限とp進展開の橋渡し

本稿でも引き続きp進整数 \mathbb{Z}_pについて述べる。前回の記事で逆極限によるp進整数の定義を述べた。本稿ではまずこれを視覚的に捉え、次いでp進展開との関係について述べる。

p進整数の定義おさらい

まず、逆極限によるp進整数の定義を再掲しよう。剰余環 \mathbb{Z}/p^n \mathbb{Z}\ (n=1, 2, 3, \cdots)と自然な全射 f_n : \mathbb{Z}/p^{n+1} \mathbb{Z} \to \mathbb{Z}/p^n \mathbb{Z}から成る以下のような系列が与えられたとする。

 \displaystyle{
\cdots \xrightarrow{f_4} \mathbb{Z}/p^4 \mathbb{Z} \xrightarrow{f_3} \mathbb{Z}/p^3 \mathbb{Z} \xrightarrow{f_2} \mathbb{Z}/p^2 \mathbb{Z} \xrightarrow{f_1} \mathbb{Z}/p \mathbb{Z}
}

このとき、積集合 \prod_{1 \le n} \mathbb{Z}/p^n \mathbb{Z}の以下のような部分集合を逆極限と呼ぶ。

 \displaystyle{
\lim_{\substack{\longleftarrow\\n}} \mathbb{Z}/p^n \mathbb{Z} = \left\{(a_n)_{1\le n} \in \prod_{1 \le n} \mathbb{Z}/p^n \mathbb{Z} ;\ \forall n \in \mathbb{N},\ f_n(a_{n+1}) = a_n \right\}
}

p進整数の可視化

p進整数について、 p=5を例に考えてみよう。ある5進数rについて、 a_1 \in \mathbb{Z}/5\mathbb{Z}だから、 a_1は0, 1, 2, 3, 4の何れかである。ここでは仮に a_1 = 0だったとしよう。 f_1の定義より、 f_1(a_2) = a_1 = 0となるが、 f_1は自然な全射であるから、これは a_2を5で割った余りが a_1 = 0に等しいことを意味する。また、 f_2の定義より、 f_1 \circ f_2(a_3) = f_1(a_2) = 0となるが、 f_2も自然な全射なので、やはり a_3を5で割った余りが a_1 = 0になることを意味する。これを繰り返すと、全ての a_n\ (1 < n)を5で割った余りは a_1=0に等しくなる。

次に、 a_2について考えてみる。 a_2 \in \mathbb{Z}/25\mathbb{Z}であり、かつ上の議論により a_2を5で割った余りは0だから、 a_2は0, 5, 10, 15, 20の何れかである。ここでは仮に a_2 = 5だったとしよう。 f_2の定義より、 f_2(a_3) = a_2 = 5となるが、 f_2は自然な全射であるから、これは a_3を25で割った余りが a_2 = 5に等しいことを意味する。また、 f_3の定義より、 f_2 \circ f_3(a_4) = f_2(a_3) = 5となるが、 f_3も自然な全射なので、やはり a_4を25で割った余りが a_2 = 5になることを意味する。これを繰り返すと、全ての a_n\ (2 < n)を25で割った余りは a_2=5に等しくなる。

ダメ押しで a_3についても考えてみよう。 a_3 \in \mathbb{Z}/125\mathbb{Z}であり、かつ上の議論により a_3を5で割った余りは0、25で割った余りは5だから、 a_3は5, 30, 55, 80, 105の何れかである。ここでは仮に a_3 = 80だったとしよう。すると、これまでの議論と同様に、全ての a_n\ (3 < n)を125で割った余りは a_3=80に等しくなる。

これを一般化すると、ある m \in \mathbb{N}について、全ての a_n\ (m < n) 5^mで割った余りは a_mに等しくなるということが言える。

これまで述べてきたことを可視化してみると、ある5進数rは以下のように表すことができるだろう。

f:id:peng225:20170304144228p:plain

ただし、図の描きやすさの都合上、選択されたオレンジ色の数字を大き目に描いている。この図を見ると、rがまさに何処かに収束していく様子が見て取れるだろう。この収束の様子こそが、まさに逆極限が表していることであり、p進数rそのものなのである。

逆極限から分かるp進整数のp進展開

さて、図をさらによく見ると、あるオレンジ色の箱の中身は、次のステップでは必ず5個の小さな箱に分割されていることが分かる。そこで、オレンジ色に塗られた箱は、それぞれ前のステップでの箱の中で何番目に位置するものであるかを考えてみる。

まず、 a_1 = 0について、これは(0始まりでカウントすると)0番目の箱である。 a_2 = 5は、 a_1 = 0という箱に属するものの中で1番目の箱であることが分かる。さらに、 a_3 = 80は、 a_2 = 5という箱の中で3番目に位置していることが見て取れる。

このように、各 a_nが前のステップでのオレンジの箱の中で何番目に位置しているかというのを順に調べていくと、各 \mathbb{Z}/p^n\mathbb{Z}における箱の番号をn桁目の数字とすることで、rを以下のように一意に表すことができる。

 \displaystyle{
r = \cdots 12310
}

これをrのp進展開と呼ぶ。一般に、p進展開は以下のように表すことができる。

 \displaystyle{
r = \sum_{n=1}^{\infty} a_n p^{n-1}
}

一般のp進整数のp進展開では桁数は無限に大きくなり得るわけだが、中にはある m \in \mathbb{N}について \forall n \ge m, a_n = 0となるような数も存在する。そのようなものは実は通常の整数となっている。また、その場合、ここで示したp進展開は、10進整数を通常の意味でp進数表示した場合と全く同じものになる。このことからも、 \mathbb{Z} \subset \mathbb{Z}_pであることが理解できる。

まとめ

以上、p進整数 \mathbb{Z}_pの具体例について可視化を行うことで、それがどのようにp進展開と結びついていくのかを見た。本稿の説明だけでは \mathbb{Q}_pのp進展開までは説明できていないが、逆極限との関連を視覚的に捉えることを優先し、敢えて省いた。 \mathbb{Q}_pについても分からないことが山ほどあるので、それらについても近いうちに勉強し、明らかになったところで記事にしたいと思う。

参考

数論I――Fermatの夢と類体論 (岩波オンデマンドブックス)

数論I――Fermatの夢と類体論 (岩波オンデマンドブックス)