リーマンからアインシュタインへ

[size=150][b]このワークシートは[url=https://www.geogebra.org/m/twxxx3yq]Math by Code[/url]の一部です。[br][/b][/size][size=150][size=100][br]アリも人間も平坦な道をまっすぐすすんでいるときは、世界はまっすぐでできている[br]と感じているでしょう。でも、その距離が伸びていくと地面の曲がりを補正する必要が出てきます。[br][br]今回は、曲面の曲がりを見失うという局所的な視点を抜け出して、曲面の曲がり具合を読み取り、[br]大局的な物理量を知るための数学の道具(曲面での微分)を探ってみよう。[/size][/size]
2次元曲面を平行移動するベクトル
1.クリストッフェル記号に親しもう
[b][color=#0000ff]複雑な仕組みを学ぶときは、一般や原理から入るよりも道具や具体から入る方が[br]イメージがわきやすくなることがある。[br]そこで、ベクトル、テンソルの変化を調べるための便利な道具、偏微分を使った関数から入ってみよう。[br][br]ベクトル解析[/color][/b]では、grad,div,rotなど、[color=#0000ff][b]ベクトルの成分を変数varsで偏微分する[/b]関数[/color]があったね。[br]コードでかくと、[br]import numpy as np[br]from sympy import symbols, diff,Matrix[br][br]f,x,y,z,r,t ,u,v,vx,vy,vz= symbols('f x y z r t u v vx vy vz')[br]def grad(w,[b]vars[/b]): #スカラー場wの勾配はベクトル[br] return Matrix([[b]diff[/b](w, i) for i in [b]vars[/b]])[br]def div(v,[b]vars[/b]): #ベクトル場vの発散はスカラー[br] return sum([[b]diff[/b](v[i],[b]vars[/b][i]) for i in range(len([b]vars[/b]))])[br]def laplacian(w,[b]vars[/b]):#ラプラシアンはスカラー場からスカラーへ[br] return div(grad(w,[b]vars[/b]),[b]vars[/b])[br]def rot(F, vars):#回転はcurlとすることが多い。日本ではrot[br] Fx,Fy,Fz = F[br] x,y,z = [b]vars[/b][br] return Matrix([[b]diff[/b](Fz,y) - [b]diff[/b](Fy,z),[b]diff[/b](Fx,z) - [b]diff[/b](Fz,x),[b]diff[/b](Fy,x) - [b]diff[/b](Fx,y)])[br]vars= [x,y,z] [br]などがあった。[br][br][b][color=#0000ff]テンソル解析[/color][/b]でも、[b][color=#0000ff]テンソルGの成分を変数varsで偏微分する[/color][/b]ことは大切だ。[br]その土台になる関数は[br][br]第1種クリストッフェル記号[b]Γ[sub]ijk[/sub]、略してクリ1、コード上はChr1(i,j,k,G)[/b][br]第2種クリストッフェル記号[b]Γ[sup]i[/sup][sub]jk[/sub]、略してクリ2、コード上はChr2(i,j,k,G)[/b][br][br]の2つがあるね。[br][br][b][size=150]<クリ1>[/size][/b][br]クリ1の対象となるテンソルは2軸で、型は(2,2),(3,3),....などの正方行列になる。[br]そのサイズ2,3,....はdim=len(vars)などとして、可変にしておく。[br]たとえば、dim=3の場合、vars=[x,y,z]でも、vars=[x[sup]1[/sup],x[sup]2[/sup],x[sup]3[/sup]]でも、vars=[r,θ,φ]でも同じことだ。[br]クリ1自身は3軸あるので、Chr1(i,j,k,G)の3軸i,j,kともにサイズがdimとなるね。[br]ということは、クリ1の指定は全部で、[b]dimの3乗通りある[/b]ことなる。[br]テキストでは[br][color=#0000ff][b][size=200]Γ[sub]ijk[/sub]=1/2(∂/∂x[sup]i[/sup](G_jk)+∂/∂x[sup]j[/sup](G_ki)-∂/∂x[sup]k[/sup](G_ij))[br][/size][/b][/color]のように書いてあることが多い。[br]例を作るとわかりやすくなる。[br]たとえばvars=[x[sup]1[/sup],x[sup]2[/sup],x[sup]3[/sup]]とすると、i,j,kは1スタートの番号1,2,3のどれかという意味でしかない。[br]i,jが同じなったり、i,j,kともに同じ数字にあっても全然問題ない。[br]Chr1(1,2,3,G)=1/2(diff(G[2,3],x[sup]1[/sup])+diff(G[3,1],x[sup]2[/sup])-diff(G[1,2],x[sup]3[/sup]))[br]Chr1(1,2,2,G)=1/2(diff(G[2,2],x[sup]1[/sup])+diff(G[2,1],x[sup]2[/sup])-diff(G[1,2],x[sup]2[/sup]))[br]Chr1(2,2,2,G)=1/2(diff(G[2,2],x[sup]2[/sup])+diff(G[2,2],x[sup]2[/sup])-diff(G[2,2],x[sup]2[/sup]))[br]G_mnは[b]計量テンソル[/b]なので、基底ベクトルの内積だから、[b]対称行列[/b]になるね。[br]すると、クリ1の定義がi,j,kのサイクリックな式になっているけれど、G_mnのmnは入れ替えても同じだ。[br]さらに、G_mnが[b]直交[/b]座標系の計量なら、m≠nのときは0になる。[br]これを使うと、[br]Chr1(1,2,3,G)=1/2(diff(G[2,3],x[sup]1[/sup])+diff(G[3,1],x[sup]2[/sup])-diff(G[1,2],x[sup]3[/sup]))=1/2(0+0+0)=0[br]Chr1(1,2,2,G)=1/2(diff(G[2,2],x[sup]1[/sup])+diff(G[2,1],x[sup]2[/sup])-diff(G[1,2],x[sup]2[/sup]))=1/2(diff(G[2,2],x[sup]1[/sup])[br]Chr1(2,2,2,G)=1/2(diff(G[2,2],x[sup]2[/sup])+diff(G[2,2],x[sup]2[/sup])-diff(G[2,2],x[sup]2[/sup]))=1/2(diff(G[2,2],x[sup]2[/sup])[br]となるね。[br]これら、3の3乗=27個のデータのかたまりクリ1は3次元データなので、プログラミング上はテンソルと言えるけれど、数学的には[b]テンソル則(積、商、変換)[/b]が適用できないので、テンソルとは言いません。[br]座標系の基底の関係を表す「計量テンソル」を網羅的に偏微分することで、「[b]座標系のメモリのゆがみ、勾配[/b]」をデータ化できてます。[br]番号の位置に着目すると、先頭の2つの添え字は交換可能だね。[size=200][b]Γ[/b][b]ijk[/b]=[/size][b][size=200]Γ[sub]jik[/sub][/size][/b][br][br][color=#9900ff][b][size=150][u]課題:クリ1を求めるコードはどうやればできますか。[br][/u][/size][/b][/color][br]i,j,kがvarsの順番をさす、1スタートの数だけれど、配列のインデックスは0スタートなので、[br]順番がnのときvars[n-1]となることに注意しよう。[br]また、次元を可変にするために、dim=len(vars)などを使うといいね。[br][IN]Python[br]#=====================================================[br]import sympy as sp[br]from sympy import symbols, sin, cos, Matrix, simplify, diag,diff[br][br][b]#第一種クリストッフェル記号[br]def Chr1(i,j,k,M):[br] i=i-1;j=j-1;k=k-1[br] di = diff(M[j,k],xs[i])[br] dj = diff(M[k,i],xs[j])[br] dk = diff(M[i,j],xs[k])[br] res = 1/2*(di+dj-dk)[br] #Mはメトリックテンソルg_mnの行列[br] return res[br][/b]# 変数[br]x, y, z, u, v = symbols('x y z u v')[br]xs = Matrix([x,y,z])[br]M = Matrix([[1,0,0],[0,x**2,0],[0,0,x**2*(sin(y))**2]])[br]print("球座標の計量テンソルg_mn:")[br]display(M)[br][b]dim = len(xs)[br]K_ijkM=[f"Γ{i}{j}{k} = {Chr1(i,j,k,M)}" for i in range(1,dim+1) for j in range(1,dim+1) for k in range(1,dim+1)][br][/b]for item in K_ijkM:[br] print(item)[br][OUT][br]#===================================================[br]Γ111 = 0[br]Γ112 = 0[br]Γ113 = 0[br]Γ121 = 0[br]Γ122 = 1.0*x[br]Γ123 = 0[br]Γ131 = 0[br]Γ132 = 0[br]Γ133 = 1.0*x*sin(y)**2[br]Γ211 = 0[br]Γ212 = 1.0*x[br]Γ213 = 0[br]Γ221 = -1.0*x[br]Γ222 = 0[br]Γ223 = 0[br]Γ231 = 0[br]Γ232 = 0[br]Γ233 = 1.0*x**2*sin(y)*cos(y)[br]Γ311 = 0[br]Γ312 = 0[br]Γ313 = 1.0*x*sin(y)**2[br]Γ321 = 0[br]Γ322 = 0[br]Γ323 = 1.0*x**2*sin(y)*cos(y)[br]Γ331 = -1.0*x*sin(y)**2[br]Γ332 = -1.0*x**2*sin(y)*cos(y)[br]Γ333 = 0[br]
[b][size=150]<クリ2>[br][/size][/b][br]クリ1と計量テンソルG_mnの逆行列G^mnを使った積との和、[b]微分の積和[/b]の構造によって、[br]「[b]変化の集計、ズレの大きさ[/b]」という視点で座標系のゆがみをつかまえるためにクリ2があります。[br]クリ2もdimの3乗個のデータでできてます。その点から別の点へいくときの基底と基底のつながり・ゆがみを求めているので、「テンソルではなく[b]接続(係数)[/b]」と呼ばれています。[br][br]テキストでは[br][size=200][color=#0000ff]Γ[/color][sup]i[/sup][sub]jk[/sub][color=#0000ff]=Σ[/color][sub][color=#ff0000]r[/color][/sub][color=#0000ff] g[/color][sup][color=#0000ff]i[/color][color=#ff0000]r [/color][/sup][color=#0000ff]([/color][size=200][color=#0000ff]Γ[/color][sub][color=#0000ff]jk[/color][color=#ff0000]r[/color][/sub][color=#0000ff])[br][/color][/size][color=#0000ff][size=100]dim=3ならば、[br][/size][/color][/size][size=150][color=#0000ff]Γ[/color][sup]i[/sup][sub]jk[/sub][color=#0000ff]=[/color][color=#0000ff]g[/color][sup][color=#0000ff]i[/color][color=#ff0000]1[/color][/sup][/size][sup][color=#ff0000] [/color][/sup][size=100][size=200][size=150][color=#0000ff]Γ[/color][color=#0000ff][sub]jk[/sub][/color][color=#ff0000][sub]1[/sub]+[size=150][color=#0000ff]g[/color][sup][color=#0000ff]i[/color]2[/sup][/size][sup][color=#ff0000] [/color][/sup][size=100][size=200][size=150][color=#0000ff]Γ[sub]jk[/sub][/color][sub]2[/sub][color=#ff0000]+[/color][/size][/size][/size][size=150][color=#0000ff]g[/color][sup][color=#0000ff]i[/color][color=#ff0000]3[/color][/sup][/size][sup][color=#ff0000] [/color][/sup][size=100][size=200][size=150][color=#0000ff]Γ[/color][sub][color=#0000ff]jk[/color][color=#ff0000]3[/color][/sub][/size][/size][/size][/color][/size][/size][/size]ということです。[br][br]クリ2の下つきの2添え字は、クリ1の先頭の2添え字と同じなので、入れ替え可能だとわかるね。[br]つまり、[b][color=#0000ff]Γ[/color][sup]i[/sup][sub]jk[/sub][color=#0000ff]=Γ[/color][sup]i[/sup][sub]kj[br][/sub][/b][color=#9900ff][b][size=150][u][br][br]課題:クリ2を求めるコードはどうやればできますか。[br][/u][/size][/b][/color][br]dim=len(vars)などを使うといいね。[br]クリ1とセットにして使えば、Pythonのカーネルをクリアしたあとに、[br]部分的にセルが使えるね。[br][IN]Python[br]import sympy as sp[br]from sympy import symbols, sin, cos, Matrix, simplify, diag,diff[br]#第2種Chr2(i,j,k,M)=Γ^i_jkは第1種Chr(j,k,i,M)に対して3番目の変数iを使ったg^ir*Chr(j,k,r,M)のrを動かした和になる。[br]#第一種クリストッフェル記号[br]def Chr1(i,j,k,M):[br] i=i-1;j=j-1;k=k-1[br] di = diff(M[j,k],xs[i])[br] dj = diff(M[k,i],xs[j])[br] dk = diff(M[i,j],xs[k])[br] res = 1/2*(di+dj-dk)[br] #Mはメトリックテンソルg_mnの行列[br] return res[br]#第2種クリストッフェル記号[br][b]def Chr2(i,j,k,M):[br] g_ir = M.inv()[br] res=0[br] #行列には0スタートで渡し、記号には1スタートで渡す[br] for r in range(dim):[br] res += g_ir[i-1,r]*Chr1(j,k,r+1,M)[br] return res[br][/b]# 変数[br]x, y, z, u, v = symbols('x y z u v')[br]xs = Matrix([x,y])[br]M = Matrix([[1,0],[0,x**2]])[br]print("極座標の計量テンソルg_mn:")[br]display(M)[br][b]dim = len(xs)[br]K2_ijkM=[f"Γ^{i}_{j}{k} = {Chr2(i,j,k,M)}" for i in range(1,dim+1) for j in range(1,dim+1) for k in range(1,dim+1)][br][/b]for item in K2_ijkM:[br] print(item)[br]#====================================================[br][OUT][br]極座標の計量テンソルg_mn:[br]Γ^1_11 = 0[br]Γ^1_12 = 0[br]Γ^1_21 = 0[br]Γ^1_22 = -1.0*x[br]Γ^2_11 = 0[br]Γ^2_12 = 1.0/x[br]Γ^2_21 = 1.0/x[br]Γ^2_22 = 0
2.クリストッフェルから共変微分へ
[b][size=150]<ベクトルの平行移動>[/size][/b][size=150][b][sub][/sub][/b][/size][br]ベクトルがある世界に制限がなければ、平行移動してもベクトルは変わらないね。[br]でも、ベクトルの始点を時空の世界に制限すると、平行移動の意味が変わる。[br]たとえば、地球の表面をはなれないようにベクトルAをxからまで(x+dx)まで進む。[br][b][color=#0000ff]表面だけの世界では2つのベクトルは「平行」と見られる[/color][/b]ので、[b]平行成分をA||[/b]とかく。[br]しかし、始点を合わせるとA(x)とずれが終点にできる。この[b]垂直な補正成分をA⊥[/b]とかく。[br]つまり、細かくかくと、A(x)=表面にそったベクトル+ベクトルの終点のズレベクトル[br]=A||(x->x+dx)+A⊥(x->x+dx)となるね。[br][br]これは、基底ベクトルe[sub]m[/sub]をx+dxからxに戻したときのようすを図にかくと、[sub][br][/sub]e[sub]m[/sub](x + dx) = e||[sub]m[/sub](x + dx → x) (平行成分)+ e⊥[sub]m[/sub](x + dx → x)(垂直成分)[sub][br][/sub]表面が曲がっているので、ベクトルはもとのベクトルからずれる。[br]それを調整するためのものが必要になる。[br]基底ベクトル e[sub]m[/sub] を x[sup]k[/sup] 方向に動かしたとき、それは元の基底 e[sub]n[/sub]たちの線形結合でどう表されるか?[br]e||[sub]m[/sub](x + dx → x) = e[sub]m[/sub](x) + dx[sup]k [/sup][b]∂/∂x[sup]k[/sup](e[sub]m[/sub]) [/b][br]        = e[sub]m[/sub](x) + dx[sup]k [/sup][b]Γ[sup]n[/sup][sub]km [/sub]e[sub]n[/sub](x)[br][/b]とできる。[br][color=#0000ff][b]Γ[sup]n[/sup][sub]km[/sub]を(アフィン)接続係数[/b][/color]という。[br]これはさっきやった第2種クリストッフェル記号、クリ2だね。[br][br]クリ2は3軸で、3次元ならば3つの 基底e[sub]n[/sub](x)それぞれにかけ算する係数になっている。[br]3次元ならば、3つのどの基底を、3つのどの方向に動かし、それが3つのどの基底成分に影響するのか?[br][b]Γ[sup]n[/sup][sub]km[/sub][/b]はそのすべての27個の係数により、あらゆる『ねじれ』のパターンを網羅している、基底の線形結合の係数になっている。だから、接続係数と呼ばれているんだね。[br][b]nは影響を受ける基底、m は動かす基底、kが動かす方向を表す。[/b]
[size=150][size=100]変数x[sup]k[/sup]に関する偏微分の演算子を[br][/size][b][color=#0000ff]∂k[/color][/b]≡: [size=150]∂/[size=150]∂x[sup]k[/sup][/size][/size][size=85][size=100]とかくことがあります。[br][/size][/size][size=100]A[sup]m[/sup][b]がスカラーなら、x[sup]k[/sup]に関する偏微分は[/b]∂kA[sup]m[/sup][br]A[sup]m[/sup][b]がベクトルだと、ベクトルの基底自体が変化する。[br][/b]だから、さっきベクトルの平行移動での基底の微分のときのように補正が必要になる。[br]ベクトルの普通の偏微分の他に、補正をした微分を[b]共変微分[/b]という。[br][/size][b]<反変ベクトル>[br][/b][/size]ベクトルA=A[sup]m[/sup][b]e[/b][sub]m[/sub]をx[sub]k[/sub]方向に[b]微分[/b]すると、積の微分法則から、[br]∇[sub]k[/sub][b]A[/b]=(∇[sub]k[/sub]A[sup]m[/sup])[b]e[/b][sub]m[/sub]+A[sup]m[/sup](∇[sub]k[/sub][b]e[/b][sub]m[/sub][sup] [/sup]) =(A[sup]m[/sup],k+[b][color=#0000ff]Γ[sup]m[/sup][sub]kn[/sub][/color][/b]A[sup]n[/sup])[b]e[/b][sub]m[/sub][sup] [/sup]=A[sup]m[/sup],k[b]e[/b][sub]m[/sub][sup][br][/sup]成分だけかくと、A[sup]m[/sup],k = A[sup]m[/sup],k+[b][color=#0000ff]Γ[sup]m[/sup][sub]nk[/sub][/color][/b]A[sup]n[/sup] [br]反変ベクトルの共変微分という。[br]つまり、座標系(x[sub]m[/sub])の反変ベクトル[b]A[/b]=(A[sup]n[/sup])のx[sup][color=#ff0000]k[/color][/sup]に関する共変微分はテンソルとなる。[br][b]▽k A[sup]m[/sup]=∂[color=#ff0000]k[/color]A[sup]m[/sup] + Γ[sup]m[/sup][sub][color=#00ff00]n[/color][color=#ff0000]k[/color][/sub] A[sup][color=#00ff00]n[/color][br][/sup][/b][size=85][size=100]反変ベクトルの共変微分をとする書き方も[b]ありますね。[/b][br][/size][/size][color=#0000ff][b]A[/b][sup]m[/sup][sub];k[/sub][/color][size=150]≡: [b]▽k A[sup]m[/sup][/b][/size][br][size=85][size=100]この場合は、反変ベクトルの普通の偏微分を[br][/size][/size][color=#0000ff][b]A[/b][sup]m[/sup][sub],k[/sub][/color][size=150]≡: [/size] [size=150]∂k([/size]A[sup]m[/sup])[size=100]ともかいて区別したりします。[br]しかし、テキストによっては、微分も共変微分も両方[color=#0000ff][b]A[/b][sup]m[/sup][sub],k[/sub][/color][/size]で表すものもある。文脈で判断する。[size=100][br]では、実際にどのように計算するのでしょうか。第2項の共通軸はnですから3次元ならば、n=1,2,3です。[br][/size][b]▽k A[sup]m[/sup]=∂[color=#ff0000]k[/color]A[sup]m[/sup] +[/b][size=150]Γ[sup]m[/sup][sub]1[color=#ff0000]k[/color][/sub] A[sup]1[/sup]+Γ[sup]m[/sup][sub]2[color=#ff0000]k[/color][/sub] A[sup]2[/sup]+Γ[sup]m[/sup][sub]3[color=#ff0000]k[/color][/sub] A[sup]3[/sup][size=100]となり、㎞を指定した微分になります。[br][/size][size=100][color=#0000ff]クリ2でm番の基底が、k番目の基底をベクトルの成分を1,2,3の方向に動かした影響を加えています。[br][/color][/size][size=100]その調整によって、座標系のゆがみが取り除かれて、座標変換できる物理量、テンソルになったのです。[br][/size][b][br]<共変ベクトル>[br][/b][/size] A[sup]ν[/sup] と B[sub]ν[/sub] を共にベクトルとすると A[sup]ν[/sup] B[sub]ν[/sub] はスカラーだから∇µ(A[sup]ν[/sup] B[sub]ν[/sub]) = ∂µ(A[sup]ν[/sup] B[sub]ν[/sub])。[br]左辺=(∂µA[sup]ν[/sup] + Γ[sup]ν[/sup][sub]λµ[/sub]Aλ)B[sub]ν[/sub][sub][/sub] + A[sup]ν[/sup] ∇µB[sub]ν[/sub] [br]右辺= (∂µA[sup]ν[/sup] )B[sub]ν[/sub] + A[sup]ν[/sup] ∂µB[sub]ν[/sub] [br]式変形により、∇µB[sub]λ[/sub] = ∂µB[sub]λ[/sub] − Γ[sup]ν[/sup][sub]λµ[/sub]B[sub]ν[/sub] [br]つまり、座標系(x[sup]m[/sup])の共変ベクトル[b]A[/b]=(A[sub]m[/sub])のx[sup][color=#ff0000]k[/color][/sup]に関する共変微分はテンソルとなる。[br][b]▽k A[sub]m[/sub]=∂[color=#ff0000]k[/color]A[sub]m[/sub] ー Γ[sup][color=#00ff00]n[/color][/sup][sub]m[color=#ff0000]k[/color][/sub] A[sub][color=#00ff00]n[/color][/sub][sup][br][/sup][/b][size=100]では、実際にどのように計算するのでしょうか。第2項の共通軸はnですから3次元ならば、n=1,2,3です。[br][/size][b]▽k A[sub]m[/sub]=∂[color=#ff0000]k[/color]A[sub]m[/sub] ー[/b]([size=150]Γ[sup]1[/sup][sub]m[color=#ff0000]k[/color][/sub] A[sub]1[/sub]+Γ[sup]2[/sup][sub]m[color=#ff0000]k[/color][/sub] A[sub]2[/sub]+Γ[sup]3[/sup][sub]m[color=#ff0000]k[/color][/sub] A[sub]3[/sub])[b]となり、㎞を指定した微分になります。[br][/b][/size][b][color=#0000ff]クリ2でベクトルの基底1,2,3が、k番の基底をmの方向に動かした影響を差し引いています。[br][/color][/b][br][color=#9900ff][b][size=150][u]課題:共変微分をコードで実現するにはどうしたらよいでしょうか。[br][/u][/size][/b][/color][br]ベクトルの普通の微分に対して、クリ2の合計をたしひきするようにすればよいですね。[br]上記のクリ1、クリ2をかいたセルに下におくか、[br]同じプログラムコードの中におきましょう。[br][IN]Python[br]#============================================[br]def CovariantDiff_Up(m, k, A_up, M):[br] """反変ベクトル A^m の座標 k による共変微分"""[br] # 1. 普通の偏微分[br] res = diff(A_up[m-1], xs[k-1])[br] # 2. クリストッフェル項(接続による補正)を足す[br] for n in range(1, dim + 1):[br] res += Chr2(m, n, k, M) * A_up[n-1][br] return simplify(res)[br][br]def CovariantDiff_Down(m, k, A_down, M):[br] """共変ベクトル A_m の座標 k による共変微分"""[br] # 1. 普通の偏微分[br] res = diff(A_down[m-1], xs[k-1])[br] # 2. クリストッフェル項(接続による補正)を引く[br] for n in range(1, dim + 1):[br] res -= Chr2(n, m, k, M) * A_down[n-1][br] return simplify(res)
3.曲率のテンソル
[size=150][b]<絶対微分から測地線へ>[br][color=#0000ff][size=100]共変微分は局所的な点の近くでの微分でした。[br]それを曲線にそって動かしたときの微分を[u]絶対微分[/u]といいます。[br]絶対微分にも、ふつうの微分に加えて、クリ2を使った補正項がつきますね。[br][/size][/color][br][/b][size=100]反変ベクトル[b]T[/b][sup]i[/sup]のrによる共変微分[b]T[/b][sup]i[/sup];rと曲線C:x[sup]i[/sup]=x[sup]i[/sup](t)の接ベクトル(dx[sup]r[/sup]/dt)との内積[br]([b]T[/b][sup]i[/sup];r・dx[sup]r[/sup]/dt)は[b]T[/b][sup]i[/sup]と同じ型のテンソルで、[/size][/size][b][size=150][u]曲線Cにそう絶対微分[/u][/size][/b][size=150][size=100]といい、[br][b]T[/b][sup]i[/sup]=[b]T[/b][sup]i[/sup](x(t))とするとき、[/size][/size][b][color=#0000ff](δT[sup]i[/sup]/[/color][/b][b][color=#0000ff]δt)[/color][/b][size=150][size=100]≡:(d[b]T[/b][sup]i[/sup]/dt + Γ[sup]i[/sup][sub]rs[/sub] [b]T[/b][sup]r[/sup] dx[sup]s[/sup]/dt) とかく。[br][br]たとえば、直交座標系の加速度ベクトルは、位置ベクトルx={xi(t)}の2階微分d[sup]2[/sup]xi/dt[sup]2[/sup]。[br]tにおける距離はa=sqrt(δ[sub]ij[/sub] a[sup]i[/sup]a[sup]j[/sup])。[br]一般座標の[b]加速度[/b]は、 [math]\text{\frac{\delta}{\delta t}(\frac{dx^i}{dt}) = (\frac{d^2x^i}{dt^2} +Γ^i_{rs} \frac{dx^r}{dt}\frac{dx^s}{dt})}[/math] a=[math]\sqrt{|g_{ij}a^ia^j|}[/math] [br][br]おもしろいことに、tを弧長sに変えた式が曲率を表す。[br]一般座標の[b]曲率[/b]は、 [math]\text{\frac{\delta}{\delta t}(\frac{dx^i}{ds}) = (\frac{d^2x^i}{ds^2} +Γ^i_{rs} \frac{dx^r}{ds}\frac{dx^s}{ds})}[/math] b=[math]\sqrt{|g_{ij}b^ib^j|}[/math] [br][/size][b][color=#0000ff][br]その時空で曲がってない線が[u]測地線(その時空の直線)[/u]だから、[br][u]測地線の方程式は曲率=0[/u]となるはず。[br][br][/color]つまり、[/b][/size] [math] \frac{d^2x^i}{ds^2} +Γ^i_{rs} \frac{dx^r}{ds}\frac{dx^s}{ds}=0[/math] ([size=150]i=1,2,...,n)[b][br][br]<曲率テンソル>[br][size=100][color=#0000ff]さて、曲率と言えば外せないものがあります。[br]それは、リーマンテンソル(リーマンの曲率テンソル)です。[br]ここでも、クリ2が大活躍しますよ。[br][/color][/size][br][/b][/size]リーマン幾何学では、大局的な平行の概念は存在しない。[br]リーマンの[b]曲率テンソル[/b]は、[br][b]R[sup]n[/sup]m,kl [/b]= (∂kΓ[sup]n[/sup]lm + Γ[sup]n[/sup]ki Γ[sup]i[/sup]lm) − (∂lΓ[sup]n[/sup]km + Γ[sup]n[/sup]li Γ[sup]i[/sup]km)[br]4軸なので、4元では4の4乗の256個のデータで時空の曲がりを表現しているのです。[br]その重いデータをコンパクトにしたものがあります。[br][br]まず、曲率テンソルを次のように縮約したテンソル、いわゆる[b]リッチテンソル[/b]があります。[br][b]R[sub]ml[/sub] [/b]= R[sup]k[/sup][sub]m,kl[br][/sub]まだ2軸なので、4の2乗で16個のデータがあります。[br][br]さらに、これを縮約したものが[b]スカラー曲率です。1個のデータです。ちょっと軽すぎか?[/b][br][b]R[/b] = g[sup]ml[/sup] R[sub]ml[/sub] = g[sup]ml[/sup] R[sup]k[/sup][sub]m,kl[br][/sub][sub][br][/sub]さらに、[b]アインシュタインはこの材料から美味しいテンソルを作りました[/b]。[sub][br][/sub][b]G[sub]ij = [/sub]R[sub]ij [/sub]−1/2g[sub]ij [/sub]R[br][color=#0000ff]これがアインシュタインテンソルです。[br][/color][/b][br]種類が多いですが、流れとしてはこうです。[br]リーマンで[b]全方向[/b]しらべたものをリッチテンソルで[b]1方向[/b]につぶし、スカラーで[b]数値にして単純化[/b]した。[br]最終的にアインシュタインが[b]エネルギー保存則(ΔGij=0)[/b]が成り立つように、曲率を集大成した。[br]ということです。[br][br][color=#0000ff]アインシュタインテンソルという[b][u]幾何学的な量が不変[/u][/b]であることが、[br][b][u]エネルギーの保存則[/u][/b]を表しているというは、おもしろいね。[br][/color][br]計算は省略しますが、ビアンキの恒等式(R[sup]i[/sup]jkl;m+R[sup]i[/sup]jlm;k+R[sup]i[/sup]jmk;l=0)を2回縮約して、計量テンソルの共変微分が0という事実を使うと、アインシュタインテンソルの発散が0になることがわかる。

Information: リーマンからアインシュタインへ