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

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

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

なぜにテンソル記法は意味不明なのか

先日、「テンソル記法の決定版は(たぶん)これだ!」という記事を書きました。テンソル記法/テンソル計算に関しては、過去にも色々書いています。

  1. 2007年 テンソル:定義とか周辺の話とかナニやら
  2. 2007年 テンソル:なぜ難しいのか
  3. 2008年 伝統的テンソル計算を理解するヒント
  4. 2008年 テンソル計算:112はイチイチニかヒャクジュウニか
  5. 2015年 古典テンソル計算の上付き・下付きを、横に並べる

伝統的テンソル計算の欠点をあげつらっていますが、ほんとにダメで役立たずなものなら無視するわけで、なにかしら魅力や必要性があるから、ゴチャゴチャ言っているのです。実際、テンソル記法における、上下添字の書き分けや総和記号の省略(アインシュタインの規約)はホントに素晴らしいアイディアです。これは魅力的ですね。

テンソル記法の決定版は(たぶん)これだ!」のような話は、伝統的テンソル記法の素晴らしい点はそのままにして、不明瞭なところをなんとかしよう、という試みです。

不明瞭さは、記法〈書き方〉だけに関わる問題ではありません。なんらかの記法〈書き方〉で書かれたテンソルが、ほんとのところ何を意味するのか? その正体が曖昧なのです。実際の運用では、この曖昧さを利用して計算を進めたりするので、意味をどれかひとつに決めることもできません。困ったもんだ。

意味の曖昧さに対して、僕は完全な解決策を知りません([追記]テンソル記法の「意味不明問題」は解決した」で、ある程度の解決策を示しました。[/追記])。が、ともかくも、問題点を指摘しておくことにします。


テンソル計算をするときは、もとにするベクトル空間を有限個選びます。例えば、VとWの2つとしましょう。VとWから、双対空間とテンソル積を作ることで得られた空間達も考えます。例えば、V*, V\otimesW, V\otimesV\otimesV, W\otimesV* など。さらに、そうやって作ったベクトル空間のあいだの線形写像も考えます。

以上のような状況で、「x はテンソルである」と言われたとします。これだけだと、何を言っているか分かりません。テンソル x の成分表示が次のようだとしましょう。[追記]下のテンソル記法が  x^{j \,\alpha}_j と、j を2回使っていたので訂正しました。添字は i, α, j です。[/追記]

  •  x^{i\,\alpha}_j

上付き添字が2つ、下付き添字が1つあるので、最初よりは情報が増えましたが、まだよく分かりません。さらに次の情報を付け加えます。

  • 添字 i, j, k はベクトル空間 V のベクトルを表すために使う*1
  • 添字 α, β, γ はベクトル空間 W のベクトルを表すために使う。

今までの情報を総合すると、x の正体を推測できます。確定はできませんが、おそらく次のどれかでしょう。

  1. x は、V から V\otimesW への線形写像である。
  2. x は、ベクトル空間 V\otimesW\otimesV* のベクトルである。
  3. x は、ベクトル空間 V*\otimesW*\otimesV の双対空間のベクトルである。

ベクトル空間 X のベクトルは、R→X の線形写像といっても同じ*2だし、ベクトル空間 X の双対空間のベクトルは、X→R の線形写像といっても同じなので、次のようにも言えます。

  1. x は、V → V\otimesW という線形写像である。
  2. x は、R → V\otimesW\otimesV* という線形写像である。
  3. x は、V*\otimesW*\otimesV → R という線形写像である。

で、結局 x はどれなんだ? といきなり聞かれても、それは分かりません。誰にも分かりません。曰く言い難いナニカに応じて、臨機応変に解釈を切り替えるのがワザみたいです。僕がずーーっと嫌っているのはココなんですよ。添字の使いこなしは、手順があるのでトレーニング可能ですが、解釈の切り替えは定義も手順もモヤッとしていて、「悟り」で会得するような… あーイヤだ。

なお、上に挙げた3種の解釈の関係はハッキリしています。以下の記事にある、射とそのネーム/コネームです。

*1:正確に言えば、i, j, k は、Vの基底、または基底と1:1対応するインデックス集合の上を動く変数です。

*2:圏論ベースの線形代数だと、要素という概念は使いたくないので、R→X のほうが好都合です。