物理の本とかベクトル解析の本に出てくる反変ベクトル・共変ベクトルというのが昔から何か気持ち悪かった(もっと気持ち悪くてよくわからないのが極性ベクトルと軸性ベクトルだけど、それは置いといて)。それについてのメモ。
反変ベクトルと共変ベクトルについてのとりあえずの説明
例えば力学には速度ベクトルと勾配ベクトルというものが登場する。この速度ベクトルと勾配ベクトルはどちらもベクトルと名前がついているけど、実は大きな違いがある。
まず正規直交座標系で考えたとき、速度ベクトルの成分はである。また、(ポテンシャルについての)勾配ベクトルの成分はである。
一方、別の座標系、例えば球面座標系で考えた場合、速度ベクトルの成分はで、勾配ベクトルの成分はである。
ということは、正規直交座標系から球面座標系に移ったとき、ベクトルの成分には次の関係が成り立っている。
この式からわかるように、速度ベクトルと勾配ベクトルでは成分の変換の様子が異なっている。より一般的には、ある座標系から別の座標系に移ったとき、速度ベクトルの成分は
と変換され、勾配ベクトルの成分は、
と変換される(添字が下ではなく上に付けているのは、そう書いた方が便利だから。ただしベキ乗とまぎらわしいという欠点もある)。
そして、成分の変換が速度ベクトルと同じ形の式
でおこなわれるものを反変ベクトルと呼び、勾配ベクトルと同じ形の式
で変換されるものを共変ベクトルと呼ぶ。
成分がどう変換されるかによって、反変ベクトル・共変ベクトルを定義するのは、物理や工学ではたぶん普通だと思う(たとえばWikipedia > 4元ベクトル > 反変ベクトルと共変ベクトル)。
勾配ベクトルは反変ベクトルか共変ベクトルか
多少脱線した話題。
よくいわれる「向きと大きさを持った」ベクトルというのは反変ベクトル。例えば速度ベクトルの向きは、軌道曲線に対する接線の方向になる。一方、共変ベクトルはそれとは違う。「速度ベクトル≒軌道に対する接線」というイメージと比較すると、「勾配ベクトル≒等ポテンシャル面に対する接平面」というイメージだと思う。たぶん。したがって共変ベクトルを方向(矢印)のようなイメージでとらえるのは間違っている。しかしイメージはしづらい。例えば『相対論入門 上』には線形化した等高線の図が書いてあったりするけど、やっぱりイメージしにくい。
追記: 次のような文があった。
通常、空間に即した位差的なものをベクトルと思い、ヤジルシで表す。より正確には、接空間に住んでいるベクトル、つまり「接ベクトル」こそが、ピッタリそれに当たる。対して「微分」dfpの方は、双対(余接空間)に属し、今の意味でのベクトルとは区別すべきだ。名前をつけるなら「コベクトル」である。同時に、函数の表象としての「絵」はヤジルシではなく、空間に描かれた「等高線」の集まりとなる。但し、それは無限小世界の真っすぐな等高線なので、平行な平面からなる。
(梅田亨『森毅の主題による変奏曲 上』微分篇(3))
なぜか。増加率を考えるには長さが測れないといけない。垂直な方向を言うには角度が測れないといけない。この「長さ」とか「角度」というのは「計量」と呼ばれるものによって決まる。でもという式には、計量に関することが含まれていない。
計量のことを含めるには、計量テンソルの成分を使う。これを使うと、「最大になる方向」による定義での勾配ベクトルの成分は
と書くことができる。これは反変ベクトルになる。
(計量が存在する場合)任意のベクトルについて、共変ベクトルを反変ベクトルに変換したり、逆に反変ベクトルを共変ベクトルに変換することができる。変換結果がいったい何を表しているのかは、あまりイメージできないけど。
計量が存在する場合、反変ベクトル共変ベクトルの対応があるので初めから同一視して、「反変ベクトル」「共変ベクトル」という異なる種類のものがあるのではなく、同じものに対する「反変成分」「共変成分」という別の表現の仕方があるという見方もできる。
追記:
数学者にとっては、現在常識となっている「双対」という概念ではあるが、これが案外捉えにくいものだという指摘もある。内積に長年慣れ親しみ、ドップリ浸かっていると、双対は自分自身と直ちに同一視できるから、区別できなくなっているのかもしれない。目の前に「存在する内積」を使ってどこが悪い、ということなのだろう。……
また、区別しているようでも、一つのベクトルの反変成分と共変成分があると思っている人もある。そのような同一視がどのような機構から生じるかを一度反省しないと、正確な理解は永久に得られないだろう。
(梅田亨『森毅の主題による変奏曲 上』微分篇(2))
反変ベクトル・共変ベクトルの気持ち悪さ
まず反変・共変という名前の付け方に何だか違和感がある。反変ベクトルと共変ベクトルを内容で比べると、反変ベクトルの方が「先・主」で、共変ベクトルは「後・従」という感じがするけど、反変・共変の語感はそれとは逆に感じる。けれどそれは置いとく。
で何で反変ベクトル・共変ベクトルという名前かというと「反変ベクトルの成分変換の式は、基底の変換式と逆になっていて、共変ベクトルの成分変換式は基底の変換式と同じだから」とか説明される(しかしこの基底自身は反変ベクトル)。
ここで急に基底のことが出てくるのだけど、そもそも基底の話なしに成分の話が始まりベクトルの定義がなされるというのが、かなり変な感じがする。
線形代数的には、まず線形空間が定義され(=何がベクトルなのかが定まる)、それからベクトルの中から基底を決めて、基底に対応して成分表示がされる、という流れになる。なのに反変ベクトル・共変ベクトルの定義では、まず成分が登場しその性質によってベクトルかどうかが決まり、基底は登場しない。これはあまりうれしくない。基底の話が出てこないので、ベクトル自体とその成分表示との区別がわかりにくくなっているような気がする。
追記:
ちょっとした、しかし、重要な注意としては、微分幾何の「反変(contravariant)ベクトル」「共変(covariant)ベクトル」という用語の不適切さをパウリが指摘し、その代わりに「共傾(cogredient)ベクトル」「反傾(contragredient)ベクトル」という用語を提唱している点である。
(梅田亨『森毅の主題による変奏曲 上』微分篇(1))
反変ベクトルと接ベクトル
速度ベクトルを特定の座標系に依存しない形で定義することを考える。
やなどは、座標系に依存したものなので定義に使いたくない。
ここで、速度ベクトルと方向微分の間に対応関係があるという事実を使う。
空間上の位置によって値が決まる関数があるとする。
ある点が空間内を移動していったとして、その点の各時刻での位置をで表すと、この点でのの値はとなる。この軌道上の点でのの変化率はとなる。これを軌道(曲線)にそった(点での)方向微分という。
このの値は、座標系に関係なく決まる。
その一方で、ある座標系で点の速度ベクトル成分が分かっていれば、
より、の方向微分の値が求められる。同様に他のどんな関数の方向微分も、速度ベクトル成分を使って計算することができる( の部分は、点の進んでいる方向や速さの情報は含まれていないので、軌道と無関係に計算できる)。
このように、「ある座標系での速度ベクトル成分が分かる」→「すべての関数の方向微分が分かる」、という関係がある。
逆に、任意の関数の方向微分が分かっているとする。つまり、関数を入力して方向微分の値を返す関数
が分かっているとする。
ここで関数としてという関数を取ってみる(点の座標の値を返す関数)。
このとき方向微分というのは、速度ベクトルの座標系での成分そのものになっている。選んだ関数は、どの座標系のどの成分でもよかったので、任意の関数の方向微分が分かるなら、任意の座標系での速度ベクトル成分が分かるということになる。
つまり、「すべての関数の方向微分が分かる」→「任意の座標系での速度ベクトル成分が分かる」という関係がある。 よって、
- ある座標系での速度ベクトル成分が分かる
- すべての関数の方向微分が分かる
は、同じ情報を持っていることになる。
そこで、関数を入力して方向微分を返す関数
を点での速度ベクトルだと定義する。この定義は、成分表示によるものよりわかりにくいけれど、特定の座標系に依存していない。
さらに「方向微分」の性質をもとにして一般の反変ベクトルについても座標系に依存しない定義をすることができる。そのように定義されたベクトルを接ベクトルと呼ぶ。
接ベクトルの基底と成分表示
軌道P(t)として、ある座標以外の座標は一定で、についてはとなっているような軌道を取ってみる。この場合
となる。よって速度ベクトルはとなり、演算子は接ベクトルになることがわかる。さらに、成分表示で表されるベクトルには、接ベクトルが対応している。これを見ると、 という成分は、を基底に取ったときの成分と一致することがわかる。を座標系に対する基底だと考えると、反変ベクトルの成分変換規則はそこから導かれる。「反変ベクトル」 では定義だったものが、接ベクトルでは性質として導くことができる。
共変ベクトルと余接ベクトル
勾配ベクトルについて、座標系に依存しない定義を考える。
さっき出てきた軌道P(t)上でのf(P)の変化率をもう一度見てみる。
この式の中にfの勾配ベクトルの成分が出てきている。ここで、
- 関数f(P)と軌道P(t)を与えると、が計算できる。
- 速度ベクトルは、関数f(P)を与えるとを返す関数、とみなすことができた。
ということを踏まえると、
「点Pでのfの勾配とは、Pを通る軌道P(t)を与えると点Pでのを返す関数である」
と定義できそうな気がする。でも勾配の値は軌道の速度ベクトルだけで決まってしまうので、点Pでの速度ベクトルを入力とする。
そうするとfの勾配とは、任意の速度ベクトルを入力したときに、その速度で移動したときのfの変化率を返すような関数と考えることができる。fの勾配はdfと書かれる。
さらに勾配に限らず共変ベクトルに対応するのは、接ベクトルを与えると数を返す線形関数になる。これは余接ベクトルと呼ばれる。
また座標の勾配は、余接ベクトル空間の基底になり、それによる成分表示は共変ベクトルの成分に一致する。もちろん共変ベクトルの成分変換規則とも一致する。
接ベクトル・余接ベクトル
接ベクトルも余接ベクトルも定義はわかりにくい。でも実質的には反変ベクトル・共変ベクトルと同じものなので、使用する上では違いは無いし定義を意識する必要もほとんどない。ベクトル成分とか成分の変換規則が定義に入ってこないのがうれしいという精神衛生上の問題にすぎないといっても良い(もちろん数学的にきちんとやる場合はまた別)。でも非数学系の本でもその辺のことに少しぐらい触れていても良いと思う。
追記: 関連→メモ: 積分と微分形式