わたしのためのテンソルと微分形式 Rmd編

---
title: "私のためのテンソルと微分形式"
author: "ryamada"
date: "2016年7月15日"
output: html_document
---


# はじめに

曲がった空間のことを考えるとき、局所に座標系をはりつけて、
その座標で考えることが有用なこともあるけれど、
曲がっているので、座標系も曲がってしまうし、
そもそも座標系は局所の接空間を表してしまっていて、曲がった空間そのものに寄り添っていない、という問題がある。

そんなとき、座標系を離れて場を考えたくなる。

スカラー場、ベクトル場、テンソル場。

曲がった空間にスカラー、ベクトル、テンソルが張り付いていて、その変化具合(微分)をしたい。

これをやるのに、テンソルの理解が欠かせない。

テンソルは、テンソル代数を持ち出して、計算機などで計算するとなると、多次元アレイになるし、そもそも、多次元アレイで表現するには、座標系を張り付けないといけない。

しかしながら、スカラー・ベクトル・テンソルは空間で座標に依存しない「存在」でもある。そんなときは、微分形式を持ち出して、座標系非依存に考えることが有効である。

そんなあたりの、自分のこんがらがった知識をなんとかまとめるためにこの文書は書くことにする。

# 実例で考えよう

今、2次元曲面がある。
その曲面を3次元空間に埋め込むと
$x_1,x_2$2次元平面のデカルト座標系のパラメタとして、第3次元の座標が
$x_3 = \cos{x_1}\cos{x_2}$ となるような曲面とする。

そして、その曲面上の点、$(x_1,x_2,x_3=\cos{x_1}\cos{x_2})$ には、

$f_{x_1,x_2,x_3}=x_1^2+x_2^2+x_3^2$なるスカラー場が張り付いているとする。



$(1,1,-\sin{(x_1+x_2)})$
なるベクトルが張りついて、曲面上にベクトル場を作っているとする。

この曲面に張り付いたベクトルは
$(1,0,\frac{\partial x_3 = \cos{x_1}\cos{x_2} }{\partial x_1})$$(1,0,\frac{\partial x_3 = \cos{x_1}\cos{x_2} }{\partial x_2})$
との和として作成してある。


```{r}
library(knitr)
library(rgl)
```
```{r setup}
knit_hooks$set(rgl = hook_rgl)
```

#```{r, rgl=TRUE}
```{}
x1x2 <- expand.grid(seq(from = -pi, to = pi, length = 100),seq(from = -pi, to = pi, length = 100))
x3 <- cos(x1x2[,1])*cos(x1x2[,2])

x1x2x3 <- cbind(x1x2,x3)
f <- log(apply(x1x2x3^2,1,sum)+0.1)
plot3d(x1x2x3,col="white")
cols <- (f-min(f))/(max(f)-min(f)) * 0.8 + 0.1
n <- 3000
s <- sample(1:length(x1x2x3[,1]),n)
for(i in 1:n){
  points3d(x1x2x3[s[i],],col=rgb(cols[s[i]],1-cols[s[i]],1))
}
```

#```{r, rgl=TRUE}
```{}
plot3d(x1x2x3)
n <- 1000
s <- sample(1:length(x3),n)
s <- which(x1x2[,1] %in% x1x2[,1][sample(1:n,3)])
#points3d(x1x2x3[s,],col='red')


vs <- cbind(rep(1,length(s)),rep(1,length(s)),-sin(x1x2[s,1]+x1x2[s,2]))*0.1
for(i in 1:length(s)){
  segments3d(rbind(x1x2x3[s[i],],x1x2x3[s[i],]+vs[i,]),col=3)
}
```
# ベクトルと1形式

## ベクトル

曲がっている空間にまっすぐで長さを持った矢印であるベクトルはうまくはまらない。

それがはまるのは接空間。

曲がった空間においてベクトルを考とえることは、接ベクトルを考えること。

曲がった空間とそのすべての点における接空間を合わせることで、曲がった空間でベクトル解析をする準備ができる。

実際には、曲がった空間上の隣り合う2点の接ベクトルを比べるための仕組みを導入する必要がある。

## 1形式と双対ベクトル空間

1形式は関数である。

曲がった空間の各点に張り付いた関数で、その関数は、点のベクトルを引数としてスカラーを返す。

ある点のベクトルは、ある点の1形式を引数として取って、スカラーを返す関数である、とも見える。

このように、どちらを関数とみて、どちらを引数と見るかが「合いお互い」になっている関係を双対という。

1形式が作る空間を双対ベクトル空間と言う。

# テンソル

テンソルもスカラーを返す関数。
ただし、テンソルの引数は、m個の1形式とn個のベクトル。

それを$T(m,n)$と書く。

実は、スカラーは、$T(0,0)$、ベクトルは1個の1形式をとってスカラーを返すので$T(1,0)$1形式は1個のベクトルをとってスカラーを返すので$T(0,1)$。

テンソルのランクはテンソル積、縮約、グラディエントの3方法で変化する。

## 計量テンソル

通常、スカラーを得るには、ベクトルと1形式とをペアリングする必要がある。

ベクトル2つ、1形式2つからスカラーを得るには、そのままではだめなので、

ベクトル2つを取ってスカラーを返すテンソル$T(0,2)$1形式2つを取ってスカラーを返すテンソル$T(2,0)$を用いる。

$T(0,2)$の方が計量テンソル、$T(2,0)$の方は、計量テンソルのインバース。

この計量テンソルは、1つのベクトルをとると、1形式を返すので、その1形式とベクトルとでスカラーが得られる、と考えれば、計量テンソルは、ベクトルを1形式に変換する関数と見ることもできる。

## 基底ベクトルのセットと基底1形式のセット

多次元の曲がった空間に基底ベクトルのセットと
基底1形式のセットをおくと
多次元の曲がった空間を基底ベクトルの線形和で書くことを考えよう。

基底ベクトルのセットと基底1形式のセットには、この対応関係しかない!という、対応するセットがある。

そのセットでは、2つのセットの対応ペア(ベクトルと1形式)の積は1になり、それ以外は0になるという、「正規直交的」な関係がある。

任意のベクトルが基底ベクトルの線形和で表せて、その係数のセットは、1形式に相当する。

任意の1形式が基底1形式の線形和で表せて、その係数のセットは、ベクトルに相当する。

## テンソル代数

テンソルは
基底ベクトルと基底1形式のテンソル積の係数での線形和に分解できる。
$T(m,n)$ テンソルの基底は、m個のベクトルとn個の1形式のテンソル積で構成する。

そのうえで、任意の$T(m,n)$$T(m,n)$の基底セットで表したときの係数は、m個の1形式とn個のベクトルをとってスカラーを返すことを利用して算出することができる。

## 基底の変換

ベクトル基底の変換はテンソルで行うが、それに対応する1形式基底の変換をするテンソルは、ベクトル基底の変換テンソルと特殊な関係にある。

## 座標系基底
座標系は、対象空間を一意に定める系であり、それを構成するのが、座標系基底。

多次元の曲がった空間上に次元の数だけスカラー場があり、すべての点をスカラー値のセットで一意に決める。

各点には、その座標系基底の「増方向」が定まっている。


この座標系基底を用いると、任意の無限に近い2点の位置ベクトルの差分ベクトル(微分ベクトル)がとれて、それは、その点での座標系基底の線形和で表せる。
基底ベクトルでの座標の偏微分を、その方向の$d \vec{x}$と定めることも座標系基底の定義に含める。

曲がった空間上のスカラー場をある方向でその増減を評価するとする。

スカラー場の方向偏微分と、その点におけるその方向の$d \vec{x}$の積になる。

これは座標の取り方によらない値である。しかしながら、$d \vec{x}$は座標依存な大きさを持つ。
したがって、スカラー場の方向偏微分が座標系依存となり、その座標系の依存の仕方が$d \vec{x}$とは逆になっている必要がある。

これが「反変」という呼び名に相当する。

座標系基底を使うと、曲がった空間上の離れた2点間の距離が決まる。

距離を決めるためには、座標系の他に、微小ベクトルの長さ line elementsを決める計量テンソルも必要になる。

このように距離が決められる計量テンソルは、座標系の取り方によって一意に決まる。

座標系の変換により、基底ベクトルセットが変わり、基底1形式セットが変わり、計量テンソルは、座標系を説明するものだから、その要素の値が変わり、その他のテンソルも座標系に依存して保有していた要素値が変わる。

ただし、計量テンソルもその他のテンソルも、曲がった空間の座標系非依存の何かなので、要素値は変わるものの、本質は変わっていない。

## ベクトルと1形式のIsomorphism

テンソルは$T(m,n)$と書き、$m+n$が一定でも、そのベクトルと1形式の持ち合い具合で、多数のバリエーションが出る。

それらを逐一考えてもよいが、計算するときにはちょっと厄介である。


実際、ベクトルと1形式というのも、$m+n=1$の場合の2通りを扱っている状況になるのだが、それらは、ベクトル空間と双対ベクトル空間という密接な関係があり、相互に自由がなく、その不自由な関係は計量テンソルとその逆とによって、表されているから。

この不自由な関係(計量テンソル)によって相互に変換することを忘れなければ、1形式に関する諸計算はすべて対応するベクトルについて行った後に、計量テンソルを使って1形式用に変換すればよい。

それと同じ仕組みが$T(m,n)$にも適用できるので、結局、計算のためには、$T(m+n,0)$について計算ルールを作り、それを$T(m,n)$に変換する規則を計量テンソルで表しておけば、用が足りる。

それが、ベクトルと1形式のIsomorphismの活用ということである。

## 座標系基底での表現

座標系基底ベクトルは単位ベクトルではない(長さが1ではない)。
この非単位ベクトルであることが計量テンソルを単位テンソルにしていない理由だし、
非単位ベクトルにできていることから、長さのことをいちいち気にせずに微分方程式を簡単な表現にすることができる。

逆に言うと、座標系基底ベクトルの各基底ベクトルの長さが1でないときに、
それを1に補正した基底を作ることができて、それは、非座標系基底ベクトルの例になる。

# 微分と積分

## スカラーのGradient

Gradientは1形式 ($T(0,1)$)。
ベクトルを1つとってスカラーを返す関数。

これを、(曲がった)空間にある$T(m,n)$テンソルの場に適用する、というのは、$T(m,n+1)$の場をそこに作ること。

スカラー場があるときには、1形式の場を作る。
実際には、スカラー場の局所のある方向への変化量がベクトルで得られるので、そのベクトルをとって、値としてスカラ−を返すが、そのスカラーには、評価した方向があるので、作られるのはベクトル。
$T(0,0)$の場の局所方向についての$T(0,1)$を作ったことになる。
が、その計算自体は、$T(0,1)$のテンソル(1形式)が、$T(1,0)$のテンソル(局所ベクトル)をとって、スカラー係数を返すという関数作用を用いて、結果として、$T(0,0)$の場を$T(0,1)$の場に変えている。

## ベクトルのGradient : 共変微分 Covariant derivative

局所の基底ベクトルは場所の関数であり、局所のベクトルを基底ベクトルで表したときの係数も場所の関数。

したがって、局所でのベクトル場の微分をすると、係数も微分して、局所基底ベクトルも微分することになる。

ある2つのモノの積に対して微分するとき、その2つがそれぞれ微分の対象である場合には、2項に分ける必要が出てくる。

したがって、ベクトル場の微分には2項出てくる。

一つは、係数を微分したもので、もう一つは局所座標系ベクトルを微分したもの。

この局所座標系ベクトルをある方向に微分したものがどんなものか、ということが問題になる。

どんなものかはわからないなりに、それは局所座標系の線形和で表せる。

今、ある点の局所座標系の任意方向ベクトルが、同点のある方向についてどのように変化しているのかを知ろうと思うとする。

線形で考えているので、局所座標系のある基底ベクトルが、局所座標系のある(同じかもしれないし別かもしれない)基底ベクトル方向にどのように変化しているかがわかれば、あとは線形和で書ける。

その基底ベクトルペアについて、ある変化がベクトルで出てくるとすると、それは局所の基底ベクトルの線形和になるだろう。

その係数を接続係数と呼ぶ。3つの基底ベクトル(ある基底ベクトルの、ある基底ベクトル方向に関する微分の、ある基底ベクトル方向)の組み合わせに対して係数が定まる。

これがクリストッフェルのシンボル。

係数なので座標変換で値が変わる。

## 1形式のGradient、テンソルのGradient

1形式はベクトルの双対だから、基本的に同じ。

クリストッフェルシンボルのようなものが出る。

双対空間であるから、そのシンボルはクリストッフェルのそれと関係が強く、実際、対応する成分はクリストッフェルの符号を変えたものになる。

高階テンソルの場合は、素直に拡張していくだけで、クリストッフェルのシンボルを基底ベクトルの組み合わせについて加算して行けばよい。

計量テンソルがテンソル場の微分に強く関与していることは、計量テンソルのgradientが0になることからもわかるし、逆に、計量テンソル、局所で「平ら」になっている場のことである、と言うこともできる。

## クリストッフェルシンボルの評価

クリストッフェルのシンボルは、計量テンソル成分の微分の組み合わせ多項式のように書き下せる。

## 局所平坦座標系の変換

局所的に平坦な曲がった空間では局所座標系の連結具合が簡単で、そこにおいてクリストッフェルシンボルが定義されたが、一般的な条件に拡張することができて、それは、テイラー展開をして、その高次項の省略ルールを定めることで対応できる。

## 体積の積分

$d^k x = \prod_{i=1}^k dx^i$ であって、これはスカラーではない。

行列式を持ち出してこれをスカラーにする。
g
別の考え方で言えば、微分形式にテンソル代数を持ち込むのではなくて、外積代数を持ち込めば、「ランク」が下がってスカラー相当になる。

外積代数は符号の入れ替えを特徴とするし、行列式も符号の入れ替えを特徴とするので、あくまでもテンソル代数で行けば、行列式を持ち出すという対応になるし、外積代数を使えば、自然に体積が得られる。

## 面積分

面は体積を高さで割ったものなので、体積が得られている今、面積は、「高さ〜考慮している面に垂直なベクトルの長さ」が解ればよい。

## Gauss's law

# 平行移動と測地線

## 曲線に沿った微分

曲線をパラメタ表示し、曲線にそって微分すると微小ベクトルが得られる。

微小ベクトルの長さが定義されているとき、それを積分をすることで曲線の長さが定まる。

ベクトル場の微分を特定の曲線に沿って積分することに相当する。

ベクトル場の微分なのでクリストッフェル記号を含んだ表現の積分になる。

## 平行移動と測地線

ある曲線に沿って接ベクトルが移動したときに、平行が保たれるような曲線が測地線。





# 曲率

ぐるりと平行移動して元の位置に戻ってくると、同じはずのベクトルが重ならない。

そのぐるりを極限まで小さくしても、重ならなさ、がある。それが曲率。

ぐるりを2つの微小ベクトルで$d \vec{x_1}, d \vec{x_2}, -d \vec{x_1}, -d \vec{x_2}$の平行四辺形で表せば、


ある基底ベクトルが、2つの基底ベクトルによる平行四辺形についてぐるりと回ったときに、特定の基底ベクトルについてどれくらいずれるか、を定量するために、都合、4つの基底ベクトルが必要。

これが、曲率テンソルのランクが4である理由。

リーマン曲率テンソルは、計量テンソルとその1階、2階微分だけから作成することができ、2階の微分が線形であるような、唯一のテンソルだという。

そういう意味で、曲がった空間の局所の不変量。

テンソルの添え字の上げ下げ処理によってリーマン・クリストッフェルテンソルに変換できる。

## Ricci tensor

リッチ曲率テンソルは、リーマン曲率テンソルより要素数が少ない。

「微分幾何学において、リッチ曲率テンソル (Ricci curvature tensor) とは、歪んだリーマン多様体上の測地球の体積がユークリッド空間上の球体からどれだけずれるかを表わす量である。グレゴリオ・リッチ=クルベストロ(英語版)に因んでその名がある。あるリーマン計量が与えられたとき、その記述する幾何が通常の n 次元ユークリッド空間からどれだけ違うか表わす尺度として使うことができる。」(Wikipedia リッチテンソル より)

曲がった空間において、周囲すべてに測地線的に移動すると、球のようなものができあがる。

測地線は、まっすぐな空間の場合と曲がった空間の場合とでずれるが、そのずれというのは、平行四辺形でぐるりと回ったときのずれと関係のある値になるから、そのずれをすべての方向について評価することで、ぐるりと廻って帰るときのずれの積分と、測地球の体積の正球からのずれとが同じような値になる。

そのような量は、どちら向きの基底ベクトルをどちら向きでのずれについて評価するかによって算出できるから、次元のペア分だけスカラー値として得られる。


これが、リッチ曲率テンソル



----------------
ここから先は、本当に、メモ

## 空間にあるもの

### 3次元空間で考える

今、3次元空間を基準とすると、次のようになる。

3次元空間が広がっている。正規直行基底を選ぶと、きれいにまっすぐによじれることなく広がっている。

そこに、曲面が置かれている。
曲面には点があり、
曲面上のすべての点にはスカラー値とベクトルとが乗っていて、
スカラー値は曲面上で微分可能。

スカラー値の微分はベクトルで、それは、その点での接空間(接面)に含まれるベクトルである。

ベクトルは各点の接空間(接面)に含まれるベクトルであって、
そのベクトルは、曲面上で微分可能。
曲面上のベクトルの微分は、ある方向(この方向は接空間内のある方向)への微分であって、ベクトルである。
この微分して生じるベクトルは接空間に含まれない(含まれるのは、曲面が平らである特殊な部分で、のみ)### 2次元曲面しかないものとして考える、双対空間が必要になる

2次元空間が広がっている。ただし、この2次元空間は曲がっている。
この曲がった2次元曲面上に点がある。
点にはスカラー値が乗っていて、それはスカラー場を作っている。
スカラー場は曲面に沿って微分することができて、その微分はベクトルである。
このベクトルは接空間に含まれる。

点にはベクトルが乗っていて、ベクトル場を作っている。
曲面に乗っているベクトル場は、曲面上のある方向に沿って微分することができて、その微分はベクトルである。
このベクトルは接空間に含まれない(含まれるのは、曲面が平らである特殊な部分で、のみ)。

接空間は曲面から飛び出しているのだが、そのことを無視すれば、曲面の中にあると考えざるを得ない。

接空間中のベクトルはこのように曲面内とみなせるが、接空間にも含まれないベクトルは、どうしようもない。

2次元曲面のみしか存在しない世界では、接空間に入らないベクトルは、別の世界の存在とみなす必要がある。

この別世界が、双対空間。

この双対空間とそこにあるベクトルを使う方法がある。
双対空間のベクトルを1形式と呼んで、この世のベクトルと区別して呼び分けることもできる。

## テンソル

2次元曲面 (in 3次元空間) 上のテンソルを考える。

まず、点 $x$がある。

点にはベクトル$x$ の周囲の曲面上の点について$x$に極限まで近づけると、
$x$自身からその極限に近い点の方向にベクトルがある。

接平面にあるベクトルとも見えるし、無限小なら、曲面自体に乗っている。
それが$d \vec{x}$、でその集合が接平面を作る。

曲がっている空間では、ベクトルの長さというものが自明ではないので、それを定める必要がある。
ベクトルの長さは、ベクトルとそれ自身との内積なので、内積を定義する必要があるとも言い換えられる。


内積を定義するには、2つのベクトルをとる関数 $g(\vec{a},\vec{b})$を定義すればよい。

今、この$g(\vec{a},\vec{b}) = g(\vec{a},.)\vec{b}$と形式的に書きかえると、

$g(\vec{a},.)$というモノが現れる。

これを$\tilde{a} = g(\vec{a},.)$




この

点、ベクトル、テンソル。
これらはすべてテンソル。

多様体上には、点、ベクトル、テンソルの場。すべてテンソルの場。

テンソルの場には、それの変化具合(微分)もあり、それは、多様体上(多様体に沿って)のテンソルの場。


共変ベクトル・反変ベクトル。ベクトル・1形式。

例えば共変ベクトルは一次微分形式として説明できるし、あるいは反変ベクトル空間の双対空間の元として説明することもできる。

ベクトルと1形式。それが作るテンソル。
変換ルールがあるので、1形式がないかのように扱うこともできる。



## ベクトルとベクトルの「要素」

ベクトルは向きと大きさを持つ実体。

それを基底の線形和で表したときに「要素」のセットが現れる。

ベクトル自体はいつもある。「要素」は座標系を定めたときに初めて現れ、
座標系を変えると変化する。