基本解近似法によるクラドニ図形の計算

基本解近似法は、日本語文献だと、代用電荷法の方が通りがいいっぽい。理由としては、日本語の唯一の成書
代用電荷法とその応用 : 境界値問題の半解析的近似解法
http://webcatplus.nii.ac.jp/webcatplus/details/book/ncid/BN0003658X.html
が、代用電荷法と呼んでるからだと思う。けど、別に、電気工学に限った方法というわけではないので、もうちょっと分野非依存的な名前の方が好ましい。英語文献では、method of fundamental solution(略して、MFS)の方が良く使われてるっぽくて、直訳すると、"基本解の方法"とかだけど、日本語としては、なんか違和感があるので、基本解近似法と呼んでおく。

名前の違いは、独立した考案者が存在したせいらしく、数学の文献では Kupradze and Aleksidze (1964),電気工学の文献ではSteinbiegler (1969,学位論文)により提唱されたらしい。

元々は、ユークリッド空間内の(有界とは限らない)真部分領域上のポテンシャル問題の高速解法として提案されたっぽい。問題の解を、外部領域にソースがある基本解の線形和で表し(従って、内部領域と境界上では、微分作用素の作用によって消える)、線形結合の係数を境界条件をなるべくよく満たすように決定するという感じの方法。外部領域のどこにソースを置くかは、ユーザが適当に決めるが、普通、境界に近いとこに置く。境界条件は、Dirichlet境界条件、Neumann境界条件、混合型境界条件等どれでもいいけど、これも境界上に複数の代表点(これもユーザが適当に決める)を取って、例えば、Dirichlet境界条件なら、代表点で、境界値を与える関数と一致するという条件を解くというのが、オーソドックスな方法。

ソースを外部領域に配置する都合上、問題領域が、全ユークリッド空間だと使えない。また、基本解が解析的に分かる微分作用素というのは、さほど多いとは言えないというあたりが弱点。

一方、差分法や有限要素法では面倒な非有界領域でも使えるし、有限要素法や境界要素法のように領域をイイ感じに分割しなくてよくて、実装が割と簡単なこと(特殊関数の値からなる行列を作って、適当に解くだけ)が長所。

多分、計算量とかの点では、基本解近似法と境界要素法は似てる部分が多いと思うけど、基本解近似法は、境界要素の分割も必要ない。差分法や有限要素法、そして、SPHのような粒子法は、3次元より大きい次元での計算には、計算量以前にメモリ消費の観点から考えて、適しているとは言えない。粒子法に関しては、かなり粗い離散化も原理的には可能であるが、少なくとも、私の経験上では、有限要素法や差分法と同程度の精度を得るには、同程度のメモリを使う必要がある。

実際上は、3次元より大きい次元での計算が必要になることは通常ない(※)ので、これが凄くありがたいわけではないけれど。

※)例外の一つは、ボルツマン方程式などの輸送方程式で、6次元での計算が必要になる。別の例外は、量子化学で、電子数Nの系を考える場合、(原子核の自由度は分離できるとして)3N次元空間上の波動関数を考える必要がある。量子化学では通常の離散化手法は全く使えず、良い基底で解を展開し、多くの場合、最低固有値のみを計算する(頑張れば、励起状態の計算もできるけど、いずれにせよ、1つか2つの固有値を計算するのが精々)。多分、原子核物理も、同様の困難があるはずだけど、どうしているのかは知らない。これらの分野の計算で、基本解近似法が役に立つことは多分ないけど、いい基底を見つけて展開するというのが、離散化の本命なのかもしれない



基本解近似法をDirichlet固有値問題なんかに適用する場合には、固有関数をHelmholtz方程式の基本解の一次結合として書く。しかし、Helmholtz方程式の基本解は固有値に依存してるので、散乱問題のように連続スペクトルが出る場合はともかく、離散スペクトルを決定するには、境界要素法でDirichlet固有値問題を解く時と同様、Determinant Searchなどをやることになるらしい。


簡単な例として、単位円板D=\{z \in \mathbf{C} | |z|=1 \}上でのLaplacianに対するDirichlet固有値問題
 \Delta \phi = -\lambda \phi
\phi(z)=0 (z \in \partial D)
を考える。よく知られていることとして、この問題の固有値は、第一種Bessel関数の零点の二乗として書ける。第一種Bessel関数の零点を、いくつか掲載すると、以下のようになってる

n=0 n=1 n=2 n=3 n=4 n=5 n=6 n=7
p=1 2.4048 3.8317 5.1356 6.3802 7.5883 8.7715 9.9361 11.0864
p=2 5.5201 7.0156 8.4172 9.7610 11.0647 12.3386 13.5893 14.8213
p=3 8.6537 10.1735 11.6198 13.0152 14.3725 15.7002 17.0038 18.2876
p=4 11.7915 13.3237 14.7960 16.2235 17.6160 18.9801 20.3208 21.6415
p=5 14.9309 16.4706 17.9598 19.4094 20.8269 22.2178 23.5861 24.9439

nはBessel関数の次数で、pは、零点を小さい順に並べた時のランク。100以下の固有値(実際の固有値は、上の表の値を二乗したものであることに注意)は12個出ることが分かる。


基本解近似法に基づく計算を、以下に実装してみた。固有値かどうかの指標として、近似固有関数の(近似)ノルムを見ている。固有値じゃないスペクトルに対応する解は0しかないので、固有値から離れたところで近似解を探しても、ノルムの小さい解しか出ないと期待される。横軸は波数、縦軸は近似ノルムの値で、波数ごとに近似ノルム出してるだけで、具体的な固有値の数値を出す所までやってないけど、適当にピークピッキングするとかすればいいはず。

f:id:m-a-o:20210809122302p:plain

実装の詳細は、色々な方法がありえると思うけど、

The method of fundamental solutions for Helmholtz eigenvalue problems in simply and multiply connected domains
https://doi.org/10.1016/j.enganabound.2005.08.011

を参考にした。k-procedureと書かれてる方法は必須ではないけど、とりあえず使ってみた。論文では、固有値を検索するのに、Algorithm Aというのを書いてあるけど、これは面倒なので実装してない。単に、波数kを一定ステップで刻んで、近似固有関数のノルムを得ている。実装は、以下のような感じ

from scipy.spatial import distance_matrix
from scipy.special import hankel1
import numpy as np
from itertools import product
import matplotlib.pyplot as plt

Ntest=100
U1 = np.random.uniform(size = Ntest)
U2 = np.random.uniform(size = Ntest)
X = np.sqrt(U2) * np.cos(2 * np.pi * U1)
Y = np.sqrt(U2) * np.sin(2 * np.pi * U1)
test_points = np.stack([X,Y]).T

N = 30         #--number of source points
Nc = N*2
R = 1.3
Delta_k = 1.0   #-- used in k-procedure
p_ex = np.array([[10.0 , 10.0]])
boundary_points = np.stack([np.cos(2*np.pi*np.arange(Nc)/Nc) , np.sin(2*np.pi*np.arange(Nc)/Nc)]).T
source_points = np.stack([R*np.cos(2*np.pi*np.arange(N)/N) , R*np.sin(2*np.pi*np.arange(N)/N)]).T

D_test = distance_matrix(test_points , source_points)
D_test_ex = distance_matrix(test_points , p_ex).reshape((Ntest,))
D_ex = distance_matrix(boundary_points , p_ex).reshape((Nc,))
D = distance_matrix(boundary_points , source_points)

Niter = 10000
eps = 0.001
ks = eps*np.arange(1,Niter+1)
values = []
for i in range(1,Niter+1):
   k = i*eps
   w = (1.0j/4)*hankel1(0 , (k+Delta_k)*D_ex)
   G = (1.0j/4)*hankel1(0 , k*D)
   A = np.dot(G.T,G)
   B = np.dot(G.T,w)
   Q = np.linalg.solve(A,-B)
   w_test = (1.0j/4)*hankel1(0 , (k+Delta_k)*D_test_ex)
   G_test = (1.0j/4)*hankel1(0 , k*D_test)
   F = np.linalg.norm( w_test + np.dot(G_test,Q) )
   values.append(F)



plt.plot(ks,np.log(np.array(values)))
plt.show()

厳密な固有関数は
\psi_{np}(r \cos \theta , r\sin \theta) = j_n(\sqrt{\lambda_{n,p}} r) e^{\pm i \theta}
という形であるが、n=0の時は、回転不変で、原点からの距離のみに依存する。例えば、n=0で、k=5.5201の場合、計算された固有関数の値の実部を、原点からの距離の関数としてプロットして、厳密な固有関数のそれ(Bessel関数J_{0}(kr))と比較したグラフは以下のようになった。赤いほうが、厳密な固有関数だけど、ほぼ完全に一致していると言える。


f:id:m-a-o:20210809122421p:plain




同じ著者による似た内容の論文で、
The method of fundamental solutions for eigenproblems with Laplace andbiharmonic operators
https://scholar.google.com/citations?view_op=view_citation&hl=fr&user=TwTH3u8AAAAJ&citation_for_view=TwTH3u8AAAAJ:d1gkVwhDpl0C
では、重調和方程式も試している。

論文では自由端境界条件は扱われてないが、重調和方程式といえば、クラドニ図形なので(?)、クラドニ図形の問題を、基本解近似法で解いてみることにする。

クラドニ図形のことは、以前に、
コンピュータ以前の数値計算(2)20世紀初頭の計算需要
https://m-a-o.hatenablog.com/entry/2020/06/14/170525
の一番最後にも、書いた。方程式の導出は、Sophie GermainとLagrangeが19世紀初頭に行った。

【重調和方程式の導出について】基本的には、板の微小振動の問題なので、現代的な導出としては、弾性体の波動方程式(特に決まった名前が付いてないけど、Wikipediaなどに、Navier-Cauchy方程式という名前があり、歴史的にも妥当な命名らしい)から始めるべきだろう。Sophie Germainの時には、この方程式は、まだ知られてなかった。この世のマクロな物体は、弦、膜、梁、板のいずれも、本来は、3次元物体なので、どういう近似の下で、方程式を二次元空間や一次元空間上の方程式に簡約できるか明確なのが望ましいと思う。一般的な板理論として、Mindlin理論があり、更に近似を導入した板理論として、Kirchhoff–Love板理論がある。これの特別な場合として、重調和方程式が出る。Mindlin理論から、beam theory(梁理論)を出すこともでき、Timoshenko beam theoryや更に近似を導入すると、Euler-Bernoulli beam theoryを導出できる。これらの導出は、適当な工学の教科書を見れば書いてあるが、計算の見通しは、それほど良くない。19世紀〜20世紀初頭にかけて、これらの一次元や二次元の方程式は、三次元の方程式に比べれば扱いやすいという理由で、詳しく調べられた。

正方形板で単純支持境界条件の場合は、Navierが1823年に解を構成したようだ(未確認)が、方程式が書かれてから約100年近く経った1908~1909年頃、正方形板で自由端境界条件を課した場合の数値解を、Ritzが、いくつか計算した。以前は、このRitzの計算をトレースした。Ritzは、49個の基底で張られる関数空間の中で、近似固有関数を探した。当時は、電子計算機もないので、49x49の行列の計算は、手に負えるものではなかったが、対称性を利用して、小さな行列の計算に帰着させ、数値解を求めたと思われる。

基本解近似法で必要な基本解だけど、上の論文では、\Delta^2-k^4=(\Delta+k^2)(\Delta-k^2)と可換な2つの微分作用素の積に分解するので(?)、Helmholtz operatorの基本解とmodified Helmholtz operatorの基本解の線形結合を考えている(従って、ソース点の個数Nに対して、決めるべき係数は、2N個ある)。

Ritzの基底は、境界条件を(厳密に)満たすように作られているのだが、基本解近似法では、逆に、重調和方程式は(厳密に)満たすが、境界条件は満たさないので、境界条件を近似的に満たすような解を探すのが仕事になる。

必要なのは自由端境界条件だけど、導出は意外と面倒で、正しい境界条件は、19世紀半ば頃、Kirchhoffが完成させた。円板のように尖った部分がなければKirchhoffの境界条件でいいけど、正方形板の場合は、四隅の角の境界条件がある(これは、Lambが得たそうだ)。まぁ、そんなわけで、境界条件も色々あるけど、天下り的に受け入れることにする。

計算領域を[-1,+1] \times [-1,+1]として、

x=\pm 1では u_{xx} + \mu \cdot u_{yy} = u_{xxx} + (2-\mu)u_{xyy} = 0

y=\pm 1ではu_{yy} + \mu \cdot u_{xx} = u_{yyy} + (2-\mu)u_{xxy} - 0

コーナーではu_{xy}=0

境界条件


数値計算された固有値は、

Chladni Figures and the Tacoma Bridge: Motivating PDE Eigenvalue Problems via Vibrating Plates
https://doi.org/10.1137/10081931X

のFigure4.1の数値を信じることにする(固有値は、波数kの4乗であるのを忘れないこと)。

残念ながら、基本解近似法では、全く正しい答えが出なかった。

f:id:m-a-o:20210809121355p:plain

うまくいかない理由は、よく分からない(というか、そもそも一般的に、基本解近似法がうまくいく理由も、よく分からないが)。実装ミスってことは、ないと思うけど、上のDirichlet固有値問題と比べると、こっちは、そもそも境界条件の近似が、あんまりよくないように見える。そもそも、上の例と違って、 k \to 0に近づくにつれて、近似ノルムが発散するっぽいし、ピークも全然シャープじゃない

一応、実装を貼っておく

import sympy
from scipy.special import hankel1,kn
from scipy.spatial import distance_matrix
from numpy import sqrt
import numpy as np
import matplotlib.pyplot as plt

besselk = kn
x,y,x0,y0,kk=sympy.symbols("x,y,x0,y0,kk")
F1 = sympy.hankel1(0 , kk*sympy.sqrt((x-x0)**2 + (y-y0)**2))
F2 = sympy.besselk(0 , kk*sympy.sqrt((x-x0)**2 + (y-y0)**2))
F1_xx = sympy.simplify(F1.diff(x).diff(x))
F1_xxx = sympy.simplify(F1_xx.diff(x))
F1_yy = sympy.simplify(F1.diff(y).diff(y))
F1_yyy = sympy.simplify(F1_yy.diff(y))
F1_xxy = sympy.simplify(F1_xx.diff(y))
F1_xy = sympy.simplify(F1.diff(x).diff(y))
F1_xyy = sympy.simplify(F1_xy.diff(y))

F2_xx = sympy.simplify(F2.diff(x).diff(x))
F2_xxx = sympy.simplify(F2_xx.diff(x))
F2_yy = sympy.simplify(F2.diff(y).diff(y))
F2_yyy = sympy.simplify(F2_yy.diff(y))
F2_xxy = sympy.simplify(F2_xx.diff(y))
F2_xy = sympy.simplify(F2.diff(x).diff(y))
F2_xyy = sympy.simplify(F2_xy.diff(y))

#-- evalf of sympy is too slow
f1_xx = eval("lambda x,y,x0,y0,kk:" + str(F1_xx))
f1_xxx = eval("lambda x,y,x0,y0,kk:" + str(F1_xxx))
f1_yy = eval("lambda x,y,x0,y0,kk:" + str(F1_yy))
f1_yyy = eval("lambda x,y,x0,y0,kk:" + str(F1_yyy))
f1_xxy = eval("lambda x,y,x0,y0,kk:" + str(F1_xxy))
f1_xyy = eval("lambda x,y,x0,y0,kk:" + str(F1_xyy))
f1_xy = eval("lambda x,y,x0,y0,kk:" + str(F1_xy))

f2_xx = eval("lambda x,y,x0,y0,kk:" + str(F2_xx))
f2_xxx = eval("lambda x,y,x0,y0,kk:" + str(F2_xxx))
f2_yy = eval("lambda x,y,x0,y0,kk:" + str(F2_yy))
f2_yyy = eval("lambda x,y,x0,y0,kk:" + str(F2_yyy))
f2_xxy = eval("lambda x,y,x0,y0,kk:" + str(F2_xxy))
f2_xyy = eval("lambda x,y,x0,y0,kk:" + str(F2_xyy))
f2_xy = eval("lambda x,y,x0,y0,kk:" + str(F2_xy))

Ntest=200
U1 = 2*(np.random.uniform(size = Ntest) - 0.5)
U2 = 2*(np.random.uniform(size = Ntest) - 0.5)
test_points = np.stack([U1,U2]).T

mu = 0.225  #--Poisson raio
N = 50      #-- number of source points
Naxis = 31
R = 1.45
Delta_k = 1.0
p_ex = np.array([[10.0 , 10.0]])
source_points = np.stack([R*np.cos(2*np.pi*np.arange(N)/N) , R*np.sin(2*np.pi*np.arange(N)/N)]).T


boundary_points1 = np.stack([np.repeat(1,Naxis-1) , np.linspace(+1 , -1,Naxis+1)[1:-1]]).T  #-- x=1 ,-1<y<1
boundary_points2 = np.stack([np.repeat(-1,Naxis-1) , np.linspace(-1 , +1,Naxis+1)[1:-1]]).T  #-- x=-1 ,-1<y<1
boundary_points3 = np.stack([np.linspace(-1,1 ,Naxis+1)[1:-1] , np.repeat(1,Naxis-1)]).T  #-- y=1 -1<x<1
boundary_points4 = np.stack([np.linspace(1,-1 ,Naxis+1)[1:-1] , np.repeat(-1,Naxis-1)]).T  #-- y=-1 -1<x<1
corners = np.array([[+1,+1],[+1,-1],[-1,+1],[-1,-1]])
boundary_points = np.concatenate([boundary_points1 , boundary_points2 , boundary_points3 , boundary_points4 , corners])
Nx = boundary_points1.shape[0] + boundary_points2.shape[0]
bnd_x = boundary_points[:Nx , :]
bnd_y = boundary_points[Nx:2*Nx , :]
bnd_c = boundary_points[-4: , :]


D_test = distance_matrix(test_points , source_points)
D_test_ex = distance_matrix(test_points , p_ex).reshape((Ntest,))

multi_source_points = np.concatenate([source_points,source_points])
multi_boundary_points = np.concatenate([bnd_x,bnd_x,bnd_y,bnd_y,bnd_c,bnd_c,bnd_c])
Istart = 100
Iend = 400
eps = 0.01
ks = []
values = []

for i in range(Istart , Iend):
   k = eps*i
   D1_1_x = lambda a:f1_xx(a[0],a[1],a[2],a[3],a[4]) + mu*f1_yy(a[0],a[1],a[2],a[3],a[4])
   D2_1_x = lambda a:f2_xx(a[0],a[1],a[2],a[3],a[4]) + mu*f2_yy(a[0],a[1],a[2],a[3],a[4])
   D1_2_x = lambda a:f1_xxx(a[0],a[1],a[2],a[3],a[4]) + (2-mu)*f1_xyy(a[0],a[1],a[2],a[3],a[4])
   D2_2_x = lambda a:f2_xxx(a[0],a[1],a[2],a[3],a[4]) + (2-mu)*f2_xyy(a[0],a[1],a[2],a[3],a[4])
   D1_1_y = lambda a:f1_yy(a[0],a[1],a[2],a[3],a[4]) + mu*f1_xx(a[0],a[1],a[2],a[3],a[4])
   D2_1_y = lambda a:f2_yy(a[0],a[1],a[2],a[3],a[4]) + mu*f2_xx(a[0],a[1],a[2],a[3],a[4])
   D1_2_y = lambda a:f1_yyy(a[0],a[1],a[2],a[3],a[4]) + (2-mu)*f1_xxy(a[0],a[1],a[2],a[3],a[4])
   D2_2_y = lambda a:f2_yyy(a[0],a[1],a[2],a[3],a[4]) + (2-mu)*f2_xxy(a[0],a[1],a[2],a[3],a[4])
   D1_1_c = lambda a:f1_xx(a[0],a[1],a[2],a[3],a[4])
   D2_1_c = lambda a:f2_xx(a[0],a[1],a[2],a[3],a[4])
   D1_2_c = lambda a:f1_yy(a[0],a[1],a[2],a[3],a[4])
   D2_2_c = lambda a:f2_yy(a[0],a[1],a[2],a[3],a[4])
   D1_3_c = lambda a:f1_xy(a[0],a[1],a[2],a[3],a[4])
   D2_3_c = lambda a:f2_xy(a[0],a[1],a[2],a[3],a[4])
   conds = [(D1_1_x,bnd_x),(D1_2_x,bnd_x),(D1_1_y,bnd_y),(D1_2_y,bnd_y),(D1_1_c,bnd_c),(D1_2_c,bnd_c),(D1_3_c,bnd_c),
            (D2_1_x,None),(D2_2_x,None),(D2_1_y,None),(D2_2_y,None),(D2_1_c,None),(D2_2_c,None),(D2_3_c,None)]
   indices = [np.array(np.meshgrid(list(range(0,Nx)) , list(range(0,N)),indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(Nx,2*Nx)) , list(range(0,N)),indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(2*Nx,3*Nx)) , list(range(0,N)),indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(3*Nx,4*Nx)) , list(range(0,N)),indexing='ij')).T.reshape((N*Nx,2)) ,
              np.array(np.meshgrid(list(range(4*Nx,4*Nx+4)) , list(range(0,N)),indexing='ij')).T.reshape((N*4,2)) , 
              np.array(np.meshgrid(list(range(4*Nx+4,4*Nx+8)) , list(range(0,N)),indexing='ij')).T.reshape((N*4,2)),
              np.array(np.meshgrid(list(range(4*Nx+8,4*Nx+12)) , list(range(0,N)),indexing='ij')).T.reshape((N*4,2)),
              np.array(np.meshgrid(list(range(0,Nx)) , list(range(N,2*N)) ,indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(Nx,2*Nx)), list(range(N,2*N)),indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(2*Nx,3*Nx)), list(range(N,2*N)),indexing='ij')).T.reshape((N*Nx,2)) , 
              np.array(np.meshgrid(list(range(3*Nx,4*Nx)), list(range(N,2*N)),indexing='ij')).T.reshape((N*Nx,2)),
              np.array(np.meshgrid(list(range(4*Nx,4*Nx+4)), list(range(N,2*N)),indexing='ij')).T.reshape((N*4,2)) ,
              np.array(np.meshgrid(list(range(4*Nx+4,4*Nx+8)), list(range(N,2*N)),indexing='ij')).T.reshape((N*4,2)),
              np.array(np.meshgrid(list(range(4*Nx+8,4*Nx+12)), list(range(N,2*N)),indexing='ij')).T.reshape((N*4,2))]
   Gs = []
   ws = []
   for n,(fun , bnd_points) in enumerate(conds):
       Narg = indices[n].shape[0]
       args = np.concatenate([multi_boundary_points[indices[n][:,0]] ,multi_source_points[indices[n][:,1]] ,np.repeat(k , Narg).reshape((Narg,1))],axis=1)
       Gs.append( np.apply_along_axis(fun , 1 , args) )
       if bnd_points is not None:ws.append( np.apply_along_axis(lambda a:fun( np.array([a[0],a[1],p_ex[0,0],p_ex[0,1] ,k+Delta_k]) ) , 1 , bnd_points) )
   Nb = multi_boundary_points.shape[0]
   Ns = multi_source_points.shape[0]
   G = np.zeros( (Nb , Ns) ,dtype=np.complex )
   I = np.concatenate(indices)
   G[I[:,0],I[:,1]] = np.concatenate(Gs)[:]
   w = np.concatenate(ws)
   A = np.dot(G.T,G)
   B = np.dot(G.T,w)
   Q = np.linalg.solve(A,-B)
   w_test = hankel1(0 , (k+Delta_k)*D_test_ex)
   H1_test = hankel1(0 , k*D_test)
   H2_test = besselk(0 , k*D_test)
   F = np.linalg.norm( w_test + np.dot(H1_test, Q[:N]) + np.dot(H2_test , Q[N:]) )
   ks.append(k)
   values.append(F)



plt.plot(ks , np.array(values))
plt.show()

symplectic群小史

2004年に、
La double origine du groupe symplectique
https://doi.org/10.1016/S0723-0869(04)80003-3
という論文が出ているので、フランス語で問題ない場合、これを読んだ方がいい。

symplectic群は、別に定義が複雑というわけではないので、天下り的に定義を受け入れる心理的抵抗も大きくはないかもしれないが、他の古典群と比べると、そのモチベーションは些か分かりにくく、現在のところ、線形正準変換のなす群というのが、最短で一応の納得を得られる人数が最大の説明じゃないかと思う。一番簡単な場合は特殊線形群と同型になるので除外するとして、一般次元のsymplectic群は、こういう理解の仕方で発見されたわけではないらしい。線形正準変換の群として認識されてたら、一般線形群特殊線形群に倣って、正準線形群とか命名されてたかもしれないけど、そうはなってない。

20世紀になって解析力学を学ぶ動機を古典力学に求める必要はなくなり、symplectic群を線形正準変換群として理解する仕方も、それと並行するかのように出現している。直交群だとか、もう少し複雑なガリレイ群やポアンカレ群にしても、基本的には、"空間"や時空に作用する。それに比べると、そもそも、位置と運動量では、単位が全然違うから、これを一律に扱うのは素朴な発想とは言えないだろうし、通常の空間認識能力は製図や模型製作を通して鍛えられるとしても、"相空間"認識能力を鍛えるような訓練は(少なくとも現在のところ)ない。symplectic群が、相空間の変換群以外の筋道から発見されたのも、そういう発想が、それほど直感的でないことと無関係ではないかもしれない。

とはいえ、symplectic群の発見(not 命名)は19世紀にされてるので、純数学的な動機も確認してみると、何か得る所もあるかもしれない。



あちこちで書かれているけど、symplectic groupという名前は、1939年に出版されたWeylの本で使われたのが初出。
The Classical Groups: Their Invariants and Representations
https://books.google.co.jp/books?id=2twDDAAAQBAJ&pg=PA165

Chapter VIの脚注には、以下のように書いてある。

The name “complex group” formerly advocated by me in allusion to line complexes, as these are defined by the vanishing of antisymmetric bilinear forms, has become more and more embarrassing through collision with the word “complex" in the connotation of complex number. I therefore propose to replace it by the corresponding Greek adjective “symplectic." Dickson calls the group the "Abelian linear group" in homage to Abel who first studied it.

元々、Weylは、line complexを念頭に置いて、complex groupと呼ぼうとしたが、複素数のcomplexと紛らわしかったとか、Dicksonは、Abelが最初に研究したことにちなんで、Abelの線形群と読んだとか書いてある。現在、abelian groupは、可換群の意味で使われるので、これまた紛らわしい。冒頭の論文の"2つの起源"というのも、この2つの名前に関係している。


19世紀(1)アーベル積分とsymplectic群

"Abelの群"という呼称は、1870年のJordanの本の171ページに見られる。フランス語なので、"Groupe abélien"と書かれてる。
Traité des substitutions et des équations algébriques
https://books.google.co.jp/books?id=TzQAAAAAQAAJ&pg=PA171

Dicksonは、1874年生まれなので、"Abelian"と呼んだのは、Jordanに従っただけなんだろう。Dicksonは、多くの論文や本で、"abelian"と呼んでるけど、一例として、以下の論文を挙げておく
A New Definition of the General Abelian Linear Group
https://doi.org/10.2307/1986406


Jordanの本には、

Dans ses importantes recherches sur la transformation des fonctions abéliennes, M. Hermite a dû résoudre le problème suivant:
(訳:In his important research on the transformation of abelian functions, M. Hermite had to solve the following problem:)

と書いてあって、(Weylが言うように)アーベルが、この群を調べたことがあったのかは分からない。ここで言及されてるHermiteの研究は、以下の1855年の論文らしい。

Sur la théorie de la transformation des fonctions abéliennes
https://archive.org/details/bub_gb_4Yne2y_8fbUC

式(3)~(7)あたりに、(4次元の)symplectic群を思わせる記述がある。現代では、symmplectic形式を、J=\left(\ \begin{array}{ll} O & I \\ -I & O \end{array} \right) \in Mat(4)によって、(u,v) \mapsto u^{T} J vという形に取ることが多いが、Hermiteの基底の取り方は違うので注意。非退化歪対称双線形形式f(u,v)に対して、f(u,v)=0 \Rightarrow f(Au, Av)=0を満たす線形変換A \in GL(4)を決定するという問題を解こうとしている。f(u,v)=f(Au,Av)なら、条件は満たされるので、この群は、symplectic群を含む。群が作用するのは、アーベル積分の周期で、現在からすれば、特に意外なことはない。


ずっと後になって、1942年、Siegelは、"symplectic geometry"というタイトルの論文を書いた。
Symplectic Geometry
https://doi.org/10.2307/2371774
この論文は、Siegel上半平面について調べた論文で、動機は、Siegelモジュラー形式の理論にあったと思われる。symplectic geometryという単語が使われたのは、おそらく、この論文が最初だけど、当時のSiegelが、一般的なsymplectic多様体の概念とかを持っていたかどうかは分からない。

"symplectic多様体"という単語は、1950年頃、Ehresmannによって使われてるのを確認できる。
Sur les variétés presque complexes
http://www.numdam.org/item/SB_1948-1951__1__291_0/
で、"variété symplectique"と書かれている。英語圏だと、1953年のBulletin of the American Mathematical Societyの記事
The annual meeting in St. Louis
https://doi.org/10.1090/S0002-9904-1953-09697-5
のCalabiの発表報告に、"symplectic manifold"という単語が出ている。



19世紀(2)line complexとsymplectic群

symplectic群のもう一つの起源であるline complexは、1868年のPlückerの以下の本で導入された概念らしい。

Neue Geometrie des Raumes
https://books.google.lu/books?id=5HVtAAAAMAAJ

line complexは、line congruence(線叢)と似た概念で、グラスマン多様体Gr(2,4)の部分2次元多様体がline congruenceで、部分3次元多様体が、line complexと言っていい。line complexに比べると、line congruenceは動機も分かりやすく、歴史も古いっぽい。line congruenceは、以下の1860年のKummerの論文で導入されたと、よく書いてある。

Allgemeine Theorie der gradlinigen Strahlensystem
https://doi.org/10.1515/crll.1860.57.189

論文タイトルにある"Strahlensystem"(英語ではray system)というのは、名前的にも、光学研究から現れてきた概念らしい。点光源から放射される一本の光線の軌道は、幾何光学によって記述されるが、光線の集合(多分、これが、ray systemなんだと思う)を考えると、ある時刻に光線の集合が到達する面(波面、wavefront)を考えることができる。波面の伝播は、eikonal方程式で記述される。光線は、この波面に直交し、波面の法線集合と光線の集合を同一視することができる(光線軌道は、大域的には曲がってるかもしれないので、法線そのものではなく、光線の接線と波面の法線が一致するだけ)。曲面の法線集合は、曲面でパラメトライズされた直線の集合と見ることが出来、これが、line congruenceの由来。曲面の法線集合として得られるline congruenceは、法線叢と呼ばれる。

光学研究という動機を踏まえて、現代の言葉でいうと、当時の数学者たちが考えたかった直線の集合は、affine Grassmann多様体Graff(1,3)ということになる。affine Grassmannianという用語は、2つの異なる意味で使われるけど、ここでは、n次元アフィン空間のk次元アフィン部分空間(向き付けは無視する)の集合Graff(n,k)を指している。紛らわしいので、こっちは、Euclidean Grassmannianとかに改称してほしい(多分、歴史的には、こっちの用法の方が古いとは思うのだけど)
cf) Affine Grassmannian (manifold)
https://en.wikipedia.org/wiki/Affine_Grassmannian_(manifold)
3次元ユークリッド空間中の曲面が与えられると、その法線叢によって、Graff(1,3)の2次元部分空間が定まる。一方、Graff(1,3)はGr(2,4)に埋め込むことができて、上に定義した意味でのline congruenceが得られる。

19世紀は、光学研究が非常に盛んになった時代で、光学は(天体力学や数理弾性論、測地学などと同様)、数理物理の重要な一分野だったのだと思われる。Kummerは1864年に、Kummer曲面を研究したが、これは、Fresnel wave surfaceの一般化で、やっぱり光学研究が切っ掛けとなっている。line congruenceが、光学研究から出てきた概念であるのに比べて、line complexは、純粋に数学的な興味から研究された概念なのだと思う(多分)。


symplectic群の発見という観点では、line complexの中でも、linear line complexというものが重要で、Gr(2,4)は、プリュッカー埋め込みの像として、5次元射影空間内で二次のプリュッカー関係式で定義できるが、プリュッカー関係式に加えて、一次式で定義される3次元集合を、linear line complexと呼ぶ。プリュッカー関係式+二次式だと、quadratic line complexということになるらしい。

Plücker自身は、symplectic群を考えたことはなく、冒頭の論文によれば、linear line complexの考察からsymplectic群に到達したのは、Sophus Lieらしい。けど、詳細の説明はなく、
Emergence of the Theory of Lie Groups: An Essay in the History of Mathematics 1869–1926
https://books.google.co.jp/books/about/Emergence_of_the_Theory_of_Lie_Groups.html?id=QbB7_YOrruoC
という本を読めと書いてあるものの、分厚いのでpass。以下、linear line complexとsymplectic群の関係だけ書いておく。

V=\mathbf{R}^4として、Gr(2,4)のプリュッカー埋め込み先は、\bigwedge^2 Vの射影化なので、超平面は、ある\sigma \in (\bigwedge^2 V)^{*}によって定まる。\sigmaは、V上の歪対称双線形形式を与えるので、仮に、非退化であれば、(V,\sigma)は、symplecticベクトル空間になる。双線形形式が非退化であることの必要十分条件は、表現行列の行列式が0でないことなので、\sigmaの非退化条件は、強い条件ではない。

二次元ベクトル空間W \subset Vに対して、プリュッカー埋め込みは、一次独立な2つのベクトルu,v \in Wから u \wedge v \in \bigwedge^2 Vを射影化した元を作ることで定まる。これが、symplectic形式から定まる一次式\sigma(u \wedge v)=0を満たすならば、Wは、(V,\sigma)のisotropic部分空間で、次元が最大なので、Lagrangian subspaceになる。従って、genericなlinear line complexは、Lagrangian Grassmann多様体と同じものになる。

Lagrangian Grassmannianは、Symplectic群Sp(2n,\mathbf{R})を、Siegel放物型部分群で割って得られる等質空間として定義することもできる。Siegel放物型部分群は、Siegelの論文"symplectic geometry"で現れていることにちなんで、命名されたらしい。Lagrangian Grassmannianは、genericなlinear line complexの高次元への一般化だと言える。


linear line complexの高次元化には、Lie quadricsというものもある。これはSp(4,\mathbf{R}) \simeq Spin(3,2)という同型に付随して、Lie quadricsが3次元の時のみ、偶然、Lagrangian Grassmann多様体と同型になる。プリュッカー関係式を
W_{12}W_{34}-W_{13}W_{24}+W_{14}W_{23}=0
として、W_{13}+W_{24}=0で定義される超平面との交叉を見ると、A^2-B^2+C^2+D^2-E^2=0という関係式を得られる(W_{12}=A+B,W_{34}=A-B,W_{13}=C,W_{24}=-C,W_{14}=D+E,W_{23}=D-Eとした)。この二次超曲面に、群O(3,2)が作用することは明らかで、Sp(4,\mathbf{R})も作用することになる。

u=(u_1,u_2,u_3,u_4),v=(v_1,v_2,v_3,v_4) \in \mathbf{R}^4と書く時、プリュッカー埋め込みをW_{ij}=u_{i}v_{j}-u_{j}v_{i}で定義すれば、一次式W_{13}+W_{24}=0は、\mathbf{R}^4上の標準的なsymplectic形式f(u,v)=u_1 v_3 + u_2 v_4 - u_3 v_1 - u_4 v_2が消えるという条件に対応している。

Lieは、Lie sphere geometryと呼ばれるものを考えることで、Lie quadricsを発見したらしい。Lie sphere geometryでは、n次元ユークリッド空間中の(向き付けられた)(n-1)次元球面の集合を考える。ユークリッド空間中の直線の集合を考える射影幾何と似た発想だと思う。球面の集合を、パラメータ(s_1,\cdots,s_n,\alpha,\beta)で、以下のように与える
(\alpha-\beta)(x_1^2+\cdots x_n^2) - 2(s_1x+\cdots s_n x_n) + (\alpha+\beta)=0
これが、一般に球面を与えることは明らか。\alpha=\betaの場合は、退化して平面になるし、\alpha+\beta=0の場合は、退化して点になるが、こういうのも同列に扱うというのは、20世紀数学では、定石になった。

球面の半径をRとして、\gamma=R(\alpha-\beta)とすると、\alpha^2-\beta^2- (s_1^2 + \cdots + s_n^2) + \gamma^2=0となる。これが、Lie quadricsで、n次元ユークリッド空間中の(向き付けられた)(n-1)次元球面の集合を\mathbf{P}^{n+2}(\mathbf{R})内の二次超曲面として実現することができた。明らかに、群O(n+1,2)が推移的に作用する。

というわけで、Lie quadricsは、linear line complexのもう一つの高次元化を与えていると言える。


1880年代の後半、Killingは、単純Lie代数の分類を調べ、その中で、C型の単純Lie代数に対応するLie群を考えた。この群は、C型という以外に、group of a linear line complexという感じで理解されてたっぽい。Killingの論文を直接確認はしてないけど

Wilhelm Killing and the Structure of Lie Algebras
https://www.jstor.org/stable/41133645

によれば、EngelとKillingの1880年代の手紙のやり取りの中で、symplectic群は、Gruppe des linearen Complexeなどと呼ばれている。EngelとKillingは、この群を新しいものと考えていたらしい。Lieは、一般(偶数)次元でのsymplectic群の存在を認識してはいたかもしれないが、公に発表したのは、Killingが最初っぽい。Engelは、1883年頃から、Lieと共同研究を行っていたそうなので、こうした結果は、Engelを介して、比較的速やかに共有されただろう。

ちょっと面白いことに、1897年のDicksonの論文では、Killingの研究を引きつつ、symplectic群を、"abelian linear group"ではなく、"general projective group of a linear complex"と呼んでいる。
Systems of continuous and discontinuous simple groups
https://doi.org/10.1090/S0002-9904-1897-00410-4


20世紀(1)正準変換とsymplectic群

そんなわけで、symplectic群には、大きく2つの(ほぼ)独立した起源があるけど、どちらも、解析力学から直接出てきたというわけではない。解析力学で、暗黙の内に、symplectic群(あるいはsymplectic代数)に遭遇することは、あったものと思われるが、線形正準変換とsymplectic群の関連に明確に言及した最古の記述は、私が探した限りでは、1934年の論文

On the linear conservative dynamical systems
https://link.springer.com/article/10.1007/BF02413437

にある。論文では、symplectic群のことを、"the subgroup consisting of those contact transformations in which all transformation formulae contain but linear forms which are independent of t"と書いている。そして、この群の研究は、アーベル積分の周期の変換理論とformal analogyがあると述べている。

接触変換の系統的な研究は、1874年のLieの論文に起源があるとされている。Lieは、線形とは限らない一般的な接触変換を調べたいと思ってたのか、特に、線形正準変換を取り上げてる形跡はない。

Siegelは、1941年に
On the Integrals of Canonical Systems
https://doi.org/10.2307/1969262
という論文を書いていて、"linear contact transformation"という名前で、線形正準変換を扱っているが、アーベル積分やlinear line complexへの言及は、特にない。


現代の人は、symplecticという単語から、最初に解析力学を連想すると思う(要出典:まぁsymplectic数値積分などが一番有名かもしれない)のだけど、そういう風に変化したのが、いつ頃のことかは分からない。そもそも、20世紀の物理の人にとっては、アーベル積分やline complexは、馴染みのある知識というわけでもないので、symplectic群への関心は、最初から正準変換としての興味から始まっただろう。

ブラジルの物理学者Mário Schenbergという人が、1956年に書いたらしい論文
On the grassmann and clifford algebras I
http://acervo.if.usp.br/index.php/on-the-grassmann-and-clifford-algebras-i
には、

The relation between $L_n$ and the Heisenberg commutation rules shows that the symplectic group plays a fundamental role in nature. In recent years the importance of the symplectic group in the classical mechanics has been more clearly understood.

という記述がある。ここの$L_n$は、論文中の式(2)で(Clifford代数との類似性を強調して)定義される結合代数で、symplectic代数の普遍展開環になっている。


別に何か非自明な発見があったというわけでもなく、symplectic群が線形正準変換の群だという認識は1950年代には一般的に知られてたのかもしれない。けど、1971年になっても、

Linear Canonical Transformations and Their Unitary Representations
https://doi.org/10.1063/1.1665805

という論文が出ていて、最初に"the group of linear canonical transformations in a 2N‐dimensional phase space is the real symplectic group Sp(2N)"であることを示すと、わざわざ書いている。この論文におけるsymplectic群は、調和振動子のdynamical symmetry groupという役割を担っている。


20世紀(2)Fourier変換とmetaplectic群

最古のsymplectic幾何学の"教科書/講義録"を(英語、フランス語、ドイツ語、日本語あたりで)探してみると、1970年代後半に出版されたらしい4冊の本が見つかった。
Géométrie symplectique et physique mathématique
https://iss.ndl.go.jp/books/R100000096-I009135785-00

Algèbres de Heisenberg et géométrie symplectique des algèbres de Lie
https://iss.ndl.go.jp/books/R100000096-I008955450-00

Lectures on Symplectic Manifolds
https://books.google.co.jp/books/about/Lectures_on_Symplectic_Manifolds.html?id=H_zCCQAAQBAJ

Symplectic geometry and Fourier analysis
https://www.amazon.co.jp/Symplectic-Geometry-Fourier-Analysis-Mathematics/dp/0486816893

1冊目はSouriauによるもので1975年出版。2冊目は、知らない人による本で、内容も不明。

3冊目はWeinsteinの本で、48ページしかない。Introductionの冒頭には、以下のように書いてある。

I like to think of symplectic geometry as playing the role in mathematics of a language which can facilitate communication between geometry and analysis. On the one hand, since the cotangent bundle of any manifold is a symplectic manifold, many phenomena and constructions of differential topology and geometry have symplectic "interpretations", some of which lead to the consideration of symplectic manifolds other than cotangent bundles. On the other hand, the category of symplectic manifolds has formal similarities to the categories of linear spaces used in analysis. The problem of constructing functorial relations which respect these similarities is one aspect of the so-called quantization problem; using the solutions of this problem which are presently available, one can construct analytic objects (e.g., solutions of partial differential equations, representations of groups) from symplectic ones.

symplectic幾何学が、幾何と解析の対話を促進することに期待すると述べ、最後の行に、"analytic objects"として、表現論と偏微分方程式論への言及がある。表現論の中で、特に、非コンパクト群のユニタリ表現の研究については、量子論を動機として始まった部分が、かなりあるけど、また、1960年代に、Kirillovの軌道法やMackeyの理論など、"量子化"の方法が開発されつつあって、そういう話を念頭に置いたものと思われる。一方、偏微分方程式論では、(波動光学に対する幾何光学、量子力学に対する古典力学の構成を一般化した)半古典解析の手法が1960年頃から出現したっぽい(よく知らないけど...)ので、そのへんの話を考えてるんだろう。


最後のはWallachによる本で、目次を見る限り、symplectic幾何学というより、表現論の本に見える。Fourier analysisとあるのは、多分、L^2(\mathbf{R}^n)に対するFourier変換が、線形正準変換\left( \begin{array}{ll} O & I \\ -I & O \end{array} \right) \in Sp(2n,\mathbf{R})の"量子化"のように解釈できるという話に関わっている。

正準変換の"量子化"という言い方は、普通しないと思うし、数学的に正当化できるものではないと思うけど、次のような意味で使っている。古典的な物理量=相空間上の関数、量子論的な物理量=(波動関数に作用する)エルミート演算子で、エルミート演算子は、波動関数のユニタリ変換の無限小生成子でもある。古典力学には、波動関数に相当するものがないが、量子力学で物理量の時間発展を与えるHeisenberg方程式の古典類似は、Liouville方程式だろうから、この方程式から、正準変換(の一パラメータ変換群)が得られる(この変換は、相空間上の関数に対して定まるが、大域的な座標が取れる場合は、座標の変換が決まる。また、T^{*}\mathbf{R}^nでは、全ての正準変換が、この形で得られるというのが、ネーターの定理の骨子)。そして、相空間上の関数→エルミート演算子という対応を、"量子化"と呼ぶなら、それぞれから得られる正準変換とユニタリ変換について、後者を前者の"量子化"と呼んでも、言葉の濫用ではないだろう。


Fourier変換を少し一般化したものに、fractional Fourier transformというのがあって、1929年のWienerの論文

Hermitian Polynomials and Fourier Analysis
https://doi.org/10.1002/sapm19298170

や、アメリカの物理学者Edward Condonという人の1937年の論文

Immersion of the Fourier Transform in a Continuous Group of Functional Transformations
https://doi.org/10.1073/pnas.23.3.158

あたりが嚆矢らしい。

ユニタリ変換\mathcal{F}で、\mathcal{F}^4=Iであるものに対して、\mathcal{F} = \exp( i \pi \hat{F} / 2 )となる演算子\hat{F}を見つければ、\exp(i \alpha \hat{F})によって、ユニタリ変換の族が得られる。Condonは、こういう発想で、fractional Fourier transformを得たっぽい。論文には、以下のように書いている。

Now every continuous group of transformations is generated by an Hermitian operator, and conversely every Hermitian operator generates a group of unitary transformations. Hence there exists a continuous group of functional transformations containing the ordinary Fourier transforms as a subgroup. In this paper the continuous group is explicitly found.

ここで"the ordinary Fourier transforms"と言ってるのは、この前の部分で説明されていることで、Fourier変換で生成される位数4の巡回群を指している。一次元の場合、fractional Fourier transformは線形正準変換\left( \begin{array}{ll} \cos(\alpha) & \sin(\alpha) \\ -\sin(\alpha) & \cos(\alpha) \end{array} \right) \in Sp(2,\mathbf{R})の"量子化"と思うことができる。WienerもCondonも、具体的な応用とかは何も書いてない。多分、偶々、このような連続群があるだろうと思いついただけで、あまり深く意味を考えたりはしなかったのかもしれない。

それほど明らかでないと思うけど、形式的には、Fourier変換は、
\mathcal{F} f = e^{i \dfrac{\pi}{4}(-\partial_x^2+x^2-1)} f
と書ける。肩に載ってる作用素は、Fourier変換と可換な演算子を考えれば、最初に思いつくものだろう。これは、(余分な定数が付いてることに、目を瞑れば)調和振動子のHamiltonianそのものなので、固有多項式はHermite関数で書け、Hermite関数への作用を調べれば、\mathcal{F}が確かにFourier変換であることが分かるだろう

これを認めれば、fractional Fourier transformは
\mathcal{F}_{\alpha} = e^{ i \dfrac{\alpha}{2}(-\partial_x^2+x^2-1)}
となる。当然、Hermite関数は、fractional Fourier transformの固有関数でもある。従って、積分核は、調和振動子のpropagatorと同じものになる(これはまた、数学で、Mehler kernelと呼ばれていたものと本質的に同じ)

fractional Fourier transformは、波動関数に対する変換なので、どのような正準変換に対応しているか見るには、位置演算子と運動量演算子が、fractional Fourier transformの無限小生成子で、どう時間発展するか見ればいい。無限小生成子は、調和振動子ハミルトニアンと同じなので、相空間の回転が出るだろう。


fractional Fourier transformは、古典的には、相空間の回転なので、今までの話の流れから、任意の線形正準変換に対応するユニタリー変換を作ろうとするのは自然な発想ではある。実際に、そういう発想をしたかは知らないけど、1950年代末〜1960年代初頭、複数の数学者が独立にmetaplectic表現を発見した。
Foundations of the theory of dynamical systems of infinitely many degrees of freedom
http://gymarkiv.sdu.dk/MFM/kdvs/mfm%2030-39/mfm-31-12.pdf

Linear Symmetries of Free Boson Fields
https://doi.org/10.2307/1993745

Sur certains groupes d'opérateurs unitaires
https://doi.org/10.1007/BF02391012

metaplectic表現は、ナイーブには、symplectic群Sp(2n,\mathbf{R})T^{*}\mathbf{R}^{n}への作用(つまり線形正準変換)の"量子化"と思うことが出来る。"量子化"して、Sp(2n,\mathbf{R})L^2(\mathbf{R}^n)上のユニタリ表現が出ればいいのだけど、実際は、symplectic群の二重被覆であるmetaplectic群の表現にしかならない。また、この表現は、既約ではなく、2つの既約表現の直和になる。この2つの既約表現は、関数の偶奇によって分かれている。

metaplectic表現には、
・oscillator representation
・Segal-Shale-Weil representation
・Weil representation
などの別名がある。"oscillator representation"という名前は、1988年に、Roger Howeが使ったそうで、多分、"symplectic群"が、調和振動子のdynamical symmetry groupであるという認識から来ている名称だと思う。Segal-Shale-Weil representationは、Kashiwara-Vergneの1978年の論文で使われてる。3人の発見者が、独立に論文を書いてるので、全員の名前を冠したのだと思う。Weil representationという呼称は、誰が使い始めたのか知らないけど、Weilは3人の発見者の中で、論文を書いたのは最後なので、適切な名前とは言えない。"metaplectic"という名前は、Weilによるらしい。以下では、metaplectic表現という名前を使うことにする。


ついでに、Lie sphere geometryのところで書いた通り、so(3,2) \simeq sp(4,\mathbf{R})で、1963年に、Diracは、so(3,2)の無限次元表現を構成したが、これは、metaplectic表現と同じものになっている。論文には、3+2次元anti de Sitter群とsymplectic群が局所同型であることをJostに指摘されたとか書いてある

A Remarkable Representation of the 3 + 2 de Sitter Group
https://doi.org/10.1063/1.1704016

Dirac1920年代後半には、非コンパクト群の既約な無限次元表現を構成することに興味を持っていたらしいけど、ローレンツ群やポアンカレ群が関心の中心だった。1937年のCondonの結果を、追求する人が当時いたならば、metaplectic表現が、最初の既約な無限次元表現の例を提供していたかもしれない。このクラスの積分変換としては、fractional Fourier transform以外に、Fresnel transform/imaginary Gauss-Weierstrass tranformも、(名前的に)19世紀から知られてたっぽいから、metaplectic表現は、殆ど眼前に転がってたようなものだけど、誰にも拾われることはなかった。Condonは、論文で、von Neumannに謝辞を述べており、von Neumannは、こういった問題のことも知ってただろうから、一番いい位置にいたはずだけど、結局何もしなかった。

とりあえず、metaplectic表現によって、標語的には、線形正準変換の量子化が得られ、Fourier変換は、ユニタリ変換がなす群の一つの元に過ぎないということになった。Wallachの本のタイトルにFourier analysisが含まれるのは、こういう理由だと思う。


symplectic群(正確にはmetaplectic群)のmetaplectic表現によって得られる積分変換は、quadratic Fourier transformという名前で呼ばれることもある。"quadratic"という接頭辞は、直接的には、以下の1986年の論文で見られるものが、探した限りで最古っぽい。

Intégrales de Fourier quadratiques et calcul symbolique exact sur le groupe d'Heisenberg
https://doi.org/10.1016/0022-1236(86)90006-6


1981年のGuilleminとSternbergの論文
The metaplectic representation, Weyl operators and spectral theory
https://doi.org/10.1016/0022-1236(81)90042-2
の最後のconcluding remarksでは、metaplectic群を、"a group of Fourier integral operators"と見ることができると述べている。Fourier integral operatorは、Hörmanderが(多分、擬微分作用素の拡張として)1970年代初頭に導入した概念と思うけど、私が、解析学のことは、よく知らないので、動機や有用性は分からない。

GuilleminとStenbergの論文で述べられていることだが、このようなFourier積分作用素として実現できる群の表現として知られているものは、metaplectic表現以外に、SO(4,2)L^2(S^3)上の極小表現がある。SO(4,2)の極小表現は、SO(4,2)のKepler多様体(三次元球面の余接空間T^{*}S^3の部分空間である)への作用の"量子化"として理解できる。

【余談】GuilleminとStenbergの論文の主な結果は、Lagrangian Grassmann多様体上のhalf-formの空間に、metaplectic表現の既約成分の一方(極小表現と呼ばれる方)を実現するという話で、面白い。half-formは、以下のmetalinear群と呼ばれる一般線形群の二重被覆
ML(n,\mathbb{R}) = \{U\in GL(n,\​mathbb{R}),z\in \mathbb C^*\mid z^2 = \det U\}
の指標(U,z) \mapsto z^{k}があって、frame bundleの構造群がmetalinear群に持ち上がる時(Riemann多様体にSpin構造を定義する時と同様の考え方で、これが可能な時は、metalinear構造と呼ぶ)に定義できる、k=1の一次元表現に対する随伴束の切断。この指標は二乗すると、\det(U)になるので、形式的には、(自然表現の)n次外積代数の平方根を取った表現\sqrt{\bigwedge^n \mathbf{R}^n}のように思えるところから、half-formという名前が来ているが、普通の微分形式と違って、幾何学的感覚で理解しうるものなのかは知らない。metalinear群とmetaplectic群には、一般線形群のsymplectic群への埋め込みGL(n,\mathbf{R}) \to Sp(2n,\mathbf{R}) , A \mapsto \left( \begin{array}{ll} A & 0 \\ 0 & (A^{T})^{-1} \end{array} \right)を、持ち上げることが出来て、また、metaplectic表現がsymplectic群の表現にならないのは、このmetalinear群の部分が原因になっている。


補足:Hankel変換とsl(2,R)

Hankel変換は、高次元Fourier変換で回転不変性を仮定して、動径成分のみの計算に落とすことで得られる積分変換である。

Fourier変換が、\left( \begin{array}{ll} O & I \\ -I & O \end{array} \right) \in Sp(2n,\mathbf{R})量子化と解釈できたのと似たようなことが、Hankel変換でもあり、特に、fractional Hankel transformも考えることができる。fractional Hankel transformの詳細は、例えば、論文

A Fractional Power Theory for Hankel Transforms in L2(R+)
https://doi.org/10.1016/0022-247X(91)90271-Z

にあるが、fractional Fourier transformでHermite関数の果たした役割を担うのが、一般化Laguerre関数になるという以外、殆ど同じである。

Hankel変換は、一次元の積分変換だけど、Fourier変換の時と同じく、metaplectic群の作用にまで拡張できる。但し、直交変換で不変な関数のn次元Fourier変換(n>1)を、変数分離する時、Hankel変換の次数は、\nu = \dfrac{n}{2} - 1で、次数が違えば、出てくる表現は、それぞれ違うものになる。この点については、Kostantの2000年の論文

On Laguerre polynomials, Bessel functions, Hankel transform and a series in the unitary dual of the simply-connected covering group of $Sl(2,\mathbb R)$
https://www.ams.org/journals/ert/2000-004-08/S1088-4165-00-00096-0/

に詳しく書かれている。\nu=-1/2では、metaplectic表現の既約成分の一方(極小表現)、\nu=0では、limit of discrete series、\nuが正整数なら離散系列表現が出る。

一次元Fourier変換では、Hankel変換の方で見ても(当然だが)metaplectic表現で、2つの既約表現に分解して、それぞれの表現空間に作用するHankel変換の次数は-1/2と+1/2になる。これは、以下のささやかな恒等式
J_{-1/2}(x) = \sqrt{\dfrac{2}{\pi x}} \cos(x)
J_{1/2}(x) = \sqrt{\dfrac{2}{\pi x}} \sin(x)
から分かる通り、Fourier余弦変換とFourier正弦変換になる。J_{\nu}(x)は、第一種Bessel関数。一次元の直交群O(1)は、単位元と鏡映変換x \mapsto -xのみからなり、前者は、鏡映変換で不変だが、後者は、不変ではない。


ちゃんと確認してないことだけど、高次元Fourier変換とHankel変換の関係は、多分、dual pairSp(2n,\mathbf{R}) \supset SL(2,\mathbf{R}) \times O(n)によって解釈されるのだろうと思う(Mp(2n,\mathbf{R})のmetaplectic表現を、Mp(2,\mathbf{R}) \times O(n)の作用で既約分解して、O(n)の一次元表現に対応するMp(2,\mathbf{R})の既約表現を見ればいいのだろう)。このdual pairについては、Kazhdan-Kostant-Sternbergの1978年の論文

Hamiltonian group actions and dynamical systems of calogero type
https://doi.org/10.1002/cpa.3160310405

で説明されているが、大した話でもなくて、\left( \begin{array}{ll} a  & b  \\ c & d \end{array} \right) \in SL(2,\mathbf{R})は、\left( \begin{array}{ll} a I & b I \\ c I & d I \end{array} \right) \in Sp(2n,\mathbf{R})で埋め込まれ、一方、A \in GL(n,\mathbf{R})は、\left( \begin{array}{ll} A & 0 \\ 0 & (A^{-1})^T \end{array} \right) \in Sp(2n,\mathbf{R})で埋め込まれる。

後者の埋め込みは、V=\mathbf{R}^nとして、Sp(2n,\mathbf{R})を、相空間T^{*}Vに作用する群と見た時に、Vに作用する線形変換A \in GL(V)を、T^{*}Vへの作用にどう拡張するか考えれば自然に出る。量子化した場合は、q_1,\cdots, q_nに線形変換Aが作用する時、\dfrac{\partial}{\partial q_1}, \cdots , \dfrac{\partial}{\partial q_n}が、どのように変換を受けるかという問題に対応している。

一般に、A \in GL(n,\mathbf{R})の埋め込みは、SL(2,\mathbf{R})の埋め込みと可換ではないけど、いつ可換になるか調べると、線形代数の勉強を始めたばかりの大学一年生でも容易に示せる通り、A \in O(n)が条件になる。従って、上のdual pairは、(配位)空間の回転対称性O(n)を分離して、残りの変換を取り出したいという"お気持ち"を表明している。


metaplectic表現を、上のdual pairで分解する問題は、しばしば、(symplectic代数やmetaplectic群を陽に出すことなしに)代数的に扱われてる。例えば、GoodmanとWallachの本

Symmetry, Representations, and Invariants
https://books.google.co.jp/books/about/Symmetry_Representations_and_Invariants.html?id=tbSX5VPE4PIC

の5.6.4節 "spherical harmonics"などにある(n=1,2は、やや特別なので、n>2の場合を扱っている)。n>2として、係数を複素化して、symplectic代数sp(2n,\mathbf{C})のmetaplectic表現は、n変数多項式の環\mathbf{C}[z_1,\cdots,z_n]上に実現できる。Lie環の表現なら、これでいいけど、群の表現を考える時には、適当な内積を入れて、完備化する必要があって、得られるHilbert空間は、調和振動子のBargmann-Fock表現の空間になる。

Goodman&Wallachに従えば、dual pairにおけるsl(2,\mathbf{C})の作用は、
X = -\dfrac{1}{2}(\dfrac{\partial^2}{\partial z_1^2} + \cdots + \dfrac{\partial^2}{\partial z_n^2})
Y = \dfrac{1}{2}(z_1^2 + \cdots + z_n^2)
H = -(z_1 \dfrac{\partial}{\partial z_n} ; \cdots + z_n \dfrac{\partial}{\partial z_n}) + \dfrac{n}{2}
の線形結合になって、[H,X]=2X,[H,Y]=-2Y,[X,Y]=Hを満たす。

r^2=z_1^2+\cdots+z_n^2として、fを、k次の調和多項式とすると、X \cdot f = 0,H \cdot f = -(k + \dfrac{n}{2}) fで、
U_{f} = \bigoplus_{j \geq 0} \mathbf{C} r^{2j} f
は、sl(2,\mathbf{C}の既約表現空間となる。w_j = r^{2j} fとして、\mu = k + \dfrac{n}{2} - 1と置くと
Y \cdot w_{j} = w_{j+1}
X \cdot w_{j} = -j(\mu+j) w_{j-1}
H \cdot w_{j} = -(2j + \mu + 1) w_j
になる。ここでは、Goodman&Wallachの本に合わせて、H,X,Yを取ったけど、この式を、Kostantの論文の式(0.1)と比較すると、ほぼ同じ形をしていることが分かる。

Kostantの記号に合わせるには、f'=-i X,e'=i Y , h'=-Hとすればよく、[h'e']=2e' , [h',f']=-2f' , [e',f']=h'が成り立つ。また、k=0の時、\mu=\nu=\dfrac{n}{2}-1で、これは、回転不変関数のFourier変換から出るHankel変換の次数に等しい。U_{f}上の表現は、次数kが同じなら、どのfを取っても同値なので、sl(2,\mathbf{C})の抽象的な表現空間として、\mathcal{D}_{k+\nu}と書くことにする。

次数kの調和多項式の空間を\mathcal{H}_{k}とすると、こっちは、意外なこともなく、O(n)の既約表現になる。

もう少しちゃんというなら、E_{ij}(i,j)成分のみ1で、それ以外は0の行列単位として、\left( \begin{array}{ll} E_{ij} & 0 \\ 0 & -E_{ji} \end{array} \right) \in sp(2n,\mathbf{R})のmetapletic表現は、z_i \dfrac{\partial}{\partial z_j} + \dfrac{1}{2} \delta_{ij}になる(metaplectic表現を与えるのは難しくないけど略)。これから、特に、h'=-Hは、\left( \begin{array}{ll} I & 0 \\ 0 & -I \end{array} \right)のmetaplectic表現になってることが分かる。

上に書いたdual pairの作り方から、o(n) \subset sp(2n,\mathbf{R})は、z_i \dfrac{\partial}{\partial z_j} - z_j \dfrac{\partial}{\partial z_i}という形で作用することが分かる。これは、(z_1,\cdots,z_n)空間での回転の無限小生成子なので、調和多項式の空間を既約分解すると、\mathcal{H}_{k}が既約になる。

以上から、
\mathbf{C}[z_1,\cdots , z_n] \simeq \displaystyle \bigoplus_{k=0}^{\infty} \mathcal{D}_{k+\nu} \otimes \mathcal{H}_{k}
という分解ができる。

Bargamann-Fock表現の代わりに、標準的な調和振動子の実現で同じ計算をやれば、丁度Hankel変換の作用する空間が\mathcal{D}_{\nu}になってるはず(この表現はmetaplectic表現の部分表現としてみれば、重複度1なので、それ以外の可能性がない)。Fourier変換をHankel変換に帰着させる計算には、量子力学の教科書で、部分波展開と呼ばれている式を使うので、以上の話は、部分波展開の表現論的解釈と見ることもできる。そんなことを確かめても、なんか深遠なことを理解した気分になって楽しいという程度のことで別段新しい何かが出るわけではないけど、19世紀に(おそらく場当たり的に)発見されたいくつかの恒等式が、多少見通しよく把握できるかもしれない。



あんまり関係ないけど、3次元Kepler多様体は、T^{*}\mathbf{R}^6SL(2,\mathbf{R})によるMarsden-Weinstein簡約によって得られる。これは、上に出てきたのと類似のdual pairSp(12,\mathbf{R}) \supset SL(2,\mathbf{R}) \times O(4,2)が背後にある(dual pairの作り方は、さっきと殆ど同じ)。この事実は、GuilleminとSternbergの小冊子

Variations on a Theme by Kepler
https://books.google.com.jm/books?id=bt6VAwAAQBAJ

で解説されている。より一般に、Sp(2(n+3),\mathbf{R}) \supset SL(2,\mathbf{R}) \times O(n+1,2)というdual pairがあって、多分、これも一般化できるんだろう。

低次元では、SU(2,2)SO(4,2)が偶然局所同型で、U(2,2) \subset Sp(8,\mathbf{R})という別の埋め込みが存在する。3次元Kepler問題が、4次元調和振動子に帰着するという話は、こっちの埋め込みが原因

cf)低次元Lie代数のaccidental同型(その3)
https://formalgroup.tumblr.com/post/119177832580/lie-accidental-3
終わりの方にあるsp(4,\mathbf{R})は、ここでsp(8,\mathbf{R})と書いてるのと同じもの。C_n型のLie環を、sp(n)と書く流儀とsp(2n)と書く人がいる。

一般にU(p,q) \subset Sp(2(p+q),\mathbf{R})は、さっきより少し面倒だけど、以下のように実現できる。行列\eta \in Mat(n,\mathbf{R})\eta^2=Iになるものとすると、X+\sqrt{-1}Y \in GL(n,\mathbf{C})に、f(X+\sqrt{-1}Y) = \left( \begin{array}{ll} X & Y \eta \\ -\eta Y & \eta X \eta \end{array} \right) \in GL(2n,\mathbf{R})を対応させると、群の準同型写像になる(但し、X,Y \in GL(n,\mathbf{R}))

ここで、\eta=diag(\pm 1 , \cdots , \pm 1)の形だとして、Z = X+ \sqrt{-1}Y \in GL(n,\mathbf{C})が、Z^{\dagger} \eta Z = \etaだとする(つまり、\etaの対角成分に出る+1/-1の個数をpとqだとすると、Z \in U(p,q)になる)と、
Z^{\dagger} \eta Z = (X^{t} - \sqrt{-1}Y^{t}) \eta (X+\sqrt{-1}Y) = (X^{t} \eta X+ Y^{t} \eta Y) + \sqrt{-1}(X^{t} \eta Y - Y^{t} \eta X) = \eta
なので
X^{t} \eta X+ Y^{t} \eta Y = \eta , X^{t} \eta Y - Y^{t} \eta X = 0
という条件が出る。一方、同じ\etaを使って、f(Z) \in GL(2n,\mathbf{R})を作ると、
f(Z)^{t} \left( \begin{array}{ll} 0 & I_n \\ -I_n & 0 \end{array} \right) f(Z) =\left( \begin{array}{ll} 0 & I_n \\ -I_n & 0 \end{array} \right)
が成り立つので、f(Z) \in Sp(2n,\mathbf{R})が示せる。\eta = I_nの時は、U(n)Sp(2n,\mathbf{R})への標準的な埋め込みになる



1000年後くらいの人類が、まだ滅亡してなくて、17〜20世紀くらいの数学や物理の歴史を総括する時、"当時の人々は、概ね、調和振動子の研究をしていた"とか、まとめられるかもしれない。

21世紀

metaplectic表現は、symplectic群が、相空間T^{*}\mathbf{R}^{n}に"殆ど"推移的に作用してたボーナスとして得られた。Sp(2n,\mathbf{R})が推移的に作用するsymplectic等質空間として、もう一つSiegel上半空間がある。

最近、以下のような論文があるのを知った。

The Siegel upper half space is a Marsden-Weinstein quotient: Symplectic reduction and Gaussian wave packets
https://arxiv.org/abs/1504.03963

The frame bundle picture of Gaussian wave packet dynamics in semiclassical mechanics
https://arxiv.org/abs/1802.04362

詳細をフォローしてないけど、2n次正方行列の空間Mat(2n,\mathbf{R})には自然なsymplectic構造が存在(\mathbf{R}^{2n^2}の余接空間と同型)し、右と左からSp(2n,\mathbf{R}),O(2n)の作用があって、これらはSp(4n^2,\mathbf{R})の部分群をなし、互いに可換になる。そして、O(2n)作用で、Marsden-Weinstein簡約を取ると、Sp(2n,\mathbf{R})が推移的に作用するsymplectic空間が得られるが、これが、Siegel上半平面になるらしい。

Marsden-Weinstein簡約を取るところ以外は、良く知られた(Sp(2n,\mathbf{R}),O(k)) dual pairの特殊ケースになっている。このdual pairについては、

MULTIPLICITY-FREE SPACES AND SCHUR-WEYL-HOWE DUALITY
https://doi.org/10.1142/9789812562500_0007
[PDF] https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.147.4216&rep=rep1&type=pdf

のLecture12とかに解説がある。


一番簡単な例として、n=1の場合を見ておく。運動量写像T^{*}\mathbf{R}^2 \to o(2)^{*} \simeq \mathbf{R}は、角運動量J : (q_1,q_2,p_1,p_2) \mapsto q_1 p_2 - q_2 p_1で与えられる。そして、Marsden-Wensiten簡約でよく取られるJ^{-1}(0)ではなく、J^{-1}(1)O(2)の適当な部分群で割る。また、J^{-1}(1)へのO(2)作用を見ると、鏡映変換は、この集合を不変に保たないが、回転の方は問題ない(あるいは、同じことであるが、鏡映変換によって角運動量の大きさは、-1倍される)。従って、J^{-1}(1)/SO(2)を考えることになるが、q_1 p_2 - q_2 p_1=1という条件は、\left( \begin{array}{ll} q_1 & q_2 \\ p_1 & p_2 \end{array} \right) \in SL(2,\mathbf{R})ということで、この対応によって、J^{-1}(1)/SO(2)=SL(2,\mathbf{R})/SO(2)となるが、これがSiegel上半平面なのは、よく知られた事実。

西暦189X年、不変式論は核の炎に包まれた

DieudonnéとJames B Carrellという人の1970年の論説

Invariant theory, old and new
https://doi.org/10.1016/0001-8708(70)90015-0

の冒頭に

Invariant theory has already been pronounced dead several times, and like the phoenix it has been again and again rising from its ashes.

という一節があって、不変式論の文献で引用されてるのを、よく見かける。

最近、たまたま紀伊國屋数学叢書の「不変式論」(1977年)を立ち読みしたところ、前書きの冒頭に、これが引用してあって、「歴史的事実を述べたものというより、何か本質的なものに触れた感動と見るべきだろう」(買わなかったので、うろ覚え)みたいなことが書いてあって、この本の出版以後に誕生した身としては、普通に歴史的事実だと思ってたので、違うんかい!という気持ちになって、少し調べてみることにした。


Dieudonnéらの論説では、冒頭の言葉の少し後に、

But Hilert's success also spelled the doom of XIXth Century invariant theory, which was left with no big problems to solve and soon faded into oblivion.

The first revival was prompted by the developments (I. Schur, H. Weyl, E. Cartan) of the global theory of semi-simple groups and their representations around 1935, when it was realized that classical invariant theory was really a special case of that new theory; this was clearly shown in H. Weyl’s famous book “Classical Groups,” but again a lack of outstanding problems was probably the reason why important new developments failed to materialize after the publication of that book. Only very recently have new stirrings of life been perceptible again; this is mainly due to the work of D. Mumford, (...)

とある。Hilbert,Weyl,Mumfordを節目とする、これもよく見る話ではあるが、Dieudonnéらの論説には、Hilbertのfiniteness theoremの後、誰かが不変式論は終わったとか言った/書いたみたいな具体的事象は書かれてない。


Hilbertが、不変式論を殺したという伝説は、Weylの本"The Classical Groups"にも書かれている。Chapter IIの第1節に

Here there is only one man to mention -- Hilbert. His papers (1890/92) mark a turning point in the history of invariant theory. He solves the main problems and thus almost kills the whole subject. But its life lingers on, however fiickering, during the next decades.

と書いてあって、この本は有名なので、多くの人が、この記述を歴史的事実と認識して普及したとしても不思議ではない。

しかし、Dieudonnéの記述だと、本当にHilbertで完全に終わったという印象を受けるけど、Weylは、その後、数十年、不変式論は続いたとも書いている。Weylは、Hilbert以後の重要な仕事を行った数学者として、HurwitzとYoungに言及した後、以下のように書いている。

In recent times the tree of invariant theory has shown new life, and has begun to blossom again, chiefly as a consequence of the interest in invariant-theoretic questions awakened by the revolutionary developments in mathematical physics (relativity theory and quantum mechanics), but also due to the connection of invariant theory with the extension of the theory of representations to continuous groups and algebras.

Dieudonnéの記述にある"first revival"は、この記述に基づくものだろう。



まず、Hilbertが不変式論を終わらせたかどうかについてだけど、そもそも、Hilbert自身が1900年に、Hilbertの第14問題を提起しているので、1900年頃のHilbertの認識としては、不変式論に、もうbig problemは残ってないなどと思っていなかったんだろう。

Hilbertの1890年の論文
Über die Theorie der algebraischen Formen
https://doi.org/10.1007/BF01208503
は、記号や名前が現代と違いすぎて、条件がよく分からないけど、SL(n)に限ったものと思われる。SL(2)に対して、Gordan(1868)が示した結果を、一般次元の特殊線形群に拡張したのがHilbertの結果で、Hilbertの第14問題は、この結果を、更に一般の群に拡張することを提起している。

Hilbertの証明に於いて、Reynolds作用素の利用は、本質的だったが、Hilbertは、CayleyのΩ-processというもの(Hilbert自身が、多分、Cayleyの構成を一般化して、命名したらしい)を使用した。私には、この方法は、イマイチよく分からない(例えば、他の群に一般化できるものか分からない)けど。不変式論は、環論と群論が交差する分野で、1900年の時点では、群論の方が全然十分でなく、SL(n)の場合ですら、一般の表現空間上の多項式環に対して、Reynolds作用素の存在を示せていたわけではない。

Reynolds作用素は、イギリスの工学者Osborne Reynoldsに由来するそうで、流体力学のReynolds平均との類似から来ているらしい。代数学で、Reynolds作用素という名前が使われるのは1960年代からっぽい。当時、何らかの群作用による平均化が満たすべき性質を抽象化して、Reynolds作用素を定義していた。Hilbertは、このような形で、Reynolds作用素を構成したわけではない。


完全可約性が言えればReynolds作用素の存在は従い、複素簡約群の完全可約性は、基本的にWeylによるものだが、Armand Borelによる本

Essays in the history of Lie Groups and Algebraic Groups
https://bookstore.ams.org/hmath-21/

のChapter IIを読むと、このへんの歴史は、多少込み入っているっぽい。

Borelによれば、SL(2)の既約表現を決定したのは、Sophus Lieで、その定式化は、現代とは異なっており、射影空間上の射影変換を分類するという形だったようだ。この結果は、LieとEngelの1893年の著書"Theorie der Transformationsgruppen III,"にあるそうで、その中で、Eduard Studyが完全可約性を示していると書いているが、実際には、Studyの証明は、正しくないとBorelは書いている(私は、全て未確認)。また、Studyは、SL(n)の完全可約性も予想していたが、証明できなかったようだ。

そういった話とは無関係に、1898年に、アメリカの数学者E.H.Mooreは、(現代の言葉では)有限群の任意の有限次元表現がユニタリ化可能であることを証明した。これは、Alfred Loewyが証明なしに述べていたものらしい。
An universal invariant for finite groups of linear substitutions: with application in the theory of the canonical form of a linear substitution of finite period
https://doi.org/10.1007/BF01448062

そして、これを元に、1899年、Maschkeが有限群の表現の完全可約性を示した。
Beweis des Satzes, dass diejenigen endlichen linearen Substitutionsgruppen, in welchen einige durchgehends verschwindende Coefficienten auftreten, intransitiv sind
https://doi.org/10.1007/BF01476165

Mooreの不変内積の作り方は、群の作用で平均化するだけなので、Reynolds作用素の作り方と、殆ど同じである。これらは(現代的には)表現論の論文であって、MooreもMaschkeもReynolds作用素を書いてはいない。

一方、1897年のHurwitzの論文
Über die Erzeugung der Invarianten durch Integration
https://doi.org/10.1007/978-3-0348-4160-3_38
には、Summaryで、有限群の場合のReynolds作用素の構成が、当たり前のように書かれている。

Borelは、

For Moore it was an application of a "well-known group theoretic process".

と書いてるので、このような構成は、割と常識に近いものだったのかもしれない。

Hurwitzの1897年の論文は、WeylがHilbert以後の重要な仕事の一つとして言及したもので、SL(n,C)とSO(n,C)の自然表現(上の多項式環)に対して、Reynolds作用素を構成している。その方法は、極大コンパクト部分群に対して、不変測度を構成して、極大コンパクト部分群の作用について平均化するというもので、後に、Weylのユニタリー・トリックと呼ばれるようになった手法を発明している。

以下のようなHurwitzの論文の解説も存在する。
A. HURWITZ AND THE ORIGINS OF RANDOM MATRIXTHEORY IN MATHEMATICS
https://arxiv.org/abs/1512.09229

Hurwitzの論文は、以下のような内容を含んでいると言っていいだろう
(1)Reynolds作用素の新しい構成
(2)コンパクト群上の不変積分の構成
(3)ユニタリー・トリック


Borelが注意しているように、Hurwitzの方法と、Maschkeの方法を組み合わせれば、Studyが予想していたSL(n,C)やSO(n,C)の有限次元表現の完全可約性を証明することができたはずだが、1925年にWeylが論文を書くまで、誰もやらなかった。Cartanは、全く異なる動機から、半単純Lie環の表現論(最高ウェイト理論)を完成させていたが、どうも、完全可約性を示さねばならないということは見落としていたらしい。

話は逸れるけど、調べている時に、Noetherが、1916年に有限群の不変式環の有限生成性を示したと書いてあるのを見たけど、該当論文

Der Endlichkeitssatz der Invarianten endlicher Gruppen
https://doi.org/10.1007/BF01456821

は、不変式環を生成するのに絶対必要な次数を評価している。従って、原理的には、この次数までの全ての単項式にReynolds作用素を適用すれば、不変式環の生成元が計算できることになり、極めて効率は悪いものの、構成的な証明になっている。この論文は、実質的に、有限群の不変式環を計算するアルゴリズムを与えたのが成果というべきだと思う。


HurwitzやMaschkeの結果から、Weylの完全可約性定理まで25年以上かかってるけど、Hurwitzの論文は不変式論のもので、MooreやMaschkeの論文は、表現論のものなので、この2つのテーマを、あまり関連付けて考える人がいなかったのかもしれない。

(一般的に表現論の開祖ということになってる)FrobeniusやMolienは、1890年代に、不変式論の研究もしているけど、いつ頃から、表現論の不変式論への応用が意識されてたものかは、よく分からない。Weylの本では、Hilbert以後、不変式論で重要な仕事をした数学者にHurwitzとYoungを挙げていて

in England A. Young, working more or less alone in this field, obtains far-reaching rrsults on the representations of the symmetric group and uses them for invariant-theoretic purposes (1900 and later)

と書いているので、表現論を不変式論へ応用するという視点は、Youngにはあったらしい。Hurwitzの論文の重要性は分かるけど、Youngについては、対称群という特別な対象の研究という以上に、この点を評価したのかもしれない。

1920年代には、Schurも不変式論に関する論文を書いている。例えば、1922年の論文

Über eine fundamentale Eigenschaft der Invarianten einer allgemeinen binären Form
https://doi.org/10.1007/BF01494384

では、SL(2)の古典的なn次二元形式に対するSL(2)作用を考えて、この表現空間((n+1)次元既約表現と同値)上の多項式が不変式であることと、そのLie環の作用が消えることの同値性を証明している。

多分、主な結果は「SL(2)の(n+1)次元既約表現空間上の(定数でない)不変式fを一つ取った時、fのstabilizerは、fが二次不変式の冪でなければ、SL(2)になる」という定理1の結果っぽい(?)。この手の問題は、arXiv:1309.6611では、”reverse invariant theory"の一種などと書いてある。主定理はともかく、Lie環の作用が、式(4)に、あからさまに書いてあって、(n+1)次元既約表現だということも理解してたっぽい。



数学的な話としては、そんな感じで、Hilbertで不変式論が終わったとは到底言えない。1966年と1967年に、Charles S. Fisherという社会学者が、"不変式論の死"に関する報告を書いている。

The Death of a Mathematical Theory: a Study in the Sociology of Knowledge
https://doi.org/10.1007/BF00357267

The Last Invariant Theorists: A sociological study of the collećtive biographies of mathematical specialiśts
https://doi.org/10.1017/S0003975600001521

Mumfordや幾何学的不変式論の名前は書かれてないけど、前者の論文中に、次のような記述があるので、Fisherは、当時の数学の流れも認識してたらしい。

Eighteen years after WEYL'S book, interest in the subject was again revived. Paraphrasing our mathematician: when people started studying algebraic groups they saw that they could handle some of the old problems; the previous workers simply did not word the problems correctly; in the proper context they can be generalized, the problem is now one of quotient spaces of varieties; no one makes computations any more; the subject, is set within the context of algebraic geometry: and is not called invariant theory, but by its technical name, the quotient space problem for algebraic groups or transformation groups; there are only about a half a dozen people working on this problem.

Fisherの論文は、色々書いてあるのだけど、Conclusionを読むと、以下のように書いてある。

WEYL said that HILBERT almost killed the subject. The present-day researcher sees HiLBERT as having ended the old ways of doing the subject. And the modern algebraists see HILBERT'S work as a turning point in the development of algebra: Invariant Theory is left behind. Yet in contrast, we find that Invariant Theory did not disappear in 1893. Its specialists carried it forward for at least thirty years, making claims for the interest and importance of the theory.

Fisherの記述は、Weylのそれに近く、Hilbert以後、少なくとも30年は専門家が研究を続けたと述べている。

Fisherは、定量的データを示していて、後者の論文に、次のように述べている。

The mathematical review, Jahrbuch über die Fortschritte der Mathematik, has between 40 and 50 entries a year under the heading, "Theorie der Formen," in the 1890s; between 15 and 25 a year in the 1920s; and from 18 scaling down to 4 a year in the 1930s. Throughout this period a number of mathematicians commented on the decline of the theory. Many outside of Invariant Theory looked back on the work of Hilbert as having killed the subject by solving all of its problems. Others, especially those who were working on invariants, saw in Hilbert's results the grounds for further research.

ここに書いてあるJahrbuch über die Fortschritte der Mathematik(Yearbook of the progress in mathematics)は1868〜1942年までドイツで、ほぼ毎年刊行されていた数学雑誌のようで、典型的には、一冊1000ページ近くあるが、他の場所で掲載された論文の簡単な紹介を、数行から、長くても数ページ程度で記述した論文目録のような雑誌っぽい。ドイツ語論文だけでなく、英語・フランス語・イタリア語論文を含んでおり、網羅性は、かなり高いらしい。このジャーナルの一部は電子化されて、オープンアクセスになっている。公式(?)の電子化サイトっぽい

The Jahrbuch Project Electronic Research Archive for Mathematics
https://www.emis.de/projects/JFM/

は使い物にならないので、archive.orgとかで見る。例えば、1905年版は以下にある。

Jahrbuch über die Fortschritte der Mathematik (1905,Band 36)
https://archive.org/details/bub_gb_y9MLAAAAYAAJ/page/n25/mode/2up

Jahrbuch über die Fortschritte der Mathematikは、数学(と物理)全般を扱ってて、1905年には、次のような12のAbschnitt(セクション)に分けられている。1875年の分類と比べても、名称の変更は一部あるものの、全体の構成は変更することなく踏襲されている。
(1)Geschichte, Philosophie und Paedagogik(注:歴史、哲学、教育)
(2)Algebra
(3)Niedere und hoehere Arithmetik(注:Low and High Arithmetic、数論もここに含まれる)
(4)Combinationslehre und Wahrschenlichkeitsrechung(注:組み合わせ論、確率論)
(5)Reihen(注:級数論)
(6)Differential- und Integralrechnung(注:微積分、偏微分方程式論、変分法など)
(7)Functionentheorie(注:関数論。いわゆる複素解析以外に、ガンマ関数、超幾何関数、楕円関数、超楕円関数などの特殊関数論を含む)
(8)Reine, elementare und synthetische Geometrie
(9)Analytische Geometrie(注:20世紀代数幾何の前身みたいな内容)
(10)Mechanik(注:静力学、動力学、流体力学、ポテンシャル論など)
(11)Mathematische Physik(注:分子運動論、表面張力、弾性論、光学、電磁気学、熱力学、気体論など)
(12)Geodaesie und Astronomie, Meteorologie(注:測地学、天文学、気象学)

これらのセクションは、更に、いくつかのKapitel(チャプター)に分かれている。扱ってる内容は、数学教育科学史のようなものから、物理学、統計学まで含んでおり、現代的な分類での数学よりも広範囲に渡る。

物理学に関する論文は(10)(11)(12)に含まれるので、結構多いが、Michelson-Morley実験(1887年)、Hertzの電磁波論文(1888年)とか、本質的に実験の論文だと思うようなのも載っている。Hertzの電磁波実験について、Poincareは複数の論文を書いているが、同誌には、PoincareがHertzの実験に言及した、1891年の3本の論文レビューが掲載されている。Poincareの原論文の一本は、例えば、以下で見れる。
H. Poincaré (1891) Sur la résonance multiple des oscillations hertziennes.
https://henripoincarepapers.univ-lorraine.fr/chp/text/sarasin3.html

統計学に分類されるテーマは、(4)に分類されているっぽい。例えば、1898年には、PearsonやGaltonの論文が複数収録されている。この年は、"chance or vitalism"と題された論文が、いくつか、ここに含まれているが、どうも、生命の起源が"偶然"生じたものか、生気論を採用するのかという議論っぽい(化学進化説は、1922年のオパーリンに始まるとされる)。内容が、それほど数学的だったのかは分からない。他に、(ランダムウォークの数学的理論の最初の試みとされる)Louis Bachelierの“Théorie de la spéculation”(1900年)なんかも、(4)に載っている。

新しい分野にも、割と素早く対応してて、セクション12には、1880年代にMathematische Geographie und Meteorologieというチャプターが追加され、1888年から、セクション名にMeteorologieが挿入された。どうでもいいけど、1905年のセクション12のMathematische Geographie und Meteorologieに、H.Nagaoka(長岡半太郎?)、K.Honda(本多光太郎?)という名前が見られる。


1905年のAlgebraのセクションには、3つのチャプターがあり、
(I)Gleichungen, universale Algebra und Vektoranalysis
(II)Theorie der Formen (Invariantentheorie)
(III)Substitutionen und Gruppentheorie, Determinanten, Elimination und symmetrische Funktionen
となっている。この3つのチャプター構成は、原則的には、初期から維持されていて、E.H.Mooreの1898年の論文は、チャプター(III)に載っている。

代数の分野では、1875年には、チャプター(III)のタイトルに"Substitutionen und Gruppentheorie"がなくて、不変式論より前(※)は、代数≒(一変数方程式と連立線型方程式の)代数方程式論だった("代数学の基本定理"という名前に名残が見える)から、19世紀後半の代数の中で、不変式論の存在は、割と大きなものだったようだ。

※)一般的には、不変式論の起源は、George Booleの1840年頃の仕事だとされるので、これに従っている。ただ、よく考えると、「任意の対称式が基本対称式の多項式で書ける」という事実は、18世紀には知られていて証明されていた(Waringが最初で、独立に、Vandermondeも示したと言われている)。これは、不変式論の結果と言っても差し支えないけど、当時、対称式の研究(ニュートン恒等式に見られるように、17世紀には存在してた)は、代数方程式論の一部と思われてたらしい。

現在では、代数と考えられる結果が、他のセクションにあることも稀にある。Killingの(有限次元)Lie代数かLie群に関する論文は、1889年や1890年には、セクション6の偏微分方程式に入っている。Lieの論文で"Transformationsgruppen"がタイトルに入ってるものも、ここに分類されてる。Lie自身の動機は、解析学にあって、それを重視してたようなので、Lieにとっては、むしろ正しい分類だったのかもしれない。

本題と関係ないけど、意外だったのは、1869/1870年合併号の第2巻時点で、Kontinuitätsbetrachtungen(Analysis situs)がセクション8に含まれていて、遅くとも1890年までには、Kontinuitätsbetrachtungen(Analysis situs, Topologie)という名前になっている。紹介されてる論文数は多くはないのだけど、ポアンカレの論文も1900年版などで紹介されている。大体、トポロジーの歴史というと、オイラーの話して、ポアンカレに飛ぶので、トポロジー創始者ポアンカレだと思ってたけど、ポアンカレの頃には、割と知られたテーマだったっぽい。Topologieという用語は、公的には、数学者Johann B. Listingの1847年の著書Vorstudien zur Topologieで最初に使われたらしい。また、多分、それより前のものだと思われてるけど、Gaussには、未出版の手稿"ZUR GEOMETRIA SITUS"というのがあって、結び目理論をやっている(絡み数の話とは別)。Gaussは、なんか小さい結び目の分類をしてるっぽいけど、どういう結果なのか不明。Geometria situsという名前は、Leibnizに由来するらしく、当人は、ラテン語でgeometria situsと呼んだものの、Leibniz自身は、このテーマについて、何か新しい定理を発見したということはないらしい。Eulerの1736年の論文タイトルにも、この単語が含まれるが、Leibnizの意図に沿うものなのかは分からない。Vandermondeの1771年の論文"“Remarques sur les problèmes de situation”には、LeibnizとEulerへの言及が見られる。


Fisherが書いている"Theorie der Formen"のエントリー数の数値は、前者の論文に詳細なデータが載っていて、全部まとめると、以下のようになっている。

1887 45  1888 68  1889 46  1890 42  1891 40  1892 47  1893 50  1894 50
1895 25  1896 30  1897 35  1898 31  1899 34  1900 34  1901 31  1902 29
1903 36  1904 45  1905 32  1906 37  1907 26  1908 33  1910 28  1911 32 
1912 26  1913 30
1914&1915 74
1916 to 1918 30
1919 to 1920 19 
1921 to 1922 20
1923 19  1924 21  1925 25  1926 17  1927 26  1928 28  1929 19  1930 18
1931 9   1932 9   1933 9   1934 15  1935 5   1936 16  1937 13  1938 7
1939 5   1940 5   1941 4 

これを鵜呑みにすると、1890年以後、ある時期を堺に急激に減ったというより、1890年〜1940年まで、ほぼ単調減少していっていったように見える。全体の論文数は増加傾向にあっただろうことを思えば、不変式論が存在感を徐々に弱めていったことは、間違いないだろう。

一応、データの裏付けを取りたい。

Jahrbuch über die Fortschritte der Mathematik (1890,Band XXII)
https://archive.org/details/jahrbuchberdief02unkngoog/page/n28/mode/2up

を見ると、1890年は、44本ある。Zahlentheorieのところにも、Theorie der Formenがあるけど、こっちは、多分、二次形式の理論(?)。

1905年は"Theorie der Formen"の下に、2つの下位分類があって、Theorie der algebraischen Formenに分類されてるのが24本と"Weitere Literatur"(further literature)に3本、Differentialinvariantenに分類されてるのが6本で、計33本。なんか、微妙にずれてるのが気になるけど、概ね、論文の集計は合ってそう(?)。

ついでに、Fisherの論文には記載のない古いのも、いくつか数えてみると

year 文献数 総ページ数 "代数"ページ数
1875年 21本 734 46
1878年 35本 809 73
1879年 27本 820 63
1880年 27本 873 60
1881年 38本 868 70
1882年 26本 989 77
1883年 57本 1000 86
1884年 44本 1118 71
1885年 25本 1160 65
1886年 39本 1126 83
1890年 44本 1261 95
1895年 25本 1121 84
1900年 35本 909 74
1905年 33本 1017 124

となっている。1875年とかは、Capitel 3が、"Elimination und Substituition, Determinanten, Invarianten, Covarianten, symmetrische Functionen"(25本)となっていて、こっちに分類されてるのもあるかもしれない。

古い方も合わせて見ると、1890年前後がちょっと盛り上がっただけで、1895年以降は、元に戻っただけというようにも見える。とはいえ、全体の論文数が増えてたはずなのに、絶対数が横這いというのは、落ち目と言えなくもない。


また、1900〜1965年までに、英語、ドイツ語、日本語で出版された不変式論の本を列挙してみると、1900〜1930年頃までは、そこそこの数が出ていることが分かる。

year authors title
1903 J.H. Grace&A.Young The algebra of invariants
1907 Wilhelm Scheibner Beiträge zur Theorie der linearen Transformationen als Einleitung in die algebraische Invariantentheorie
1909 Franz Meyer Allgemeine Formen- und Invariantentheorie
1914 L. E. Dickson Algebraic Invariants
1915 Oliver E. Glenn A Treatise on the Theory of Invariants
1923 R. Weitzenböck Invariantentheorie
1923 E. Study Einleitung in die Theorie der Invarianten linearer Transformationen auf Grund der Vektorenrechnung
1928 H. Turnbull Theory of Determinants, Matrices and Invariants
1932 竹田 清,藤原 松三郎 不変式論 (岩波講座数学)
1939 H. Weyl The classical groups: ther invariants and representations
1964 G. Gurevich (原著) Foundation of the Theory of Algebraic Invariants
1965 D. Mumford Geometric invariant theory

これは、タイトルから検索したもので、漏れはあるかもしれないし、フランス語やイタリア語などの本は探していない。代数全般の教科書で不変式論を含むものはあるが、検索しづらいので、含んでいない。あと、内容をちゃんと確認してないので、不変式論の本じゃないものを含んでる可能性もある。いくつかの本の第二版や第三版は1940年以後に出ているけれども、1930〜1965年頃までは、新しい不変式論の本は、下火になっていたっぽい。

論文数を見る限り、Weyl自身が書いている"the tree of invariant theory has shown new life, and has begun to blossom again"というような状況は、全く存在してなかったと思われる。1940年以降の論文数が定かでないけど、1940年代、50年代に不変式論の本が出てないとこを見ると、Weylの本が大勢を変えたということも、なさそうに思える。

完全に論文がなくなったわけではなく、1940年代でも、不変式論の論文は、書かれており、細々とは生き残っていたと思われる。例えば、D.E.Littlewood(※)は、複数の不変式論の論文を書いているし、1950年代には、Hilbertの第14問題の解決というような仕事もあったので、完全に停滞していたわけではなさそう。

※)D.E.Littlewood(1903〜1979)は、Littlewood-Richardson係数などに名前が残ってるけど、Hardyと共同で仕事をしたJ.E.Littlewood(1885〜1977)とは別人で、親戚関係などにもなかったらしい。

D.E.Littlewoodは、1940年に(有限群とコンパクト群の)表現論の本("The theory of group characters and matrix representations of groups")を出版していて、Weylもそうだけど、表現論的観点から不変式論の研究に興味をもつ人もいたらしい。一方で、永田雅宜や(多分)Mumfordのような人は、環論とか代数幾何学方面から不変式論に触れていたようである。



WeylのThe classical groupsの書評は、Philip Hallによるものと、Jacobsonによるものがあった。
Reviews of mathematical gazette: The Classical Groups, their Invariants and Representations.
https://doi.org/10.2307/3605725

Book reviews, The Classical Groups
https://doi.org/10.1090/S0002-9904-1940-07236-2

どちらのレビューも1940年のものだけど、Hallは、以下のように書いている

There are three principal ingredients involved. First, there is the theory of algebraic invariants and covariants, a " period " subject, now somewhat out of fashion. Secondly, there is the theory of semi-simple algebras, which has been for the last dozen years or so a particularly fertile field, and is now as a result of the fundamental discoveries of this period one of the most satisfying branches of modern algebra. Thirdly, forming something of a link between the former two, is representation theory.

不変式論は、時代遅れになり、一方、"modern algebra"が流行ってるが、両者を表現論が結びつけるみたいなことを言ってる。

Jacobsonは、1930年以前の高等代数の教科書では、大抵、不変式に紙数を割いたものだが、"最近"の公理的な代数の教科書では、完全に無視されており、不変式論は"modern algebra"の発展と殆ど無縁になっていると証言している。

It is a curious fact that while almost all the textbooks on higher algebra written prior to 1930 devote considerable space to the subject of invariants, the recent ones written from the axiomatic point of view disregard it completely. Because of this neglect the phrase "invariant theory" is apt to suggest a subject that was once of great interest but one that has little bearing on modern algebraic developments.

1930年以前の"代数"の教科書として、日本語だと、藤原松三郎「代数学」(1928、29年に1巻と2巻が出たらしい)があって、原書は、著作権が切れているらしく、国会図書館で公開されているのを見ることが出来る(内田老鶴圃から、仮名・漢字や用語を現代的にした版が出ている。本を購入する気はないけど、目次を見る限り、構成は同一っぽい)
代数学. 第1巻
https://dl.ndl.go.jp/info:ndljp/pid/1133275

代数学. 第2巻
https://dl.ndl.go.jp/info:ndljp/pid/1133312

目次を見ると、14章の一部と15章が、不変式論に割かれているっぽい。"行列式"という用語は当時でも使われてるけど、"行列"は"方列"と書かれていて、全く独立した章で議論されてる("行列式"は7章で、"方列の理論"は12章)のも不思議な感じがする。

cf)matrixという用語は、1850年にSylvesterが使ったとされる。実際は、以下のように書いてあるだけで、記法も何もない。

This will not in itself represent a determinant, but is, as it were, a Matrix out of which we may form various systems of determinants by fixing upon a number p, and selecting at will p lines and p columns, the square corrsponding to which many be termed determinants of the pth order.

行列の理論と呼べるものを始めたのは、1858年のCayleyの論文とされている。
A memoir on the theory of matrices
https://doi.org/10.1098/rstl.1858.0002
とはいえ、これに似た記法は、1855年のHermiteの論文にも見られる(Hermiteは、単にsystemeとか呼んでいて、線形変換を表すために使っているので、自然と行列の積を考えることになる。もっと古い論文があるかどうかは確認していない)し、Cayleyの論文に新しい点があるとすれば、非正方行列の積について述べてることくらいだろう。


HallやJacobsonが、"modern algebra"と言ってるのは、一般名詞っぽいけど、van der Waerdenの本"Modern Algebra"の英訳が1930年に出ていて、それを指しているのだと思う。これは、1920年代後半に、NoetherとArtinが行った講義を基にしたらしく、"In part a development from lectures By E. ARTIN and E. NOETHER"と書いてある。

Jacobsonが1930年を区切りに挙げてるのは、"Modern Algebra"の出版年だったからかもしれないけど、本や論文の刊行数も、1930年あたりを(不変式論にとって)変化の年と見ることと矛盾はしない。

不変式論の本が1930年代以降出なくなったのは、Modern Algebraによって、古典的な代数学が駆逐されたのが原因の一つではあるのかもしれない。とはいえ、"Modern Algebra"で取り上げられなかった代数学のテーマには、行列や行列式のような線形代数の理論、表現論などもあって、これらは、それぞれ生き延びて重要になってるので、Modern Algebraにだけ原因を求めることもできない。



抽象代数の教科書で不変式論が出てこないのは、Reynolds作用素の存在を認めれば、Hilbert finiteness theoremの証明は、抽象代数のちょっとした演習問題に過ぎず、個別の具体例を扱わないなら、不変式論について言及するほどのことは何もないという所為もあるかもしれない。簡約群に対するReynolds作用素の存在についても、表現論が出来てしまえば、証明は容易になった。ある意味では、抽象代数と表現論の成立によって、不変式論という独立した分野の存在意義が薄れたとも考えられる。

しかし、不変式環の生成元を具体的に計算するとなると話は別で、19世紀には、計算しない数学者というのは、ありえなかったので、Hilbert以後も、不変式環の生成元を決定する手続きを見つけたいという問題意識はあったと思われる。Noetherが、1916年に、有限群の不変式環が有限生成であることの構成的証明を、わざわざ与えたのも、そういう問題意識があったからだろう。

1926年にHerbert Turnbull(1885〜1961,1928年に不変式論の教科書を書いた人)によって書かれた短い論説

Recent Developments in Invariant Theory
https://doi.org/10.2307/3604142

を読むと、以下のような記述がある。

Gordan's proof carried with it the actual method of determining such a finite system for simpler cases, such as the binary quintic or sextic. Hilbert's more general proof gave no clue how any actual system could be found. Beyond binary forms very little is known of such systems for cubic and higher orders. But a great deal of work has been done in the last twenty years dealing with systems of linear and quadratic forms in three or four homogeneous variables, both for general and restricted transformations.

しかし、1960年代になると、こうした問題意識は、数学者から消えていたらしい。Fisherの論文には、以下のような記述がある。

In an interview conducted in 1965, a mathematician in one of the groups gave his view of the relationship between the problem s with which he was concerned and what he took to have been the Theory of Invariants. Looking to the past he said that the old theory was manipulational and involved horrendous computations. HILBERT ended all this, though people kept on doing computations. Further, this manner of investigating was forgotten; these mathematicians worked without thinking; there was no mathematics in their work.

構成的でなくても存在証明を与えれば数学としては終わりで、具体的に計算することは、数学以外の些末な問題という感じの意見っぽい。

19世紀には、計算しない数学者はありえなかったことを思うと、どっから、この変化が生じたのか謎だけど、L. Corryの"number crunching vs number theory: computers and FLT, from Kummer to SWAC(1850-1960) and beyond"
https://doi.org/10.1007/s00407-007-0018-2
によると、HilbertやMinkowskiは、以下のように書いてるそうである(原文はドイツ語だろうが、出典まで確認してない)

I have tried to avoid Kummer's elaborate computational machinery, so that here too Riemann's principle may be realized and the proof completed not by computations but purely by ideas. (Hilbert, Zahlbericht ,1897)

problems should be solved through a minimum of blind computations and through a maximum of forethought. (Minkowski ,1905)

見通しの悪い計算をできる限り避けて、conceptualな証明を与えるのが望ましいみたいな立場を、Hilbertは"Riemann's principle"と呼んで支持したらしい。(実際の内容を私は知らないけど、伝え聞く話によると)Gordanのfiniteness theoremの証明は"Riemann's principle"に反しており、Hilbertのfiniteness theoremの証明は、"Riemann's principle"に沿ったものだということになるのだろう。このへんのポリシーが先鋭化した結果が、Fisherのインタビューに出てくる数学者の意見なのかもしれない。

Riemannが、どこかで、こういう思想を表明したことがあったのか分からないけど、
A Celebration of the Mathematical Legacy of Raoul Bott
https://doi.org/10.1090/crmp/050
の中に収録されている"The Algorithmic Side of Riemann's Mathematics"には、Riemannが"almost without calculation"と述べたのは、超幾何関数に関する論文の中だと書いてある(但し、Hilbertの言う"Riemann's principle"が、これに由来するとは書いてない)。これが、Riemannのどの論文なのか分からないけど、Riemannの1857年の論文"Beitrage zur Theorie der durch die Gauss'sche Reihe F(α, β, γ, x) darstellbaren Functionen"を見ると、以下のように書いてあって、ニュアンス的には近い(上の文献にある内容とは微妙に違う)

Nach derselben lassen sich die frueher zum Theil durch ziemlich muehsame Rechnungen gefundenen Resultate fast unmittelbar aus der Definition ableiten,

これは、超幾何関数を扱うのに、超幾何微分方程式から始めるか、超幾何積分から始めるか2つの立場があって、KummerやGaussらは、前者の立場を採ったが、後者の立場によると、かなり大変な計算で得られた以前の結果が、定義から殆ど明らかになる、ということを述べている。

Riemannは、超幾何関数論について書いているだけで、一般的な話として、これを述べているわけではないし、定義によっては証明が簡単になるという話でしかない。何より、超幾何関数に対する現代の理解からすれば、Riemannが計算を大幅に削減したからと言って、超幾何関数の裏にある対称性の理解にKummerより近付いたということも全然なかった。Hilbertの"Riemann's principle"が、これに由来するなら、文意を相当に拡大解釈したという方が正当に思われる。

HilbertやMinkowskiは有名な数学者ではあるけど、その小さな一言に、そこまで大きな影響があったかは分からない。多分、19世紀前半くらいまでは、数学、物理、工学は、まだ十分に切り離されておらず、実用性を強く求められた数学では、計算すること、計算法を確立することは、重要だったと思われる。その後、数学者は、実用的でない数学をやる自由を得たので、違うスタンスを採る人も出るようになったという方が、ありそうにも思える。


現代から見ると、Hilbert〜1960年代の不変式論には計算機代数が欠けていた。不変式環の生成元を計算する問題は、一般的な場合に使えるアルゴリズムが、20世紀末〜21世紀初頭に考案されて(計算量の問題があるとはいえ原理的には)解決したと言える(一般的なアルゴリズムでは、計算機の性能が全く足りない問題というのは、いくらでもあるけど)

1960年代には、計算機代数のアルゴリズムがいくつか提案されていて、Buchbergerは1965年に、博士論文Ein Algorithmus zum Auffinden der Basis Elemente des Restklassenrings nach einem nulldimensionalen Polynomidealを書いたそうだ。

Sturmfelsは、1993年にAlgorithms in Invariant Theoryという本を出版し、この本には、有限群の不変式環を計算するアルゴリズムなんかが載っている。

簡約群の場合は、Derksenが、Hilbertによるfiniteness theoremの証明の延長上に、不変式を計算するアルゴリズムを構成して、1998年に、Computational Invariant Theoryという本を出版した。

また、Derksenの仕事を大きく拡張する形で、非簡約群にも適用可能な半アルゴリズムが、Kemperによって2013年に与えられている(arXiv:1310.6851)


まとめとしては、以下のようになる。
1)Hilbertの仕事(finiteness theorem)によって不変式論の研究が下火になったという証拠はなく、偶然、重なって起きていた一時的なブームが落ち着いただけという説が有力です
2)Weylの本の出版前後で、不変式論が復活したということも確認できず、これはWeylの期待でしかなかった

Mumfordの幾何学的不変式論以降、不変式論が復活したというのは、直接の因果関係があったかは不明だが、冒頭のDieudonnéの論説や、紀伊國屋数学叢書の『不変式論』は1970年代に出現していることからも確認できる。21世紀の現在、Amazonで"invariant theory"で検索すれば、不変式論の特定のトピックをを扱った本を、何冊も見ることが出来る。

仮想"ピサの斜塔"実験

ガリレオピサの斜塔の実験に関する最古の記録は、ガリレオの弟子Vincenzo Vivianiが1650年代に書いて、1717年に出版された本にあるものらしく、事実に基づくものではないという意見もある。それはそれとして、
Science Secrets: The Truth about Darwin's Finches, Einstein's Wife, and Other Myths
https://books.google.co.jp/books?id=sjO0eX9PCykC&pg=PA7
という本によると、高所からの自由落下実験は、ガリレオの生きてた時代に、多くの人が実際に行っていた。ガリレオが生まれるより遥か前の1544年時点で、Benedetto Varchiが実験を示唆したとも書いている。1~2メートル程度の高さから、2つの物体を落としてみる程度なら、記録に残ってなくても、実際に試した人は沢山いたと思われる。

また、記録に残っている実験として、以下のような事例があげられている。
(1) 1576年に、パドゥア大学の教授(ガリレオの前任だったらしい)Giuseppe Molettiは、同一の素材で、重さの異なる物体が、同時に地面に着くのを確認したそうだ。実験条件の詳細は書かれてない
(2) (正確な時期は不明だが、おそらく1580年代に)Simon Stevinは、(John Grotiusという人物と共に)高さ約30フィート(10メートルくらい)から、重さが10倍異なる鉛の球を落として同時に着地した
(3) 1612年に、ピサ大学の教授Giorgio Coresioが、ピサの斜塔から自由落下実験を行い、アリストテレスが正しいことを"証明"した。実際に落とした物体の素材、寸法は不明
(4) 1641年に、ピサ大学の教授Vincenzo Renieriが、ピサの斜塔から落下実験を行い、鉛と木のボールでは、少なくとも3キュビト(約1.5メートル?)の差があり、カノン砲弾とマスケット銃弾サイズの鉛の球では、1パーム(7cmくらい?)の差があった。これは、ガリレオへの手紙に書かれてるそうだ

Stevinの実験は、著書De beghinselen des waterwichts(1586)の66ページに記載されている。

Laet nemen (soo den hoochgheleerden H. IAN CORNETS DE GROOT vlietichste ondersoucker der Naturens verborghentheden, ende ick ghedaen hebben) twee loyen clooten d'een thienmael grooter en swaerder als d'ander, die laet t'samen vallen van 30 voeten hooch, op een bart oft yet daer sy merckelick gheluyt tegen gheven, ende sal blijcken, dat de lichste gheen thienmael langher op wech en blijft dan de swaerste, maer datse t'samen so ghelijck opt bart vallen, dat haer beyde gheluyden een selve clop schijnt te wesen. S'ghelijcx bevint hem daetlick oock also, met twee evegroote lichamen in thienvoudighe reden der swaerheyt, daerom Aristoteles voornomde everedenheyt is onrecht.

古いオランダ語のようで、Googleで翻訳しても辛いけど、"30 voeten"が30フィートで、thienvoudigheがtenfoldらしい。

この本は、他2つの本De Beghinselen of Weeghconst及びDe Weeghdaetとを合わせて、3つの著書を、まとめて一冊として出版されたそうで、"De Beghinselen of Weeghconst"に記載されてると書いてある場合もあり、Google booksでの著書名は、De beghinselen der weeghconstになっている。

De beghinselen des waterwichts (from archive.org)
https://archive.org/details/ned-kbn-all-00011058-003/page/n71/mode/2up

De beghinselen der weeghconst (from Google books)
https://books.google.co.jp/books?id=O6BmAAAAcAAJ&pg=RA3-PA66


真空中で実験すれば、本当に同時に落下するものと思われるが、当時の実験結果はバラバラで、むしろ後の時代に行われた実験の方が、「同時には落下しない」という結論になっている。おそらく、16世紀くらいには、それほど高くない位置からの落下実験を行っていて、落下時間の差が見えにくかったのだろう。時代が下ると、徐々に落下開始高度が大きくなって、落下時間の差がはっきり確認できる程度に大きくなったと思われる。ピサの斜塔の高さは57メートルだそうで、大阪城とほぼ同じだけど、現代で、こんな実験をすると怒られるので、代わりに計算する。

実験に使用した落下物のサイズについて、Renieriの実験条件くらしか手がかりがない。マスケット銃の弾丸直径は、1~2cmのことが多い。カノン砲弾については、例えば、16世紀のカルバリン砲は、大体、砲弾の大きさが10cm前後だったらしい(Wikipedia情報)。鉛の密度は、11340(kg/m^3)なので、直径10cmでも、重さ5~6kgくらいになる。塔の天辺に持ち運ぶことや加工の手間を考えても、このへんが限界だろう。当時は、弾丸形状が球だったので、実験のためだけに金属球を作成するより、銃弾や砲弾を、そのまま使った可能性もある。
cf)Culverin
https://en.wikipedia.org/wiki/Culverin

落下距離が57メートルだと、最終速度は40(m/s)にも到達しない。それでも時速100キロとかなので、見た目には相当速いはずだけど。長さと速度のオーダーから、レイノルズ数は、10^5前後と見積もられる。この領域では、空気抵抗は、速度の2乗に比例すると近似して問題ないだろう。球体の抗力係数C_dは、Wikipediaによると、0.47らしいので、この数値を使うことにする。

厳密に言えば、この抗力係数は、等速運動する時の物で、自由落下によって加速し続けている時の抗力と同一視するのは正しくないかもしれない。非定常抗力についても古くから論文はあるけど、良いデータが見つからないし、抵抗係数自体が、このモデルに基づいて決定されてたりするので、そこまで酷い結果にはならないと考えることにする。

速度をvとして、運動方程式
\dfrac{dv}{dt} = g - k v^2
になる。gは、重力加速度で、k=\dfrac{1}{2} \rho_{air} C_{d} S / mで、\rho_{air},S,mは、空気の密度、球の断面積、球の質量。球の半径をRとすると、S= \pi R^2。初期条件はv(0)=0としておく。

終端速度v_f = \sqrt{\dfrac{g}{k}}と時定数\tau = \dfrac{1}{k v_f} = \dfrac{1}{\sqrt{kg}}を定義しておくと
\dfrac{dv}{dt} = -k(v - v_f)(v + v_f)
なので、簡単に積分できて
v(t) = v_f \tanh(\dfrac{t}{\tau})
になる。時間tで積分すると、落下距離は
h(t) = v_f \tau \log( \cosh(t/\tau) )
となる。

正実数xが十分大きいとき、
\log(\cosh(x)) = \log(e^{x}+ e^{-x}) - \log(2) \approx x - \log(2)
なので、非常に長い時間経過の後には、
h(t) \approx v_f \tau \left( \dfrac{t}{\tau} - \log(2) \right)  = v_f t - \dfrac{\log(2)}{k}
で、落下距離は、終端速度と経過時間の積で見積もれるという直感的に正しそうな結果が得られる。


球体の素材は、鉛か木が多い。木材は多孔質材料で、そのことが(空気抵抗などに)どういう影響を及ぼすか分からないので避けたいけど、歴史を変えることはできないので仕方ない。ここでは、多孔質性に起因する効果は全部無視する。鉛の密度は11340(kg/m^3)として、木の密度は種類によって幅があるが、1000(kg/m^3)としておく。空気の密度は、1.293(kg/m^3)とする。球体の密度を\rhoとするとk = \dfrac{3 \rho_{air} C_{d}}{8 R \rho}になる。

で、半径と素材ごとに、高さ57メートルの落下時間Tを計算すると、以下のようになる。

半径 素材 v_f(m/s) τ(s) T(s)
10cm 鉛  221 22.53 3.42
5cm 156 15.93 3.42
5cm 46 4.73 3.58
2cm 99 10.08 3.44
1cm 70 7.13 3.47
1cm 21 2.12 4.14

これに基づいて比較計算すると
半径1cmの鉛球と10cmの鉛球だと、後者が着地する時点で、前者は、2メートルくらい上空にいる計算になる。
半径1cmの鉛球と2cmの鉛球だと、後者が着地する時点で、前者は、1メートルくらい上空にいる計算。
半径5cmの木球と5cmの鉛球だと、後者が着地する時点で、前者は、4.5メートルくらい上空にいる計算。

Renieriの観察よりも差が大きく、定量的な一致は良くないけど、理由は不明。実験条件も曖昧なので、計算の仮定がまずいのかもハッキリしない。とはいえ、概して、鉛球同士よりも、鉛球と木球の方が差が大きいという定性的な傾向は合ってる。ピサの斜塔天辺から自由落下実験をやると、同着とは判定できない程度の差が出る可能性があると言っていいだろう。

一方、高さ10メートルからの自由落下の場合、半径1cmの鉛球と2cmの鉛球を使う(重さは8倍違う)と、後者の着地時点で、前者は4cm上空にいるだけという計算になるので、Stevinが同着と判断したのは、仕方ない程度の差であると言える。



というわけで、高所からの自由落下実験は、ガリレオが実際に行っていたとしても、別に先駆者ではない。(短時間では)落下距離が時間の二乗に比例するという近似則については、どうかというと、少なくとも、ガリレオが得ていた重力加速度の数値は非常に酷い。天文対話(1632年)の中で、月から物体を落とすと、3時間22分4秒かかるだろうと書いている。このことから、(月と地球の距離を大幅に誤認していたのでない限り)重力加速度を5.2(m/s^2)程度と見積もってたことになる。

月と地球の距離を(Googleが教えてくれる通り)384400kmとして、この距離を一定加速度9.8(m/s^2)で移動するには、2時間27分37秒程度かかる。1633年のメルセンヌの計算では、2時間29分14秒だそうで、こっちは、かなり正確っぽい。メルセンヌ(1588~1648)は、実際に多くの実験をした人のようで、(空気中では)自由落下距離が時間の2乗に比例しないことにも気付いてたようだ。

実際は、地表から遠く離れれば、地球から受ける重力は弱くなるが、ガリレオメルセンヌの時代には、このことは明確には知られてなかったし、彼らが、そのような可能性を想定したかも分からない。1666年に、Robert Hookeは、物体が地球から受ける重力が、地球中心からの距離に応じて、どの程度減少するか実験的に決めようとしたが無理だったと述べている。


ガリレオは、「天文対話」の一日目で、斜面を転がるボールと、自由落下するボールを比較して、斜面の傾きが\thetaとすると、高さhを落下する間に、斜面をd=h \sin \thetaだけ移動するという旨のことを書いている(数式は使ってないけど)。

同様の議論は、1638年の新科学対話の3日目でも行われてる。
Dialogues concerning two new sciences
https://archive.org/details/dialoguesconcern00galiuoft/page/184/mode/2up

ボールを転がす場合、剛体を回転させる分のエネルギーも必要なので、ガリレオの予測通りにはならないはず。これが、ガリレオの過小評価した重力加速度と整合的になる可能性もあるので、どのくらい正しくないか計算してみる。上の自由落下実験に比べて、低速度、短距離の状況を考えるので、以下では空気抵抗は無視する。

質量をm、回転軸周りの慣性モーメントをIとして、重心の斜面方向の移動速度をv、剛体回転の角速度を\omegaとすると、運動エネルギーは
K = \dfrac{1}{2} m v^2 + \dfrac{1}{2} I \omega^2
で、摩擦や空気抵抗を無視すれば、運動エネルギーと位置エネルギーの和は等しい。ボールの半径をRとして、滑りがないという条件を課すとv=R\omegaなので
K = (\dfrac{1}{2}m + \dfrac{1}{2} \dfrac{I}{R^2}) v^2
になる。

球体の場合、I = \dfrac{2}{5} m R^2なので、
 K = \dfrac{7}{10} m v^2
になる。ボールの移動距離をd=d(t)として、散逸がなければ、運動エネルギーと位置エネルギーの総和は一定になるから
\dfrac{7}{10} m v^2 = m g d \sin \theta
で、一方、移動距離の微分が速度なので、d'(t)=v(t)となり、微分方程式が得られる。これを解くと、
v(t)=\dfrac{5}{7}(g \sin \theta) t
d(t) = \dfrac{5}{14}(g \sin \theta) t^2
と求まる。t = \sqrt{\dfrac{2h}{g}}の時は、d = \dfrac{5}{7} h \sin \thetaになる。ガリレオの予測の70%くらい。

内部が詰まった円筒の場合は、I = \dfrac{1}{2} m R^2で、d = \dfrac{2}{3} h \sin \thetaとなり、予測移動量の67%。

また、内径がaの中空円筒の場合は、I = \dfrac{1}{2}m(a^2+R^2)で、d = \dfrac{2R^2}{3R^2+a^2} h \sin \theta。特に、a \to Rで、d \to \dfrac{1}{2} h \sin \thetaで、最悪、50%の移動量。

The Role of Numerical Tables in Galileo and Mersenne
https://doi.org/10.1162/106361404323119862
によると、メルセンヌは、斜面を転がす実験も追試してて、転がる距離は、ガリレオの記述より顕著に短いのを確認したと書いている。細かい数値の記載はないらしいので、上の計算が合ってるのかは知らない。

Maxwell方程式の表現論II(1)masslessスカラー場

The minimal representation of the conformal group and classic solutions to the wave equation
https://arxiv.org/abs/0901.2280
を読んで
Maxwell方程式の表現論
https://m-a-o.hatenablog.com/entry/20150621/p1
が正しくないことに気付いて、とりあえず、スカラー場の計算をした。
so(n+1,2)の極小表現の実現
https://vertexoperator.github.io/2021/05/05/hermite_BDI_minrep.html

論文では書かれてなかったけど、運動量空間での最低ウェイトベクトルを計算して、最低ウェイト条件の計算までをやった。スカラー場だけなので、4次元時空に限定することなく、一般の(n+1)次元時空での計算。運動量空間で計算する必要はないけど、式の形は、単純な形になる。

以前、間違えた理由は、最低ウェイトベクトルは、Lorentz不変になると思い込んでて、そうなるようにCartan部分環を選んだのだけど、Lorentz不変になるように選ぶのではダメらしい。生成子が全部コンパクトになるように選ぶのだけど、イマイチ、それで正しい理由が理解できてない。

スカラー以外の場については、今回計算したスカラー場を成分に持つ多成分場を作ればいけるはずで、前回と同じだと思うけど、まだ計算はしてない。

Lennard-Jones流体の分子シミュレーション(2)分子動力学vsメトロポリス法

以前、分子動力学の実装を作ったけど、諸条件、諸パラメータをこれと合わせることで、メトロポリス法と分子動力学で結果を比較できる。メトロポリス法を使ったことがなかったので、やってみようと思った。

分子動力学では、NVE一定の計算が、一番基本的になるのに対して、メトロポリス法では、NVT一定の計算が、一番基本的になる。メトロポリス法でも、NPT一定の計算をやる方法は考えられているし、分子動力学でも、barostatやthermostatを使えば、NVTやNPT一定の計算ができることにはなってるけど。また、メトロポリス法に不利な点として、輸送係数を計算する方法がないと思う。

全部実装して計算してから、気付いたけど、以下に書いたようなことは、Verletが、1967年の論文でやっていた。この論文は、Lennard-Jones流体の分子動力学計算を報告した最初の論文だそうで、この論文にさらっと書かれた数値積分法は、その後Verlet法と呼ばれるようになった

Computer "Experiments" on Classical Fluids. I. Thermodynamical Properties of Lennard-Jones Molecules
https://doi.org/10.1103/PhysRev.159.98



メトロポリス法の論文は1953年に出ている。この論文は、与えられた確率分布に従う乱数列を生成するメトロポリスヘイスティングス法の最初の例が記述された論文として、物理以外の分野にとっても、重要な論文となった。

Equation of State Calculations by Fast Computing Machines
https://doi.org/10.1063/1.1699114

何故か、Wikipediaにまでページがある
Equation of State Calculations by Fast Computing Machines
https://en.wikipedia.org/wiki/Equation_of_State_Calculations_by_Fast_Computing_Machines

著者は5人いるけど、その一人Rosenbruthが書いた

Genesis of the Monte Carlo Algorithm forStatistical Mechanics
https://doi.org/10.1063/1.1632112

によると、統計力学の問題をターゲットにしようと決めて、中心となるアルゴリズムを考えたのは、Rosenbruthっぽい。また、最初は、普通に"分子動力学"をやろうと思ったが、計算機のスペックが厳しそうなので別の方法を考えたともある。論文で使われた計算機は、MANIACのようで、メトロポリスが開発を指揮したらしい。


メトロポリスらの論文で実際に計算してるのは二次元剛体球模型だけど、殆どの部分は、模型の詳細とは関係ない。ついでなので、論文を眺めた。

古典統計力学では、アンサンブル平均の計算が基本的になる。アンサンブル平均は、相空間での積分
\bar{F} = \left( \displaystyle \int F(\mathbf{q} , \mathbf{p}) \exp(-E/k_{B} T)d^{M}p d^{M}q \right) / \left( \displaystyle \int \exp(-E/k_{B} T)d^{M}p d^{M}q \right)
のこと。k_{B}ボルツマン定数Eはエネルギー(ハミルトニアン)で、相空間上の関数。Fは、相空間上の任意の関数。Tは温度。相空間の次元は2Mで、空間次元が3、粒子数がNなら、M=3Nであるが、メトロポリスは、空間次元が2で考えているので、M=2N。例えば、F=Eの場合は、アンサンブル平均は、内部エネルギーを与える。

よく出てくるアンサンブル平均の計算では、運動量pに関する積分は解析的に実行して消去できることが多いので、位置に関する積分のみが残る。例えば、ちょっと計算すれば分かるけど、内部エネルギーUは、
U = \dfrac{M k_{B} T}{2} + \left( \displaystyle \int e^{-\phi / (k_{B} T)}d^M q \right) / \left( \displaystyle \int \exp(-E/k_{B} T)d^{M}p d^{M}q \right)
のように書ける。相互作用項がない場合は、理想気体の結果として、統計力学の教科書に書いてあると思う。

運動量が動く範囲は力学的に決まるが、位置座標の範囲は、人間が決める。特に理由が無い限り、立方体領域にするのが簡単なので、普通、そうすると思う(周期境界条件を課すことが多いので、正確にはトーラス)。立方体の体積Vと、粒子数N,温度Tを外部パラメータとして指定することになるので、正しくカノニカル・アンサンブルの計算を行うことになる。

計算したいものは単純だけど、粒子数が100程度でも、M=200とかM=300なわけで、低次元で有効な数値積分アルゴリズム(台形公式やガウス求積)を使って評価するのは難しい。しかし、ポテンシャルエネルギーが大きい配置(例えば、二粒子が極めて近接してるような)は、積分に小さな寄与しかしないので、現代で言う棄却サンプリングによって、粒子の配置を\exp(-\phi /k_{B} T)に比例する確率で発生させ、このような配置に対して、F(\mathbf{q})の平均を取れば、アンサンブル平均を効率的に計算できる。

ところで、適当な統計力学の教科書を開くと、hをPlanck定数として、分配関数
Z = \dfrac{1}{N!h^{M}} \displaystyle \int \exp(-E/k_{B} T)d^{M}p d^{M}q
を計算すれば、自由エネルギーとか、エントロピーとか圧力とかの熱力学諸量は、分配関数の対数を取ったり微分したりする数学的操作で全部計算できるよ〜と書いてある(今の場合、分配関数Zは、N,V,Tの関数)。が、メトロポリス法では、分配関数そのものは計算できないので、こういう話は全然役に立たない。統計力学の教科書は破り捨てよう。

メトロポリス法で計算できるのは、アンサンブル平均なので、熱力学量をアンサンブル平均に帰着する必要がある。メトロポリスらの論文では、圧力を扱っている(論文のタイトルにもある通り、状態方程式を調べたいというのが動機だったので)。圧力は、統計力学の教科書的な定義では
P = \dfrac{1}{\beta Z} \dfrac{\partial Z}{\partial V}
である。この式を形式的に計算すると、ハミルトニアンを体積で微分した関数のアンサンブル平均という、よく分からないものが得られる。体積は、Hamiltonianの変数ではないので、素朴な意味では、この式は意味をなさない。

(メトロポリスらの論文では使われてないけど)たまに見かける議論として、体積の代わりに、Hamiltonianの位置と運動量のスケール変換(正準変換になるように、位置をr倍したら運動量は1/r倍する)を考えて、r=1での微係数を計算をすると、ビリアル圧力が得られる。正確には(空間次元を3とすれば)V=r^3 V_{0}に対して、\dfrac{\partial}{\partial V} = \dfrac{1}{3r^2 V_{0}} \dfrac{\partial}{\partial r}なので、体積と空間次元で割る必要がある。形式的な議論に見えるけど、配位空間内の積分領域でなく、相空間内の積分領域に作用する一径数(正準)変換群を考えて、この変換群で、分配関数がどう変化するのか見ていて、やってることは正当である。正準変換で、相空間の測度が不変に保たれることが重要。

ビリアル圧力は、位置のみの関数で書けるので、メトロポリス法で計算するのに適している。分子動力学でも、ビリアル圧力は、瞬時圧力を計算するのに一般的に使われている。分子動力学の場合は、マクロな圧力は、瞬時圧力の時間平均として得る。

スケール変換に限らず、もっと一般に座標の線形変換を、相空間の正準変換に拡張できる。具体的には、A \in GL(n,\mathbf{R})に対して、 \left(\begin{matrix} A & 0 \\ 0 & (A^T)^{-1} \end{matrix} \right) \in Sp(2n,\mathbf{R})を全粒子に一様に施す。A単位行列の定数倍であれば、さっきのスケール変換の状況。GL(n,\mathbf{R})には、直交変換群O(n)が含まれているが、これは、系全体を回転する(あるいは鏡に映す)だけなので、なんの影響も及ぼさない。直感的には、この線形変換は、粒子のいる立方体領域を変形する操作に相当する。

無限小線形変換で考えると、
 r_{\alpha} \mapsto r_{\alpha} + \sum_{\beta} \epsilon_{\alpha \beta} r_{\beta}
の形で、歪みテンソル\epsilon_{\alpha \beta}は対称としていい(反対称成分は、無限小回転に相当)。Hamiltonianにこの変換を施して、歪みテンソル微分すると、応力テンソル(virial stress)の成分が計算できる。virial stressは、運動量流束密度と見ることもでき、粘性係数を計算するのにも使われる。

他に得られる物理量としては、内部エネルギーの熱的揺らぎから、定積比熱が得られる(はず)。内部エネルギーやエントロピーは、直接測定できる量ではないが、定積比熱は測定できる量だけど、多原子分子だと、分子内振動の自由度からの寄与が正しく評価されない気がする(これは古典統計力学では、どうやっても計算できないので)。単原子分子でも、分子間相互作用からの寄与が、どれくらい正しく評価されるものか分からない。

エネルギーの二乗のアンサンブル平均は、\beta=1/(k_{B}T)として、以下のように計算できる
\bar{E^2} = \dfrac{M^2+2M}{4\beta^2} + \left(\dfrac{M}{\beta} \displaystyle \int \phi e^{-\beta \phi} dq + \displaystyle \int \phi^2 e^{-\beta \phi} dq \right) / \left( \displaystyle \int \exp(-\phi/k_{B} T) dq\right)

エントロピーは、相空間上の関数のアンサンブル平均として直接計算する方法はないと思う。エントロピーが得られると、ヘルムホルツの自由エネルギーF=U-TSがわかり、Z=e^{-F/k_{B}T}によって、分配関数が計算できてしまう。


以上は模型によらない一般論だけど、2次元剛体球(rigid sphereと書いてるけど、現在は、hard sphereの方が、通りがいいと思う。2次元なので、circleあるいはdiskだけど、rigid circleとかhard diskとは言わない)の計算では、もう少し、固有の工夫が要る。

剛体球模型は、粒子同士が重なると、ポテンシャルエネルギーが無限大、重ならなければ、ポテンシャルエネルギーは0というモデルなので、\exp(-\phi /k_{B} T)は、0か1しか取らない。従って、棄却サンプリングでは、重なる配置は即棄却、そうでない配置は即採用と比較的アルゴリズムが単純になる。

一方、ビリアル圧力の計算には、粒子に働く力を知る必要があり、これは、通常の場合、ポテンシャルエネルギーの微分で計算されるが、剛体球模型では、許可される配置に於いて、ポテンシャルエネルギーは常に0であって、そのまま適用できない。剛体球模型で力が働くのは、粒子同士が衝突した一瞬であって、メトロポリスの論文では、この衝突力の評価を、動径分布関数(ある粒子から一定距離にある粒子密度)から評価する式を与えている。動径分布関数も、解析的に決めることはできないが、数値的に外挿することで評価したと書いてある。

あと、メトロポリス法では、乱数生成が必要だけど、疑似乱数生成アルゴリズムに何を使ったかは書かれてない。当時は、von Neumann考案のmiddle-square methodと、Lehmerの方法というものが知られていたっぽい。Lehmer乱数は、線形合同法の特殊ケースでもある。多分、どっちかの方法を使ったんだろう。現在は、どっちも使われてないアルゴリズム


二次元剛体球模型は、実験との比較ができないtoy modelなだけでなく、計算機が速くなった今となっては、本質的じゃない部分で却って面倒が多い。というわけで、普通に、3次元のソフトポテンシャル模型を考え、ポテンシャルのモデルとしては、ポピュラーなLennard-Jonesポテンシャルを使ってメトロポリス法を実装した。希ガス気体は理想気体と変わらなすぎるので、希ガス液体(今回は希ガスアルゴン)の計算をやる。で、冒頭に書いたように、分子動力学や実測結果と比較する。

分子動力学の計算では、全粒子対で相互作用計算をすると、粒子数Nに対して、O(N^2)なので、カットオフ距離を設定して、計算量をO(N)にしている。メトロポリス法は、最初に一回だけ全粒子対の計算をするのみなので、カットオフ距離は別に必要ない。ただ、今回は、条件を揃えて計算するために、カットオフ距離を設定できるようにした。

Lennard-Jonesポテンシャルで計算するのに、カットオフを用いる場合、内部エネルギーや圧力に、カットオフで削った部分の長距離補正項を足す必要がある。g(r)を動径分布関数とすると、内部エネルギーと圧力は
U = \dfrac{3}{2}Nk_{B}T + 2\pi N \rho \displaystyle \int_{0}^{\infty} \phi(r) g(r) r^2 dr
p = \rho k_{B} T - \dfrac{2 \pi \rho^2}{3} \displaystyle \int_{0}^{\infty} \phi'(r) g(r) r^3 dr
などと書ける。\rhoは粒子数密度。長距離補正は、カットオフ距離より遠い部分の積分
 U_{LRC} = 2 \pi N \rho \displaystyle \int_{r_c}^{\infty} \phi(r) g(r) r^2 dr
 p_{LRC} = -\dfrac{2 \pi \rho^2}{3} \displaystyle \int_{r_c}^{\infty} \phi'(r) g(r) r^3 dr
という形。Lennard-Jones流体に対する補正項の計算では、g(r) \approx 1と近似するのが一般的。こうすると、積分が計算できる。圧力の長距離補正は、密度の二乗で効いてくるので、気体の時はともかく、液体では、かなり大きな影響を持ちうる。

ついでに、一般のvirial stressに対する長距離補正は
\sigma^{ij}_{LRC} = \dfrac{\rho^2}{2} \displaystyle \int_{|\mathbf{r}| \gt r_c} \frac{r_i r_j}{|\mathbf{r}|} \phi'(|\mathbf{r}|) g(|\mathbf{r}|) d\mathbf{r}
という形。
p_{LRC} = -\dfrac{1}{3}(\sigma^{xx}_{LRC} + \sigma^{yy}_{LRC} + \sigma^{zz}_{LRC})
が成り立つ。。

カットオフを入れると、ポテンシャルエネルギーが不連続になるので、微分すると、力が発散するのを気にする人もいるらしい。エネルギーが連続になるように修正したポテンシャルエネルギーを使うこともある。
cf)Numerical Experiments on the Stochastic Behavior of a Lennard-Jones Gas System
https://doi.org/10.1103/PhysRevA.8.1504

Verletは気にしなかったようなので、これは、気にしなくてもいい気がする(というか、入れてない)


アルゴンのLennard-Jonesパラメータを使って、粒子数10万、密度1407(kg / m^3)、温度85(K)あたりで、液体と思われる平衡状態を生成して、これを初期状態に、カットオフ距離を変えつつ、分子動力学とメトロポリス法で圧力を計算した結果及び圧力補正項は以下のようになった。rcutがカットオフ距離で、sigmaはLennard-Jonesパラメータのσ。通常、rcutはsigmaの2.5〜10倍程度の範囲で設定するっぽい

rcut / sigma p(atm)@MD p_LRC(atm) T(K)@MD p(atm)@MC
2.5 1.93 -312 85.26 -2.57
5.0 9.80 -39.1 85.02 11.98
7.5 11.25 -11.6 84.95 12.55
15.0 -1.45 12.90
30.0 -0.181 10.43

メトロポリス法の温度は、85(K)で、積分点を100万個サンプリングした。カットオフ距離が大きくなると、カットオフによる計算高速化の意味がなくなるので、分子動力学では、大きなカットオフはやってない。圧力の計算値は、長距離補正込みで、p_LRCは圧力の長距離補正。今は液体を扱ってることもあって、標準的な範囲のカットオフ距離だと、長距離補正の影響は、結構でかい。

Verletの論文では、rcut/sigmaは、2.5や3.3を使ったと書いてある。Verletの論文を読んだのが、この計算した後だったせいで、Lennard-Jonesポテンシャルのパラメータは、Verletの使った数値とはかすかに異なる(例えば、私はσを3.41Åにしたけど、Verletは、3.405Å)

Verletの論文で、rcut/sigmaが小さめなのは、粒子数が少ないせいもある。私が、粒子数10万を選んだのは、特に根拠があったわけでもないけど、今回くらいの条件で、長距離補正が支配的にならないようにしたいと思うと、粒子数10万で、多すぎるとも言えないように思う。


で、実験と比較したい。以下は、やや古い論文ではあるが、測定結果に基づいて、液体アルゴンの温度と圧力から密度を計算するフィッティング式が書かれている。

Density of liquid nitrogen and argon as a function of pressure and temperature
https://www.sciencedirect.com/science/article/abs/pii/0031891460900422

85(K)での測定結果はないが、この式に従って計算すると、
85(K),1(atm)での密度は1409(kg/m^3)
85(K),10(atm)での密度は1411(kg/m^3)
85.25(K),1(atm)での密度は1407(kg/m^3)
85.25(K),10(atm)での密度は1410(kg/m^3)
85.5(K),10(atm)での密度は1408(kg/m^3)
86(K),10(atm)での密度は1405(kg/m^3)
などとなるので、計算結果は、全くの的外れってことはなさそう。

最初は、(温度は85Kで)、1400(kg/m^3)、1405(kg/m^3)などで計算したが、いずれも負の圧力が実現されたので、次に1407(kg/m^3)を選んで計算をしたら、正の圧力が得られたので、それから文献調査をした。同じ温度で、1(atm)と10(atm)でも、密度が2~3(kg/m^3)くらいしか変わらない割に、そこそこの値を出していると思う。

Lennard-Jonesポテンシャル自体が、そもそも雑な近似(パラメータの決め方も正しい方法とかないし)なので、実験結果との一致がしょぼくても仕方ないけれど、もう少し、ちゃんと測定結果との比較をしてみようと思って、以下の論文の結果と対応する計算結果を出した。論文では、温度と密度と圧力が与えられてるので、温度と密度を指定して、圧力を計算する。

Measurement and correlation of the (pressure, density, temperature) relation of argon I. The homogeneous gas and liquid regions in the temperature range from 90 K to 340 K at pressures up to 12 MPa
https://doi.org/10.1006/jcht.1994.1048

T(K) density(kg/m^3) p(atm)@exp p(atm)@MD T(K)@MD p(atm)@MC
90 1381.34 9.65 25.97 90.20 26.81
100 1320.44 19.58 25.59 100.05 22.50
110 1250.17 19.76 10.49 109.68 10.42

粒子数は10万。
MDのカットオフ距離は、σの5倍。
メトロポリス法のカットオフ距離は、σの30倍で、積分点は100万点。

分子動力学で初期平衡状態を作って、NVE一定の分子動力学とメトロポリス法による計算を行った。とりあえず、圧力を高い精度で予測するには至ってない。


今回の計算に使用したコードを、gistに置いておく。
https://gist.github.com/vertexoperator/49737c13e432bf13e26c851683a6821d
パラメータとかは、mainの中でハードコードしてるのを手動で書き直して、使ってたので、使い勝手はよくない。


差し当たって、適当に検索して出てきた数値を使ってシミュレーションした。LJパラメータは、文献によって、そこそこバラツキがあるので、仮に、たまたま良いパラメータを引いて、ある範囲の条件下で、熱力学量がよく計算できても、パラメータいじれば合うよねという感じがしなくもない。なので、Lennard-Jonesパラメータにも根拠が欲しい。結局、実験的に決めるより、第一原理的に計算する方法があればベスト思われ、それには量子力学が必要だけど、随分昔にやった

量子力学はLennard-Jonesポテンシャルを再現できるか
https://m-a-o.hatenablog.com/entry/20121217/p2

を眺めると、いまいちLJパラメータの計算値と実験値は合わないと書いている。今適当に検索すると、このにっきを書いた翌年に

Theoretical Investigation of the Dispersion Interaction inArgon Dimer and Trimer
https://doi.org/10.1016/j.procs.2013.05.247

という論文が出てて、CCSD(T)/aug-cc-pVTZで計算した場合、Ar-Arの平衡分子間距離が3.75Åあたりになると書いてある。普通のLJポテンシャルで、エネルギー最小点が一致するようにパラメータを決めると、σが3.34Åくらいに相当。この論文で引用されてた

A highly accurate interatomic potential for argon
https://doi.org/10.1063/1.466051

を見ても、平衡分子間距離は、ほぼ同じ値。Verletの使ったσが、3.405Å。εについては、Fig1(a)のグラフを見ると、平衡分子間距離におけるエネルギーが、(無限遠に置いた時を基準として)約-100(/cm)=-0.0124(eV)。上のシミュレーションで使った値は、eV換算で、0.01034(eV)。

LJポテンシャルの式の形は単純すぎるので、別の関数形を使うことも考えるべきなのかもしれない。安直にパラメータを増やすのはよくないが、双極子の次は、四重極も...と考えるのは自然なことで、実際に"精密化学"界隈では、r^(-8)やr^(-10)に比例する項も計算されるのが普通らしい。適当に検索した所、London分散力の延長として、四重極を考慮した人は、1938年には存在している
Quadrupole Contributions to London's Dispersion Forces
https://doi.org/10.1063/1.1750184
古典分子動力学で、そのようなポテンシャルを使っていけない理由は別にない。

このへんの問題は、おいおい追求するとして、とりあえず、CCSD(T)/aug-cc-pVTZ計算の追試のため、Gamessに以下のような入力ファイルを食わせた所、核間距離は、3.8008895(ANGS.)で、TOTAL ENERGYは、-1054.1027355965(hartree)となった。論文より平衡分子間距離が少し大きいけど、まぁ許容範囲と思う

! rungms Ar2.inp  > Ar2.log
 $contrl runtyp=optimize CCTYP=CCSD(T) NUMGRD=.T. ISPHER=1 coord=unique $end
 $system TIMLIM=20000 MEMORY=10000000 $end
 $basis gbasis=ACCT $end
 $guess guess=Huckel $end
 $data
argon dimer
C1
 Ar  18 0.0 0.0 0.0
 Ar  18 0.0 0.0 3.7
 $end

同じようにして、希ガス二量体に対するCCSD(T)/aug-cc-pVTZレベルの計算をした結果を、まとめると、以下のようになった。

Rm(Angs.) Em(hartree) E0(hartee) (E0-Em)/k_B(K) R_nn(Angs.) 融点(K) 沸点(K) 融解熱/R(K)
Ne 3.0916867 -257.6254676649 -257.6252957319 54.293 3.13 24.56 27.07 40.29
Ar 3.8008895 -1054.1027355965 -1054.1023022117 136.853 3.76 83.80 87.30 141.92
Kr 4.1146791 -5504.4997943600 -5504.4992507992 171.644 4.01 115.79 119.93 197.25

Rm:平衡分子間距離(計算値)
Em:平衡分子間距離におけるエネルギー(計算値)
E0:核間距離を100Åにした時のエネルギー(計算値)
k_B:ボルツマン定数
R_nn:希ガス固体の最隣接原子間距離(Kittelの教科書に載ってるらしいのを孫引き)
融点:出典Wikipedia(多分、1気圧の数値?)
沸点:出典Wikipedia(多分、1気圧の数値?)
融解熱:出典Wikipedia
R:気体定数

組合せ範疇文法の漸進的構文解析

随分と昔に、CCG(combinatory categorial grammar/組み合わせ範疇文法)のパーサを作った。
https://m-a-o.hatenablog.com/entry/20160614/p3

この時の実装は、CYK法に近いもので、ボトムアップ構文解析である。

ところで、人間が自然言語を処理する時は、単語を先頭から順に処理していってると思われる。普通のCCGに於いて、例えば、I saw a cat.という文は標準的には、以下のような導出木によってparseされる。

I    saw          a          cat
--  ---------   ------      -----
NP  (S\NP)/NP    NP/N         N
                ----------------- (/-application)
                       NP
    ----------------------------- (/-application)
               S\NP
--------------------------------- (\-application)
               S

この場合、文章が最後まで提示されないと構文解析を開始できないが、英語を知ってる人は、I saw a ...まで提示された時、次に目的語が来ることを期待していて、最後まで文が提示されなくても、ある程度の構文解析を行い、かつ、文章が完成していないことも理解している。

CCGには、単純な左適用、右適用以外にも、色々な導出規則があって、特にtype raisingという規則では、最終的に得たい統語範疇がSで、途中までの統語範疇がXの場合、残りの部分の統語範疇はS\Xだろうから、統語範疇Xを、S\Xに右適用して統語範疇Sが得られるS/(S\X)に置き換えることが許される。元々は、type raisingがあると、単語の統語範疇を追加することなく、導出木を作れるケースがあるという理由で、導入された規則だと思うけど、続きの文章に対する予測を行うのに類似した作用を定式化していると考えることもできる。

type raisingを使うと、上の文章の場合、以下のように、前から順に導出木を作っていくこともできる。

   I        saw          a       cat
-------   ---------   ------    -----
  NP      (S\NP)/NP    NP/N       N
-------- (type raising)
S/(S\NP)  
-------------------- (composition)
        S/NP
----------------------------- (composition)
            S/N
--------------------------------------- (/-application)
                   S

CCGに於いて、この2つの導出木は、等価な構文解析結果を与える。

つまり、統語範疇X/YとX\Yを持つ単語は、型Y->Xを持つ関数と解釈され、上の2つの導出木は型Sを持つ値を作っている。コンビネータBをB f g = λx.f (g x)で定義すると、これは関数の合成操作で、単語wの"意味"が[ [w] ]で与えられるとすると、後者の導出木の値は以下のように計算できる。

(B (B (λf.f [[I]]) (λx.[[saw]] x)) [[a]]) [[cat]] 
=>  (B (λf.f [[I]]) (λx.[[saw]] x)) ([[a]] [[cat]])
=> (λf.f [[I]]) ([[saw]] ([[a]] [[cat]]))
=> [[saw]] ([[a]] [[cat]]) [[I]]

これは最初の導出木から得られる値と等しい。この柔軟性のために、CCGには同値な導出が無数に存在することになり、枝刈りしないと大変なことになる。追加していいCCGの導出規則は、上のような単純型付ラムダ計算の体系を破綻させないことが必要条件になるが、十分条件は良くわからない(多分、言語ごとに使っていいコンビネータのセットが多少違う?)ので、不足がないという保証はない。

細かく言えば、統語範疇も、もう少し細分化しないと、現在の標準的なCCGでは、"him are I."みたいな文章も通ってしまうので、非文を弾くということには、比較的甘い傾向がある。

前から順に処理していけるかは、実用的観点からも気になる話。機械学習を使ったNLPでも、文章は、単語列を先頭から順に処理していくことで結果を得るのが普通だし、
Unsupervised POS Induction with Word Embeddings
https://arxiv.org/abs/1503.06760
という論文では、窓幅1でword2vecで学習したベクトルからHMMを使って、品詞の教師なし学習をやって、従来法より良い結果が得られると書いている。

窓幅1なので、semanticな情報はほぼ皆無で、統語的な情報のみを含んでるだろうと感覚的には思うが、一方で、そもそも、原理的に窓幅1のword embeddingでは捉えきれない統語情報がないのか疑問に思う。もし、完全にincrementalなparserが作れるのならば、(word2vecで出来るかどうかはともかく)原理的には窓幅1で統語情報を全て得られる可能性はある。

そういうわけで、incremental parserが可能なのかというのは、興味ある問題である。

Incremental combinatory categorial grammar and its derivations
https://dl.acm.org/doi/10.5555/1964799.1964809
では、incremental combinatory categorial grammar(ICCG)と呼んでる。が、結果は完璧でない。

Incremental Derivations in CCG
https://www.aclweb.org/anthology/W12-4623.pdf

は、もう少し詳しく議論している。

3つの連続する統語範疇から一つの統語範疇Xが導出される場合、
(X/Y)/Z Z Y
Z (X/Y)\Z Y
X/Y Y/Z Z
X/Y Z Y\Z => X/Y Y/(Y\Z) Y\Z
Y/Z Z X\Y
Z Y\Z X\Y
Y (X\Y)/Z Z => X/(X\Y) (X\Y)/Z Z
Y Z (X\Y)\Z => X/(X\Y) (X\Y)/((X\Y)\Z) (X\Y)\Z
Y X/Z Z\Y => ???
などのパターンがある。いくつかは自明にincremental parseが可能で、3つはtype raisingを必要とするが、incrementalにparseできる。最後のパターンをincrementalにparseするために、論文では、Geach ruleという新たな規則を追加している(Peter Geachという人がいたらしい)。combinator birdでは、bluebirdに相当し、
A/B : f => (A/T)/(B/T) : λg.λt.f(g t)
のように意味づけすることができる。論文には書かれてないが、
A\B : f => (A\T)\(B\T) : λg.λt.f(g t)
をBackward Geach ruleと(私が勝手に)呼ぶことにする。

1つ目の統語範疇にtype raisingを使い、2つ目にGeach's ruleを使うと、
Y X/Z Z\Y => X/(X\Y) (X\Y)/(Z\Y) (Z\Y)
のような形になって、incrementalにparseできる。

後者の論文では、incrementalにparseするのが難しい例として、以下のようなthat節を挙げている。最も標準的なCCG導出木は以下の形だろう。

the woman        that       every       man          saw        laughed
---------   -------------  -------     ------     ----------    --------
   NP       (NP\NP)/(S/NP)   NP/N         N        (S\NP)/NP      S\NP
                            ------------------
                                   NP
                            ------------------
                                S/(S\NP)
                            ---------------------------------
                                          S/NP
             -------------------------------------------------
                              NP\NP
--------------------------------------------------------------
                            NP
----------------------------------------------------------------------------
                                        S

thatは、目的語を残した文(今の場合、every man sawで、統語範疇はS/NP)を受け取って、名詞句を後ろから修飾し新たな名詞句を作り出す(NP\NPの部分)ので、(NP\NP)/(S/NP)のような統語範疇は、文法解釈的に自然である。

一応、Backward Geach ruleと前者の論文では導入されているargument swap(関数の引数を置換する操作で、(S\NP)/NPを(S/NP)\NPに置き換える)を使い、更にtype raisingを一つの単語で2回やるという反則っぽいことをすると、incrementalにparseできなくはない。

the woman        that              every                   man                                 saw        
----------  -------------  ----------------      ---------------------------                 ---------- 
   NP       (NP\NP)/(S/NP)        NP/N                       N                                (S\NP)/NP 
----------
NP/(NP\NP)
-------------------------
          NP/(S/NP) 
                          ---------------------                 
                     (S/NP)/((S/NP)\(NP/N))
----------------------------------------------   ------------------------------ (type raising)
            NP/((S/NP)\(NP/N))                              NP\(NP/N)
                                                ----------------------------------------------- (type raising)
                                                ((S/NP)\(NP/N))/(((S/NP)\(NP/N))\(NP\(NP/N)))
---------------------------------------------------------------------------------------------- --------------  (argument swap)
                        NP/(((S/NP)\(NP/N))\(NP\(NP/N)))                                          (S/NP)\NP
                                                                                                ------------- (Bwd Geach rule)
                                                                                               ((S/NP)\(NP\N))\(NP\(NP/N))
------------------------------------------------------------------------------------------------------------------------
                                                      NP

こういう無理矢理っぽいことをしても、semanticsの一貫性を保証できるのがCCGの良い点ではあるが、複雑すぎるので、人間の脳が、本当に、こんなことをしてるのか(出来るのか)という点は、疑問である(私は、この導出木を見つけるのに2時間くらい考えた)

実装上は、何回までtype raisingを許すのかという問題が出てくる。全ての単語とparse途中で現れる中間統語範疇が複数回type raisingする可能性があると考えだすと、場合によっては組み合わせが膨大になって大変なことになりそう。

しかし、incrementalにparseする場合、一見、文章として完成していても、続きがあるかもしれないという問題があるので、この困難は本質的には回避不能という気もする。

例えば、He ranという単語列は、2単語で一応完結しており、構文的には、これで一つの文でありえるが、He ran quickly.という文章では、"He ran"の部分の統語範疇は、S/( (S\NP)\(S\NP) )になるべきで、He ran quickly and stopped suddenly.という文章では、"He ran"の部分には、また別の統語範疇を付与する必要がある。

incrementalにparseする場合、"He ran"という2単語が提示された段階で、どこまで文章が続くかは全く未知であって、”He ran"に付与する統語範疇として想定しなければならないパターンは、おそらく無限個ある。そうであれば、完全にincrementalなCCG parserは、一単語目で足止めされることになって、計算できない。

incremental parserが不可能であっても、任意の有限な長さの文に対して、incrementalな導出木が必ず存在するという可能性はある。現実的には、人間が話したり書いたりする文章の長さは、限りがあるし、無限のパターンを記憶することもできないので、人間の脳は、何らかのヒューリスティックで個数を制限して、incrementalな導出木を計算してるのかもしれない。

type raisingは無限のパターンを作り出すための仕組みでもあるし、また、実装上は、多相型のように扱うのがよいと思われ、いつ終わるか分からない文章で統語範疇をfixするのを先送りする役割を果たす。と考えられる。

 He                ran                     quickly
----------     -----------------        -------------
 NP                S\NP                  (S\NP)\(S\NP)
------------   -----------------
∀X.X/(X\NP)    ∀Y.Y/(Y\(S\NP))
-------------------------------- (Y:=X\NP)
     ∀X.X/((X\NP)\(S\NP))
------------------------------------------------------- (X:=S)
                          S


ついでに、1997年にLambekが提案したpregroup grammarというものを読んだ。この文法では、argument swapは自動的に入っている。
Type Grammar Revisited
https://link.springer.com/chapter/10.1007/3-540-48975-4_1

pregroup grammar
https://ncatlab.org/nlab/show/pregroup+grammar

pregroupは、半順序モノイドで、ある性質を持つleft adjointとright adjointを持つ代数構造。順序構造については、 a \leq bの代わりに、簡約的なニュアンスで、 a \to bと書かれることがある。left adjointとright adjointは a^{l} a \to 1 , 1 \to a a^{l}及びa a^{r} \to 1 , 1 \to a^{r} aを満たす。

逆元のようではあるが、a^{l} a = 1というわけではない。実際、a^{l} a = 1だと左逆元そのものであるが、初歩的な代数学の教科書の最初に書いてある通り、左逆元と右逆元は一致してしまうので条件を緩めている。群でないpregroupが存在することは、Lambekの論文やncatlabのページに例が載っている(どっちも同じ例)。明らかに、群でないpregroupは、積について非可換である。

left adjointとright adjointは、通常の逆元が持つのと類似の性質を多く持ち、
1^{l} = 1^{r} = 1
(ab)^{l} = b^{l} a^{l}
(ab)^{r} = b^{r} a^{r}
が成り立つ。また、a^{ll} = (a^{l})^{l}などと表記すると、
 a^{ll} a^{l} \to 1 \to a a^{l}
なので、a^{ll}aが等しいとは限らない。a^{rr}も同様。a^{lr}=a^{rl}=aは成立する。

pregroupはleft dualとright dualが一致しないタイプのrigid category(autonomous category)の例を与えていて、そのような圏の別の例は、Joyal and Streetの論文
AN INTRODUCTION TO TANNAKA DUALITY AND QUANTUM GROUPS
http://maths.mq.edu.au/~street/CT90Como.pdf
の§9で見ることができる。大抵の数学の文献では、left dualとright dualが同型になるような圏しか扱われない(と思う)。


pregroup grammarは、combinatoryでない範疇文法とセットで議論されることが普通なので、\-application ruleが
Y X\Y => X
の形でなく、
Y Y\X => X
と書かれている。紛らわしい上に、面倒だけど、多分、Steedmanが悪い。ここでは、組み合わせ範疇文法の話を書いてきたので、\は、組み合わせ範疇文法の記法に合わせる。

で、A/Bは、\mathrm{A} \cdot \mathrm{B}^{l}に置き換えて、A\Bは、\mathrm{B}^{r} \cdot \mathrm{A}に置き換える。後は、普通の群やモノイドのように思って計算する。合流性は成立してないので、a^{l}aa^{r}a(a^{l}a)(a^{r}a) \to a^{r}aであると同時にa^{l}(aa^{r})a \to a^{l}a \to 1でもある。このへんがparseをめんどくさくするが、CFGなどと同様、O(N^3)でparseするアルゴリズムが知られている。

例えば、"I saw a cat"は

\mathrm{NP} \cdot (\mathrm{NP}^{r} \cdot \mathrm{S} \cdot \mathrm{NP}^{l}) \cdot (\mathrm{NP} \cdot \mathrm{N}^{l}) \cdot (\mathrm{N}) \to \mathrm{S}

と計算される。他動詞"saw"の統語範疇(S\NP)/NPが\mathrm{NP}^{r} \cdot \mathrm{S} \cdot \mathrm{NP}^{l}にマップされて、argument swapを行った統語範疇(S/NP)\NPの場合と一緒になる。"I saw a ..."という途中までの文だと

\mathrm{NP} \cdot (\mathrm{NP}^{r} \cdot \mathrm{S} \cdot \mathrm{NP}^{l}) \cdot (\mathrm{NP} \cdot \mathrm{N}^{l}) \to \mathrm{S} \cdot \mathrm{N}^{l}

となる。

the woman that every man sawという句は、(式が長くなるので)"the book"と"every man"の統語範疇をNPとして、

\mathrm{NP} \cdot (\mathrm{NP}^{r} \cdot \mathrm{NP} \cdot \mathrm{NP}^{ll} \cdot \mathrm{S}^{l}) \cdot \mathrm{NP} \cdot (\mathrm{NP}^{r} \cdot \mathrm{S} \cdot \mathrm{NP}^{l}) \to \mathrm{NP}

となる。

type raisingも整合的になる。例えば、A => T/(T\A)の場合、\mathrm{T} \cdot (\mathrm{T}^{l} \cdot \mathrm{A}^{rl}) = \mathrm{T} \cdot \mathrm{T}^{l} \cdot \mathrm{A}となるが、A \to \mathrm{T} \cdot \mathrm{T}^{l} \cdot \mathrm{A}は、正しいので、問題ない。

Geach ruleとBackward Geach ruleもpregroup grammarで解釈できる。A/B => (A/T)/(B/T)は \mathrm{A}\mathrm{B}^{l} \to \mathrm{A} (\mathrm{T}^{l} \mathrm{T}^{ll}) \mathrm{B}^{l} = (\mathrm{A}\mathrm{T}^{l})(\mathrm{B}\mathrm{T}^{l})^{l}から従う。Backward Geach rule A\B => (A\T)\(B\T)も\mathrm{B}^{r}\mathrm{A} \to \mathrm{B}^{r} \mathrm{T}^{rr} \mathrm{T}^{r} \mathrm{A}から従う。

組み合わせ範疇文法のコンビネータで、pregroup grammarが処理できなさそうのもある。backward crossing composition
Y/Z:g X\Y:f => X/Z:λz.f(g z)
は、英語では必要なことになってるけど、\mathrm{Y}\mathrm{Z}^{l}\mathrm{Y}^{r}\mathrm{X}\mathrm{X}\mathrm{Z}^{l}で、\mathrm{X}\mathrm{Z}^{l}の順序が入れ替わっているので、pregroup grammarでは困りそう。英語では、backward crossing compositionは、heavy NP shiftを説明するために、よく使われる。

ただ、英語でもbackward crossing compositionの無条件な適用は、非文も生み出すと考えられているので、CCGを拡張してslash typeを導入するなどの方法(Modalized CCGとか呼ばれる)で解決を図ろうとする場合もある。

言語によっては、他にも、pregroup grammarで処理できないコンビネータが必要かもしれない。


あと、incrementalにparseすることを考えると、組み合わせ範疇文法もpregroup grammarでも、言語固有の知識を追加で積極的に使わないと効率が悪そうではある。例えば、英語で、名詞句NPが連なることはない(I, Geras, am a fixed point in time.みたくカンマ区切りで列挙するのは別)けど、組み合わせ範疇文法やpregroup grammarの枠組みだけでは、それを捨てられない。

例えば、He she theyという単語列は、英語では出現しないだろうが、pregroup grammarだったら、続く単語列の統語範疇がX \cdot \mathrm{NP}^{l} \cdot \mathrm{NP}^{l} \cdot \mathrm{NP}^{l} \cdot \mathrm{S}で、X \to 1だったら、最終的にSに簡約される。そんなことがないかどうかは、pregroup grammarは教えてくれない。組み合わせ範疇文法だと、以下のようなことができる

  He          she            they
-------   -------------  ---------------
  NP           NP             NP
-------   -------------  ---------------
S/(S\NP)  ∀X.X/(X\NP)    ∀Y.Y/(Y\NP)
------------------------
    S/((S\NP)\NP)
-----------------------------------------
         S/(((S\NP)\NP)\NP)