このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

伝統的テンソル計算を理解するヒント

電磁気学とかリーマン幾何とかでは、テンソル計算 -- つまり上付き下付きの添字がウジャウジャ出てきて、なにやらメンドーそうな計算 -- が出てきます。伝統的な*1テンソル計算は実際グチャグチャしているので、これを避ける定式化もありますが、完全に排除するのは難しいでしょう。

最近興味を持っているアブラムスキー/クック流の量子情報処理は、ダガーコンパクト閉圏*2を道具にしているのでテンソル計算は出てきません。にもかかわらず、僕を含めて多くの人は、テンソル計算で確認しないと安心できないのではないでしょうか*3

というわけで、伝統的なテンソル計算の基本事項をノート(紙っぺら)3枚にまとめてみました。最初の2枚はひと続きで、次に列挙した項目をまとめています。

  1. 正規直交基底
  2. ベクトルの展開
  3. 双対基底
  4. 双対空間の内積
  5. コベクトルの展開
  6. 展開の係数=成分
  7. Θの成分表示

3枚目は補足的なものです。

以下に、スキャンした画像を別ウィンドウで開くリンクを並べておきます。

  1. ノート その1
  2. ノート その2
  3. ノート その3

または:


伝統的テンソル計算は、記号法が巧みに工夫してあって、「うまくできてるなー」と感心します。しかし、なぜその記号計算がうまくいくのかはあまり明かではなく、「なんだかわからないがチャンと結果は出る」技法になっているキライがあります。

もはや時代遅れで使わないで済むならいいのですが、そうでもないので、伝統的テンソル計算を少しは合理化して、ストレスなく(いやっ、ストレスを減らして)計算できる方法を探ってみます。

暗黙の前提をハッキリとさせる

現代風の、公理的に定義される(有限次元の)ベクトル空間の知識は仮定します。曲面の一点での接ベクトルの全体とか、量子状態を表現するヒルベルト空間とかはベクトル空間の例です。

伝統的テンソル計算では、内積付きのベクトル空間Uを1つ選んで固定します。係数が実数ならユークリッド空間、係数が複素数ならヒルベルト空間です。話を簡単にするために、実係数のユークリッド内積を考えます。Uの内積を (-|-) とします。また、整数Nは N = dim U (Uの次元)とします。N = 0, N = 1 ではありまにもつまらない*4ので、N ≧ 2 としましょう。実例としては N = 2 を使います。

内積付きベクトル空間Uを1つ選んだら、U自身とUの双対U*からテンソル積(「(×)」で示すことにします)して得られるベクトル空間達を全部考えます。スカラーRも特別なベクトル空間と考えると、R, U, U*, U(×)U, U(×)U*, U*(×)U(×)U* などなど。こうやって出来上がったベクトル空間達と、そのあいだの線形写像は圏を成すのですが、この圏のなかの計算手法が伝統的テンソル計算といっていいでしょう。

Uが内積を持つなら、U*にも標準的に内積が入り、U*(×)U(×)U* などにも標準的内積を入れられます。Uからテンソル積により作られる圏をTens[U]とすると、Tens[U]は内積付きベクトル空間の圏の充満部分圏*5だと考えてよいことになります。

伝統的テンソル計算は基底に基づく計算なので、Uを選ぶだけでなく、Uの正規直交基底も1つ選んで固定します。N = dim U = 2 のときなら、{e1, e2} を基底としましょう。このとき、次の正規直交条件が成立しています。

  • (e1|e1) = 1
  • (e1|e2) = 0
  • (e2|e1) = 0
  • (e2|e2) = 1

クロネッカーのデルタ

正規直交条件を書き表すのに、δi jという記号を導入すると便利です。

  • δ1 1 = δ2 2 = 1
  • δ1 2 = δ2 1 = 0

δi jを使うと、正規直交条件は次の1行で表せます。

  • (ei|ej) = δi j

より一般的なδi jの定義は:

  • i = j のとき δi j = 1
  • i ≠ j のとき δi j = 0

このδi jクロネッカーのデルタですが、とりあえずは便利な記号的デバイスと捉えておけばいいでしょう(いずれ、δの意味や解釈を与えるつもりです)。

ベクトルとコベクトルの表記法

Uの元とU*の元を区別するため、Uの元をベクトル、U*の元はコベクトルと呼ぶことにします。

ベクトルは、エントリー内ではxのような太字で、手書きノート内では文字の上に矢印→を付けて表記しています。コベクトルは、エントリー内ではyのようなイタリック太字で、手書きノート内では文字の上に反対向き矢印←を付けています*6

このように字体や矢印で区別すると分かりやすくなりますが、徹底しようとするとえらくメンドーだし、整合的な記号法の障害になるときもあります。ある程度慣れてきたら、太字や矢印はやめたほうがいいでしょう。

スカラー乗法の表記法

xがベクトル、tがスカラーのとき、xのt倍は xt と、スカラーを右に書くことにします。yがコベクトルのときは逆に、ty と左からスカラーを掛けるようにします。

このルールを守らなくても計算に差し障りはないのですが、こうしておくと整合性が高まります。その理由の1つは、スカラーは「何倍かする」という作用とみなせ、スカラー乗法がこのスカラー倍作用との結合(composition)として定義可能だからです。理屈はともかく、「スカラーを置く側(左右)を、ベクトルとコベクトルで逆にしておく」のは良い習慣です。



中途半端ですが、このエントリーはこれでオシマイとして、ノート(紙っぺら3枚)の注釈はまた後日。

*1:最初、「古典的な」と書いていたのですが、「量子的/古典的」の意味と誤解されそうなので、「伝統的」としました。「昔風の」という意味です。

*2:短く †-compact category と書くことが多いので、訳語も「†コンパクト圏」がいいかも知れません。

*3:何年かたつと、そういう旧世代の感性は笑いものになるのかもね。

*4:つまらないだけで、何かマズイことがあるわけではありません。

*5:内積付きベクトル空間(ユークリッド・ベクトル空間)と線形写像の圏をEucとすると、Euc(V, W) = Tens[u](V, W) ということです。

*6:→と←を乗せる流儀は誰かの真似なんだけど、オリジナルが誰かはわかんないです。デュードンネが使っていたような気もするが、、、