■
大雑把ではあるが
お住まい | Gr(2,N) | $M_{0,N}$ | P^1(C) |
---|---|---|---|
線形 | wave equation | (一般化)超幾何関数 | Gauss超幾何関数 |
非線形 | GASDYM方程式 | Schlesinger | Painleve VI |
量子論(非線形) | KZ equation | 量子Painleve VI |
というような対応表がありそう。
非線形と書いているのは、ゲージ群がSL(2,C)の場合。Gr(2,N)はGrassmann多様体で、Wolf spaceというものである("Representation theory and ADHM-construction on quaternion symmetric spaces"という論文で、ADHM構成が一般化されている)と同時に、(一般化)超幾何関数も定義できる。また、$M_{0,N}$は種数$g=0$のN点付きRiemann面のモジュライ空間で、Gr(2,N)のChow quotientあるいはHilbert quotientというものとして実現できる(arXiv:alg-geom/9210002)。特に、N=4で特殊化したのが、最後の列。
#今の所、$M_{0,N}$の大域的な情報が必要になる場面はない気がするけど。
Equations for Chow and Hilbert quotients
https://arxiv.org/abs/0707.1801
それぞれの方程式がどこで定義されていると考えるのが一番自然であるかについて、コンセンサスがあるのかは分からない。比較的最近の論文を見ても、しばしば適当な局所アフィン座標上でのみ考えられていて、大域的な空間が何であるのかは書かれていないことも多い。表の意味としては、Gr(2,N)上の方程式を適当に簡約すると、$M_{0,N}$上の微分方程式が出るのだけど、希望的観測としては、Gr(2,N)上の方程式の解の"基底"をなす(古典非線形の場合は、線形性がないので、このようには言えないけど)のじゃないかと期待している。N=4の時、Gr(2,N)は複素Minkowski時空の共形コンパクト化であり、共形対称性も複素化して、sl(4,C)を考えるべきだと思うが、Gauss超幾何関数に於いて、この時空の対称性は、近接関係式として現れる。他のケースでは、時空の対称性は、どこに行ってしまったのか(私の知る限り)定かでないのだけど、超幾何関数同様、全部のパラメータをまとめて考えると、時空の対称性が見えてくるのでないかと思う(特に根拠はないけど)。CFTから時空の対称性を抽出する方法が分かれば僥倖という感じ
GASDYM(Generalized anti-self-dual Yang-Mills)方程式については、4次元以外では、2形式のHodge双対が2形式でないので、高次元化は自明でない。
Twistor Theory and the Schlesinger Equations
http://link.springer.com/chapter/10.1007%2F978-94-011-2082-1_3
では、twistor spaceの方で考えている。GASDYM方程式という名前が出てくるのは同著者らによる"Integrability, Self-duality, and Twistor Theory"という本のようである。4次元以外では、自己双対条件と反自己双対条件は、(少なくとも見た目は)互いに"双対"って感じではない
"量子論"の行は、古典論で対応するものは、量子化した後でも対応するだろうというだけのもので、そもそも、GASDYM方程式の量子化がよく分からないので、根拠は乏しい。まぁ、どちらかというと、この対応を手掛かりとして、量子GASDYM方程式を理解したいという気持ちがある
ノンパラメトリックベイズ(0)適応的棄却サンプリング
もうブームは去った気がするけど、ノンパラメトリックベイズの勉強をすることにした。統計学とかで、パラメトリックモデル/ノンパラメトリックモデルという概念があるけど、それとは関係ないように見える。infinite GMMを実装しようとしたら、適応的棄却サンプリング(ARS,Adaptive rejection sampling)を使うとか書いてあって、よく分からなかったので、そこから。
論文
adaptive rejection sampling for gibbs sampling(PDF)
http://www.math.chalmers.se/Stat/Grundutb/CTH/mve186/1415/adaptive.sampling.pdf
によると、元々はDevroyeという人の本に書いてある方法を改良したものらしい(?)。adaptive rejection samplingという名前は、この論文で命名されたのじゃないかと思うけど。
確率密度関数p(x)が解析的な式で与えられている状況で、普通の棄却サンプリングだと、
Rejection sampling
https://en.wikipedia.org/wiki/Rejection_sampling#Theory
提案分布(proposal distribution)は人間がいい感じに設定することになっているが、そんないい分布わかんねーよとかいうケースで、p(x)がlog-concave(文字通り、p(x)の対数が凹関数であるという条件)を満たす時に、p(x)の定義域上で、複数のxを選んで、各xにおいて、log p(x)の接線を引く。それらをつなぐと、log p(x)を上から近似する区分的線形関数が得られる(log-concaveである必要がここで生じる)ので、これのexponentialを取って正規化したものを提案分布とする、ということらしい(論文では、正規化してない関数を$u_k(x)$、正規化した確率密度関数を$s_k(x)$と書いている)。また、接線を計算するため、p(x)は一回以上微分可能である必要がある。逆関数法では、p(x)を積分する必要があるが、積分はできないけど、微分はできるというケースはよくある
区分的線形関数のexponentialを確率密度関数とするような乱数は、(少し面倒ではあるが)普通に逆関数法で生成できる。
逆関数法
https://ja.wikipedia.org/wiki/%E9%80%86%E9%96%A2%E6%95%B0%E6%B3%95
あと、棄却サンプリングで、提案分布に従う乱数xを発生させて、最終的に棄却された時、提案分布を作る時に選んだ"複数のx"に、これも追加して、提案分布を改善する(一番最初の点は人間が選ぶ必要がある。最低二点必要)。提案分布とp(x)の乖離が大きいxでは、棄却率が高く、これによって乖離の大きい部分が改善される可能性が高い。繰り返し行うと、提案分布の近似は、どんどんよくなっていくので"適応的"という名前が付いている。infinite GMMでは、毎回(Gibbsサンプリングの一ループ毎に)パラメータが変わって、提案分布も作りなおしになるけど
論文では、上から抑える関数とは別に下から抑える関数(論文でsqueezing functionと呼んでているもの)も作っていて、多分、元の確率密度関数を評価するよりも、区分線形関数のexponentialを評価する方が、一般的に計算量が少ないから、ということで、そうしているのだと思う。色々な改良やバリエーションがあるようだけど、区分線系関数のexponentialを使って、上(や下)から確率密度関数を抑える関数を作るという点は共通しているっぽい
※)論文2.2.2において、
が成立するので、squeezing testはスキップしても結果は変わらない
最近、頭が悪くなった気がするので、これくらいだと理解できて良い。
以下に、単純な実装を置いておく。棄却されるたびに、h(x)とh'(x)を計算し直すのは、無駄の極みだけど、わかりやすさ重視。例として、ガンマ分布(np.random.gammaで生成できるが)
""" This is an implementation of the following paper written in python 3.5 Adaptive Rejection Sampling for Gibbs Sampling https://www.jstor.org/stable/2347565?seq=1#page_scan_tab_contents """ import numpy as np def rnd_from_piecewise_exponential(coeffs , intercepts , points): """ density function h(x) in [points[i] , points[i+1]] h(x) = exp(coeffs[i]*x + intercepts[i]) """ assert(len(coeffs)==len(intercepts)),(coeffs,intercepts) assert(len(coeffs)+1==len(points)),(coeffs,points) u = np.random.random() CDF = [0.0] #--cumulative density value at each points for i in range(len(points)-1): z_cur = points[i] z_next = points[i+1] a = coeffs[i] b = intercepts[i] if a!=0.0: r = (np.exp(a*z_next+b) - np.exp(a*z_cur+b))/a else: r = (znext-z)*np.exp(b) r0 = CDF[-1] CDF.append( r + r0 ) u = CDF[-1]*u #--CDFが正規化されてないので for i in range(len(points)-1): if CDF[i] < u and u <=CDF[i+1]: a = coeffs[i] b = intercepts[i] z = points[i] """ compute t such that ( exp(a*t+b) - exp(a*z+b) )/a == u - CDF[i] """ if a!=0.0: t0 = a*(u - CDF[i]) + np.exp(a*z+b) assert(t0 > 0.0),t0 t = ( np.log(t0) - b )/a else: t = (u - CDF[i])/np.exp(b) + z assert(t >= z and t <= points[i+1]),(t,z,points[i+1]) return t def ars(h , hprime , points , support=(0 , np.inf)): xs = [x for x in points] while 1: xs.sort() x0 = xs[0] xN = xs[-1] zs = [support[0]] coeffs = [] intercepts = [] for i in range(len(xs)-1): x = xs[i] xnext = xs[i+1] zi = (h(xnext) - h(x) - xnext*hprime(xnext)+x*hprime(x))/(hprime(x) - hprime(xnext)) zs.append( zi ) coeffs.append( hprime(x) ) intercepts.append( h(x) - hprime(x)*x ) zs.append( support[1] ) coeffs.append( hprime(xN) ) intercepts.append( h(xN) - hprime(xN)*xN ) y = rnd_from_piecewise_exponential(coeffs , intercepts , zs) w = np.random.random() #-- omit squeezing test # lkval = 0.0 # for i in range(len(xs)-1): # if xs[i]<=y and y<=xs[i+1]: # xcur = xs[i] # xnext = xs[i+1] # lkval = ( (xnext - y)*h(xcur) + (y-xcur)*h(xnext) )/(xnext-xcur) # break # if w <= np.exp(lkval - ukval): # return y ukval = 0.0 for i in range(len(zs)-1): if zs[i]<=y and y<=zs[i+1]: ukval = h(xs[i]) + (y-xs[i])*hprime(xs[i]) break if w<=np.exp(h(y) - ukval): return y else: xs.append( y ) if __name__=="__main__": #-- gamma distribution alpha = 2.0 #-- shape parameter beta = 2.0 #-- rate parameter C = np.log(4.0) #-- log( beta^alpha/Gamma(alpha) ) def h(x): return ((alpha-1)*np.log(x) - beta*x + C) def hprime(x): return (alpha-1)/x - beta print( ars(h , hprime , [0.1 , 1.0 , 5.0]) )
ノンパラメトリックベイズ(0.5)Dirichlet Process Mixture ModelとInfinite GMM
Dirichlet process mixture model(DPMM)とinfinite Gaussian mixture model。まだ実装していないので(0.5)。infinite GMMを実装したら、次はinfinite HMMを理解したい
普通、サンプルデータを混合ガウス分布でfittingしようとする時、混合数は、人間が手動で与えるけど、混合数はいくらでも大きくなり得る(つまり∞)ようにしておいて、うまく推定する方法(母集団の分布として、無限混合モデルを仮定するようなものなので、パラメータが原理的には無限個あるけど、パラメトリックモデルではあると思う。混合数を決めないので、ノンパラメトリックらしいけど、しっくりこないネーミングではある)。Dirichlet process mixture model(DPMM)を最初に考えたのが誰かはよく分からない(多分、1974年のAntoniakの論文?)けど、Rasmussenという人が、2000年にハイパーパラメータも込みで推定する方法を考えて、Infinite Gaussian Mixture Modelという名前が付いた。これ以後、色んなInfinite XXXが生まれることになったっぽい。
The Infinite Gaussian Mixture Model
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.9111
多分、DPMMだと、正規分布の混合モデルである必要もないし、理屈上は、Infinite GMMでも、正規分布以外の混合モデルでも使うことはできるのだろうと思う。が、実用上は正規分布以外を考えることは、あんまりない気もする。Rasmussenの論文だと、MCMCでパラメータ・ハイパーパラメータの分布をサンプリングしてるだけのように見えるけど、多くのケースでは、"一番いい"パラメータ・ハイパーパラメータが欲しい気がする(つまり、ベイズ推定じゃなく、単にMAP推定したい)。これについては、MCMCで十分な数のサンプリングしてやって、その中で確率密度が最大になってるものを選べば、近似的に、真の最大確率密度を与える点を得られるというのが常套手法のよう
Rasmussenの論文では、ハイパーパラメータ(事前分布のパラメータをハイパーパラメータと呼ぶらしい)αの事前分布の導出が省略されすぎてて理解不能なのだけど
Hyperparameter estimation in Dirichlet process mixture models
http://citeseerx.ist.psu.edu/viewdoc/citations;jsessionid=A8264D1702C8FD7E1DDAEF8B1F6BD6B9?doi=10.1.1.51.6826
を読むといい気がする。この論文の一番最初に、Antoniakが与えた式として
が出てくる。Antoniakの論文は数学の論文なので全体的に読みたくないが、この式は、Ewensの抽出公式というのと、第一種Stiring数の組み合わせ論的解釈からでる。
第一種Stirling数の組み合わせ数学における意味
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E6%95%B0#.E7.B5.84.E3.81.BF.E5.90.88.E3.82.8F.E3.81.9B.E6.95.B0.E5.AD.A6.E3.81.AB.E3.81.8A.E3.81.91.E3.82.8B.E6.84.8F.E5.91.B3
Ewens's sampling formula
https://en.wikipedia.org/wiki/Ewens%27s_sampling_formula
#Ewensの抽出公式は、1972年に、集団遺伝学の研究で導かれたものらしい。
これで、例えば、3つの要素{1,2,3}があったらクラスタリングの仕方は{{1,2,3}},{{1},{2,3}},{{2},{1,3}},{{3},{1,2}},{{1},{2},{3}}の4パターンあって、ハイパーパラメータαを決めると、それぞれの分割の出現確率が決まる。αは集団遺伝学の文脈では、突然変異"率"を表し、大きいほど、沢山のクラスターに分割されやすくなる(α→∞の極限で{{1},{2},{3}}への分割確率は1となる)。
正規分布のパラメータの事前分布としては、正規逆ガンマ分布というものを使う(これが、Dirichlet processの基底分布)。多変数(でfull共分散)の場合は、正規逆Wishart分布。この分布にも、パラメータ(ハイパーパラメータ)が入っており、これも決める必要がある。このへんの事前分布の決め方は、"In general the form of the priors are chosen to have (hopefully) reasonable modelling properties, with an eye to mathematical convenience (through the use of conjugate priors)"とか書いてあって、計算に都合のよさそうな形を選んだということ(?)
実装には、ガンマ分布に従う乱数の生成が必要になるけど、例えば、numpyを使う場合、
numpy.random.gamma
https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.gamma.html
の確率密度関数は、Rasmussenの論文の定義とは異なるものになっているに注意が必要。
がnumpyの確率密度関数で、論文のは
となっている。両者は
という関係で結びついている。
スピン3以上のゲージ場(1)
物理に於ける代数的なテンソル計算の例
http://d.hatena.ne.jp/m-a-o/20170131#p1
の"おまけ"の続き。
狭い意味では、ゲージ場は定義によってスピン1であるけども、higher spin gauge fieldという言葉は(最近では?)一般的に使われているようなので、それを踏襲する。これは1996年のVasilievの論文(arXiv:hep-th/9611024)以降市民権を得たのだと思う(少なくとも、1980年頃の論文で用語自体は登場している)(私はVasilievの理論については、殆ど何も知らない)。この名称の背景には、質量0の(スピン0でない)ボソンは、"ポテンシャル"を持つことができ、スピン1の場合は、ベクトルポテンシャルと一致するという事実があり、これを以って、質量0の(スカラー場でない)ボソン場をhigher spin gauge fieldと呼ぶ。Vasilievの論文で引用されているいくつかの論文では、表現論的な議論は特にされていないが、
[1] Massless Fields as Unitary Representations of the Poincare Group
http://onlinelibrary.wiley.com/doi/10.1002/prop.19790270403/abstract
は表現論的視点から類似の議論を行っているように見える。これは1979年の論文で、大体この頃、higher spin gauge fieldに関するコンセンサスができたっぽい
通常の電磁場と一光子状態は、形式的には同じ形のMaxwell方程式を満たす(従って、共に"ベクトルポテンシャル"を持つ)ものの、前者は実数値の場で特に規格化されていない一方、後者は複素数値の場で自然なユニタリ内積が定まっていて(多分)規格化されているなど、大きな違いがある(規格化されていると積極的に考えるべき理由はないけど、定数倍しても観測量に影響がない)。Vasilievの理論は古典論であるので、前者のタイプの場を扱っている一方、論文[1]で扱っているのは、後者のタイプの場である。この2つの場の関係は、物理の教科書の説明では、以下のような感じだと思う。
『通常の電磁場を第二量子化することによって、光子の状態空間を得ることができ、この中には、光子数が正確にN個の状態が含まれていて、特に光子数が1個の状態からなる部分空間を取ってくることができる。これが、Poincare代数のスピン1のmasslessユニタリ表現(ヘリシティ±1のmassless既約ユニタリ表現の直和)と同値になる(はず)。そして、光子の状態空間は、この一光子状態空間の対称テンソル積として得られる』
この関係は、数学的に証明されている事柄ではないと思うので、どっちのタイプの場を扱ってるかは意識しておいたほうがいい気がする。以下では「相対論的場の理論の一粒子状態はPoincare代数の既約ユニタリ表現で分類される」という、教科書レベルで広く受け入れられてる(と思う)認識を元に、(0でない)整数ヘリシティを持つmassless既約ユニタリ表現に対応する一粒子状態が、"higher spin gauge fieldのsingle particle state"であるということにする。これは、Vasiliev理論で扱われている場とは正確には異なるものだ(と思う)けど、多くの数学的性質を共有しているっぽい
整数スピンsを持つmassless粒子は、Lorentz代数の表現D(s,0)+D(0,s)に値を取る場となっている。これはtwistor理論で完全に確立している事実で、ferimionでも同様に成立し、wave equationも分かっている。複素表現としては、D(s,0)とD(0,s)の2つの既約表現があり、helicityの正負と対応している。s=1の時は、D(1,0)+D(0,1)は2階の反対称テンソル場なので、これらの場がスピンsを持つゲージ粒子のfield strengthの場であると推測するのは自然。Lorentz代数の表現を忘れて単にベクトル空間として見れば
という同型があり、twistor理論で"既約なspinor場は対称spinor場となる"という事実(単にsl(2,C)の有限次元既約表現は自然表現の対称テンソル積表現で尽きるという事実の帰結)に関連している。論文[1]では、D(s,0)+D(0,s)が
の部分表現として実現できる(D(1/2,1/2)はベクトル表現)という事実を使って、ランク$2s$のテンソル場として、扱っている。普通の(スピン1の)ゲージ場の曲率は2階の反対称テンソルで、Weylテンソルは4階のテンソルであることを思い出せば、自然な見方であるのかもしれない。
疑問)$V=D(1/2,1/2)$として、2階の反対称テンソルの空間は、分割(1,1)に対応するYoung symmetrizerの像として記述される。この空間は、gl(V)の既約表現であると同時に、so(4,C)の既約表現でもある。前回書いたように、分割(2,2)に対応するYoung symmetrizerの像は、代数的曲率の空間と呼ばれ、gl(V)の既約表現であるが、so(4,C)の表現としては可約である。この分解から、WeylテンソルとRicciテンソルが生じる(WeylテンソルはD(2,0)+D(0,2)で、RicciテンソルはD(1,1)+D(0,0)になる)。多分、一般相対論の教科書を見ると、Weylテンソルの名前が出ないことはあってもRicciテンソルの名前が出ないことはないだろうと思われるけど、gl(V)による既約分解を見ることは、意味のあることなのかもしれない。そうすると、スピンsの場合でも、代数的曲率空間に相当する何かがあるだろうか(例えば、分割(s,s)に対応するYoung symmetrizerの像だとか)。論文[1]の式(3.6)(I1)(I2)は、この高階テンソルがに含まれるという条件に見える。
ゲージポテンシャル。スピン1の場合は、ベクトル場であり、D(1/2,1/2)に値を取る場となっていて、スピン2の場合は、D(1,1)場は対称トレースレステンソル場となるので、一般にはLorentz代数の表現D(s/2,s/2)に値を取る場をポテンシャルとして持つのだろうと予想される。s/2は半整数でないといけないので、これは、bosonの場合しか意味がない(massless fermionがポテンシャル場を持たないとは言えないが)。一般に
etc.
という既約分解が成立するので、物理の文献では、単にhigher spin gauge potential field=高階対称テンソル場として扱われているようである。
(※)D(1/2,1/2)の基底がであるとして、Lorentz代数の標準的な表現を考えるとは明らかに2階の対称テンソルで、かつLorentz代数の作用は全て0となることは容易に分かる。これが2階の対称テンソルに於けるD(0,0)成分となっている。一般に2つの添字でトレースを取ることで
のように(k+2)階の対称テンソルから、k階の対称テンソルへの射影が得られる(対称テンソルなので、どの2つの添字を選んでも同じ)
#最近、「古典群の表現論と組み合わせ論(下)」という本を見ていたら、シンプレクティック群と直交群では、(symmetricとは限らない)traceless tensorの空間を、Schur-Weylの時と同様に分解することができて、更に、一般の直交群の対称テンソル積表現の既約分解が、上の分解と同じように与えられていた(108ページ、命題8.26)。最高ウェイトベクトルもYoung symmetrizerを使って計算することができる。
#局所的には、一般相対論の計量は、$GL(4,R)/O(3,1)$に住んでいると言える。この計量の空間には線形性がない一方、上のスピン2のゲージポテンシャルは線形性がある。Lie環のレベルでは
という分解が成立し、右辺の第二成分は、2階の対称テンソルになっている(複素化しているのは、量子論では場が複素数値になるので、計量なども複素化されるべきだろうという理由から)。というわけで、少なくとも、線形近似の範囲で、計量はスピン2のゲージポテンシャルと見なすことが正当化される(と思われている)
次に、ポテンシャルとfield strengthの関係について。数学的に納得できる記述は見たことがなかったけど、論文[1]の8節に書いてある(完)。これを理解するには、Lorentz代数の表現だけ見ていても不十分で、「場」が必要になる。Lorentz代数の(既約とは限らない)有限次元表現空間$V$に対して、「$V$に値を取る場」というのは、通常
の"ようなもの"をイメージしているのだと思う。4次元Euclid空間は、実Minkowski時空の場合もあるし、物理の人は、運動量空間をよく使う。これは論文[1]でもそんな感じ。こういうのは、代数的に扱いづらいので、もっと限定した形の空間として
を考える。はPoincare代数のhelicity 0のmassless既約表現。とりあえず、重要そうな話として
(1)この空間には、Poincare代数の表現が定義できる(一般にユニタリーではないが)
(2)この空間では、massless Klein-Gordon方程式が、いつでも自動的に成立している。
の2点が確認できる
は
Maxwell方程式の表現論(2)Gupta-Bleuler量子化の表現論的側面
http://d.hatena.ne.jp/m-a-o/20151106#p2
ではと書いているのと同じもので
という実現を持つ。Poincare代数の作用の仕方は、前にも書いたので省略。例えば、2階の反対称テンソル場は、以下のデータ
と同一視できる。というわけで、場とは、ある条件を満たす4変数多項式の多次元配列である(テストで書いたら0点になりそうな定義)。一般に、helicity hのmassless既約ユニタリ表現は
で実現できる(Poincare代数の作用の仕方は全て同一)
以上の準備のもとで、論文[1]8節に書いてあることを、そのまま読み替えると、例えば、スピン2のゲージポテンシャルからfield strengthへの写像は
となり、これは線形化したWeylテンソルとなっている(この写像がPoincare代数の作用と可換であることは別途確かめる必要がある)。これは、全体で定義されるが、はtracelessと仮定することで、上に制限できる。
また、スピン1の時と同様、以下のゲージ変換が存在する
ここでに、traceless条件とHilbertゲージ条件を課すことにすると、任意のゲージ変換が許されずにも条件が必要となる。traceless条件は単に
という条件になる。traceless条件がある場合、Hilbertゲージは
となり、ゲージ変換部分が0となるには
で、第一項は、massless Klein-Gordon方程式より0になり、第二項は、さっきと同じ条件
から0になる(本来のHilbertゲージ条件は、任意のゲージ変換で保たれるので当然。このへんの計算は、重力波の計算で出てくるものと形式的には同一)。ところで、これはLorenzゲージ条件となっている。つまり、
などと置くと、これらは全部Poincare代数の表現空間となっていて
がスピン1のmassless粒子の空間(helicity +1/-1の既約ユニタリ表現の直和)で
がスピン2のmassless粒子の空間(helicity +2/-2の既約ユニタリ表現の直和)となる(と思う)。沢山の表現空間と写像があって(これらの写像は、大体、Poincare代数の作用と可換となっているはず)、ややこしいけど、曲率写像
については
が成立するはず。スピン1の時の計算は以前やったけど、Im(C)の具体的な記述も同様にできると思う(が、面倒なのでやらない)。論文[1]にはスピン3以上の場合の条件も書いており、同じような形となっている。
論文[1]にも書いてある通り、は、traceless条件から、に含まれることが言え、これは[dim D(s/2,s/2)=(s+1)^2]個の独立な成分を持つ場で、ゲージ固定で[tex:dim D*1 \otimes \Lambda(V(1/2,m))]
のはず。V(1,0)の対称テンソル積空間には、V(1,0)の基底ごとにボソンの生成・消滅演算子が作用し、V(1/2,m)の外積空間には、V(1/2,m)の基底ごとにフェルミオンの生成・消滅演算子が作用する。は可算個の基底しか持たないので、電子と光子の相互作用がなければ、にPoincare代数の表現が普通に定義できる。これは自由場の理論なので、特に凄くも何ともないけど、現代の場の量子論の標準的な考えでは、相互作用を入れても、そのものは変わらない(多分)。変わるのは、Poincare代数の作用の仕方で、例えば、Hamiltonian(=Poincare代数の無限小時間並進)には相互作用項が入り、形式的には、その形はよく知られている。Poincare代数では
なので(ここで、はLorentz boostと運動量演算子、はHamiltonian)、Hamiltonian以外にも相互作用項が入らないと、Poincare代数の作用を整合的に変形できない(はず。全く計算してないけど、運動量と角運動量は、相互作用項とかでないので、boost operatorに付加的な項が出て、適切な交換関係を満たすのだと思う。教科書とかで、そんな記述見たことないけど)。そんで、Hamiltonianの相互作用項は、形式的には
という形で、これを
というふうに書けるだろうと思う(p,qは係数で、具体的な値を計算して決定できるはず)。但し、は光子の生成演算子、は電子の生成演算子、は電子の消滅演算子で、は一光子の状態空間の基底を走り、i,jは一電子の状態空間の基底を走る
結局、(少なくともQEDくらいの)場の量子論が数学的に怪しいことになるのは平面波基底を使うからで、平面波基底は、上のQED状態空間の元でないし(勿論、並進演算子の連続スペクトル状態ではある)(そもそも、数学的な意味では厳密には基底ですらない)、上のQED状態空間は、可算個の基底を持つので、それでHamiltonianとか他の演算子を、ちゃんと書けば何も問題は起きないのでないかというようなことを、1.5年前くらいから考えていて、頑張れば、数学的に厳密なQED Hamiltonianを書けるのじゃないかと思うけど、一向に計算を進める気が起きないので、いくつかやるべき計算について書いておく(各問題につき、できたら10万円支払いますので、できた方は教えてください)
問題1:de Sitter代数so(4,1)の適当な既約ユニタリ表現のcontractionから、Poincare代数iso(3,1)のmassive既約ユニタリ表現を具体的に基底を取って書く(スピン0,1/2の場合くらいあれば十分)
問題2:問題1で計算したPoincare代数のmassive既約ユニタリ表現の基底に対応するMinkowski時空上の関数を具体的に決定すること(これも、スピン0と1/2の場合だけでOK)
問題1について。so(4,1)の既約ユニタリ表現は一杯あるけど、
GENERALIZED EIGENVECTORS AND GROUP REPRESENTATIONS - THE CONNECTION BETWEEN REPRESENTATIONS OF SO(4, 1) AND THE POINCARE GROUP
http://link.springer.com/chapter/10.1007%2F978-94-010-2669-7_8
を読むと、できそうな感じ。練習として、so(2,1)=su(1,1)の既約ユニタリ表現から、contractionによって、iso(1,1)の既約ユニタリ表現を作るというようなことをやるといいと思う。iso(1,1)の(contractionによらない)既約ユニタリ表現については
(1+1)-次元Poincare代数の表現論
http://formalgroup.tumblr.com/post/124635771365/1-1-%E6%AC%A1%E5%85%83poincare%E4%BB%A3%E6%95%B0%E3%81%AE%E8%A1%A8%E7%8F%BE%E8%AB%96
などを参考。
問題2は必須というわけでもないけど、masslessの場合の計算は、
Maxwell方程式の表現論
http://d.hatena.ne.jp/m-a-o/20150621#p1
でやっているので、massive版も一応やろうという話。
若干気になるのは、masslessの場合、光円錐上で特異性を持っていて、以前計算した時は、ただの有理関数として代数的に扱ったけれども、massiveの時は、多分Bessel関数とか出てきて代数的に扱えないかもしれない。それでも、やっぱりある超曲面上で特異になるんじゃないかと思うので、そのへんの扱いをどうするか。予想では、基底は全て同じ超曲面上に特異性を持つので、この超曲面を除いた領域で考えればいいと思う。masslessの場合は、どの基底もt^2-x^2-y^2-z^2=0上でのみ値が定まらず発散する。勿論、Poincare群の作用には並進があり、並進作用によって、光円錐は動くので、一見奇妙な気がするけど、並進は、Poincare代数の演算子のexponentialで、基底の(可算)無限個の和となるので、光円錐が動くことに問題はない。有限個の基底の和を考える限りは、同じ光円錐t^2-x^2-y^2-z^2=0上で特異となる
#似たような状況として、1/x,1/x^2,1/x^3,...を考えると、x>aにおいて
1/(x-a) = 1/x ( 1 / (1 - a/x) ) = 1/x(1 + a/x + (a/x)^2 + .... )
という等式が成立する。1/(x-a)は1/xを並進で動かしたものでx=aで特異であるけど、一方、右辺は、1/x,1/x^2,1/x^3,...の無限和であり、個々の関数はx=0で特異となっている
あまり綺麗な解決というわけでもないので、もっといい理解の仕方があるかもしれない。
問題をやるのに、物理の知識は微塵も必要ないけど、数学を多少出来る必要はある。これができれば、QED状態空間の具体的な記述がわかり、相互作用のない場合は、Hamiltonian、運動量、角運動量、boost演算子の全てが具体的に書ける。相互作用がある場合は、上に書いたように、Hamiltonianとboost operatorに相互作用項が入ると思うので、それを決めればいい。まぁダメだったら私の頭が悪かったというだけだし、これで、"QED Hamiltonian"が書けても、それが本当に通常のQEDの結果を再現するのかということは別途示す必要があるので、先は長い。
*1:s-1)/2,(s-1)/2)=s^2]の自由度が消え、2s+1の自由度が残る。ところで、はから来るので、2(s-1)+1=2s-1個分の自由度はゲージ変換の自由度であり、従って(2s+1)-(2s-1)=2成分が残る。これは、電磁波、重力波に共通する自由度で、ヘリシティ正負の2成分があることに対応する。ということから、論文には書いてないけど が成立すると思われる(多分) それなりに色々な計算をした結果得られるものがなので、苦労した意味はあるのか、という疑問はある(古典的には、ポテンシャルを考えることは、物質場との相互作用を書くのに必須だったけど) ※)QED(Quantum Electrodynamics)の状態空間というのは、(電子と光子のみを考える場合)、Poincare代数のスピンs、質量mのユニタリ表現をV(s,m)とする(m>0の時は、通常の既約ユニタリ表現。m=0の時は、massless既約ユニタリ表現2つの直和)時、 [tex:H_{QED} = S^{*}(V(1,0
水素原子の表現論・零(二次元の場合)
水素原子の表現論
http://d.hatena.ne.jp/m-a-o/20140130#p1
で、4次元だと、どうなるか考えたりしたけど、一番簡単な2次元をやってないことに、気付いたので、計算してみた
2次元量子kepler系の束縛状態
http://formalgroup.tumblr.com/post/153902406125/2%E6%AC%A1%E5%85%83%E9%87%8F%E5%AD%90kepler%E7%B3%BB%E3%81%AE%E6%9D%9F%E7%B8%9B%E7%8A%B6%E6%85%8B
普通にやっても面白くないけど、3次元のKustaanheimo-Stiefel変換(KS変換)と類似するLevi-Civita変換があり、調和振動子に帰着させると計算が楽(個人的には、いくつもある計算方法の中で一番簡単な気がする)。Levi-Civita変換では、調和振動子の空間で$O(1)$の作用があって($(u_1,u_2) \to (-u_1 , -u_2)$)、これによって、Levi-Civita変換の行き先は不変に保たれる。そして、O(1)の作用は固有値±1を持ち、シンプレクティック代数の表現空間(振動子表現)も、それに従って既約分解し、その一つ(不変部分を取るので、O(1)作用の固有値+1部分)が水素原子の束縛状態の空間となる。
本編(二次元の場合)終わり。で、3次元に戻ると、KS変換がある。それは例えば
などと書ける。今度は、4次元空間から3次元空間への写像となっている。KS変換は、3次元球面に制限すると、Hopf写像と同じものになる(S^3のS^2上のHopf fibrationを与える)。
Hopf Map
http://mathworld.wolfram.com/HopfMap.html
また、quaternionで回転行列を書こうとする(つまり、SU(2)をquaternionのノルム1の元と同一視して、SU(2)からSO(3)への準同型を作る)と、行列の成分に、やはり同じ式が出てくるのは、CG関係の仕事とかしてる人は見たことあると思う。他にも
Cayley-Klein parameterの量子化と量子化に関わる諸々
http://d.hatena.ne.jp/m-a-o/20100322#p2
でも、同じ式が出ている。KS変換はどこにでもあるような、ありふれた式と言える
Levi-Civita変換の時と同様、KS変換でも$(u_1,u_2,u_3,u_4)$の取り方には、任意性があり、$u$空間上のある群作用によって、$(u_1,u_2,u_3,u_4)$を動かしても、$(x,y,z)$の値は変わらないということが起きる。二次元Kepler系の場合と違って、今度は、連続群で、$U(1)$と同型になる。連続群なので、無限小変換を考えればいい。生成子は
となる。Lをx,y,zに作用させて消えることを確認すればいい(これで尽きるということを言うには、多少議論が必要だけども、省略)
Lは、4次元の調和振動子の波動関数に作用する。調和振動子の波動関数の空間というのは、振動子表現のことといっていい。シンプレクティック代数sp(8,R)の中で、$L$が生成するLie環$u(1)$と交換する代数は$u(2,2)$であり、これは水素原子のspectrum generating algebra$so(4,2)$と$L$自身からなる。これは、Howe dualityの簡単な例となっていて、$(u(1),u(2,2))$はdual pairであるという。特に、Lの作用で消える、調和振動子の波動関数全体が、水素原子の束縛状態の空間であり、$so(4,2)$の極小表現である。$L$の固有値で振動子表現を固有空間分解すると、0以外の固有値に属する固有空間にも$so(4,2)$の作用があり、既約表現を得る。これが、ladder representationというものになる(4次元共形代数の整数helicityを持つmassless既約ユニタリ表現でもある。この場合、Lの固有値はヘリシティの二倍と等しい)。
参考)調和振動子の対称性とspectrum generating algebra
http://d.hatena.ne.jp/m-a-o/20161117#p1
古典論に於いて、Lに対応するのは、調和振動子の相空間への$U(1)$作用に関する運動量写像
なので、$L$は量子化運動量写像であるという見方もある。そうすると、水素原子のspectrum generating algebraは、調和振動子の対称性のうち、$U(1)$作用に関する量子化運動量写像と交換するもののみが、(quantum) Hamiltonian reductionの後も残る、という理解になる($L$自身は、水素原子の束縛状態に作用すると0になるので実質的に見えなくなってしまう)
#普通、quantum Hamiltonian reductionという時は、代数の簡約だけを考えて、表現については、何も言わないので、ここの言葉の使い方はあまり正しくはない
#KS変換と、水素原子のspectrum generating algebraは1960年代に見つかっているけど、上のような運動量写像を考えて、Kepler系の相空間を、調和振動子系の相空間のHamiltonian reductionとして理解する、というのは、もうちょっと後の1980年代くらいの論文あたりで普通になっているようである。真面目にsurveyしたわけではないので、もう少し古い論文もあるかもしれないけど、MarsdenとWeinsteinがsymplectic reductionの論文を出したのが1974年らしいから、何となく気付いていた人はいるのかもしれないけど、明確化したのは、それより後じゃないかと思う。振動子表現/Weil表現も、数学の方では、1960年代前半あたりのよう。Howe dualityは1970年代にpreprintを出したけど、完全版が出版されたのは1989年だったらしい(と、Wikipediaに書いてあった)
水素原子のspectrum generating algebraは、原論文を読むと天下り的に出てきた感が強い(とはいえ、本当に何もないところからは出てこない。角運動量とRLベクトルは知られており、一方、動径方向にはsu(1,1)作用があることが知られていたので、それを統一するという視点で得たのでないかと思う)けど、KS変換は、それに比べれば、随分自然にも見える(それで調和振動子に帰着できるというのは、やっぱり不思議なことではあるけど)ので、初学者向けの説明としては、例えば
(1)調和振動子の説明。特に、Heisenberg代数の既約表現とシンプレクティック代数の振動子表現の説明
(2)KS変換による水素原子の束縛状態のエネルギー準位計算
(3)KS変換から量子化運動量写像とspectrum generating algebraを導出
みたいな順序で説明すると、比較的抵抗が少なくて済みそう(表現論前提ではあるので、初めて量子力学を勉強する人向きかどうかは知らないけど)
更に高次元。2次元Kepler系ではLevi-Civita変換ときて、3次元Kepler系ではKS変換と来たけど、4次元Kepler系には、直接の類似物はないっぽい(束縛状態の空間のso(5,2)の既約ユニタリー表現としての構造は別の方法で調べることはできる。任意次元に於けるspectrum generating algebraとKepler系の表現論的記述は、既に知られている)。少し視点を変えると、次に"Hopf fibration"が現れるのはS^7->S^4であり、
参考)Quaternionic Hopf fibrations
https://en.wikipedia.org/wiki/Hopf_fibration#Quaternionic_Hopf_fibrations
5次元Kepler系の相空間が8次元調和振動子のHamiltonian reductionで出ると予想される。ファイバーはS^3であり、これはSp(1)=SU(2)=Spin(3)という群構造を持つ。これは、既に結果が知られている
The geometry of the SU(2) Kepler problem
http://www.sciencedirect.com/science/article/pii/039304409090004M
The Sp(1)-Kepler Problems
https://arxiv.org/abs/0805.0840
試しに少し計算してみると、quaternionic Hopf mapも二次の多項式写像で書けて
となる。
次の3つの無限小変換で、$x_1,x_2,x_3,x_4,x_5$は消え、これらはLie環$su(2)$と同型な閉じた実Lie環をなす。
確かめていないけど、シンプレクティック代数sp(16,R)の中で、この$D_1,D_2,D_3$と交換するもの全体が、Lie環$so(6,2)$と同型になるのだと思う(上の論文によれば$(su(2),so(6,2))$もdual pair)。一応、Risa/Asirで以下の計算は確認した。
def assert(V){ if(!V){error(V);} return 1; } X1 = u1^2 + u2^2 + u3^2 + u4^2 - u5^2 - u6^2 - u7^2 - u8^2; X2 = 2*(u1*u5 - u2*u6 - u3*u7 - u4*u8); X3 = 2*(u1*u6 + u2*u5 + u3*u8 - u4*u7); X4 = 2*(u1*u7 - u2*u8 + u3*u5 + u4*u6); X5 = 2*(u1*u8 + u2*u7 - u3*u6 + u4*u5); /*以下は、全部0になる。*/ assert(diff(X1,u1)*u2-diff(X1,u2)*u1-diff(X1,u5)*u6+diff(X1,u6)*u5+( -diff(X1,u3)*u4+diff(X1,u4)*u3-diff(X1,u7)*u8+diff(X1,u8)*u7)==0); assert(diff(X2,u1)*u2-diff(X2,u2)*u1-diff(X2,u5)*u6+diff(X2,u6)*u5+( -diff(X2,u3)*u4+diff(X2,u4)*u3-diff(X2,u7)*u8+diff(X2,u8)*u7)==0); assert(diff(X3,u1)*u2-diff(X3,u2)*u1-diff(X3,u5)*u6+diff(X3,u6)*u5+( -diff(X3,u3)*u4+diff(X3,u4)*u3-diff(X3,u7)*u8+diff(X3,u8)*u7)==0); assert(diff(X4,u1)*u2-diff(X4,u2)*u1-diff(X4,u5)*u6+diff(X4,u6)*u5+( -diff(X4,u3)*u4+diff(X4,u4)*u3-diff(X4,u7)*u8+diff(X4,u8)*u7)==0); assert(diff(X5,u1)*u2-diff(X5,u2)*u1-diff(X5,u5)*u6+diff(X5,u6)*u5+( -diff(X5,u3)*u4+diff(X5,u4)*u3-diff(X5,u7)*u8+diff(X5,u8)*u7)==0); assert(diff(X1,u1)*u3-diff(X1,u3)*u1-diff(X1,u5)*u7+diff(X1,u7)*u5-( -diff(X1,u2)*u4+diff(X1,u4)*u2-diff(X1,u6)*u8+diff(X1,u8)*u6)==0); assert(diff(X2,u1)*u3-diff(X2,u3)*u1-diff(X2,u5)*u7+diff(X2,u7)*u5-( -diff(X2,u2)*u4+diff(X2,u4)*u2-diff(X2,u6)*u8+diff(X2,u8)*u6)==0); assert(diff(X3,u1)*u3-diff(X3,u3)*u1-diff(X3,u5)*u7+diff(X3,u7)*u5-( -diff(X3,u2)*u4+diff(X3,u4)*u2-diff(X3,u6)*u8+diff(X3,u8)*u6)==0); assert(diff(X4,u1)*u3-diff(X4,u3)*u1-diff(X4,u5)*u7+diff(X4,u7)*u5-( -diff(X4,u2)*u4+diff(X4,u4)*u2-diff(X4,u6)*u8+diff(X4,u8)*u6)==0); assert(diff(X5,u1)*u3-diff(X5,u3)*u1-diff(X5,u5)*u7+diff(X5,u7)*u5-( -diff(X5,u2)*u4+diff(X5,u4)*u2-diff(X5,u6)*u8+diff(X5,u8)*u6)==0); assert(diff(X1,u1)*u4-diff(X1,u4)*u1-diff(X1,u5)*u8+diff(X1,u8)*u5+( -diff(X1,u2)*u3+diff(X1,u3)*u2-diff(X1,u6)*u7+diff(X1,u7)*u6)==0); assert(diff(X2,u1)*u4-diff(X2,u4)*u1-diff(X2,u5)*u8+diff(X2,u8)*u5+( -diff(X2,u2)*u3+diff(X2,u3)*u2-diff(X2,u6)*u7+diff(X2,u7)*u6)==0); assert(diff(X3,u1)*u4-diff(X3,u4)*u1-diff(X3,u5)*u8+diff(X3,u8)*u5+( -diff(X3,u2)*u3+diff(X3,u3)*u2-diff(X3,u6)*u7+diff(X3,u7)*u6)==0); assert(diff(X4,u1)*u4-diff(X4,u4)*u1-diff(X4,u5)*u8+diff(X4,u8)*u5+( -diff(X4,u2)*u3+diff(X4,u3)*u2-diff(X4,u6)*u7+diff(X4,u7)*u6)==0); assert(diff(X5,u1)*u4-diff(X5,u4)*u1-diff(X5,u5)*u8+diff(X5,u8)*u5+( -diff(X5,u2)*u3+diff(X5,u3)*u2-diff(X5,u6)*u7+diff(X5,u7)*u6)==0);
で、Wikipediaには、もうひとつOctonionic Hopf fibrations S^15->S^8があると書いてある。そうすると、16次元調和振動子から9次元Kepler系への簡約が存在するのか考えたくなる。ファイバーであるところのS^7は、残念ながらコンパクトLie群の構造を持たないので、今までとは違う事情がありそうな感じである。good newsとしては、(9次元Kerpler系のspectrum generating algebraである)so(10,2)がsp(32,R)の部分代数として実現できる(らしい)という事実がある。それで、こういうものも調べた論文があるんじゃないかと思って、ググると、色々見つかったりするもので。
On the SO(10, 2) dynamical symmetry group of the MICZ-Kepler problem in a nine-dimensional space
http://aip.scitation.org/doi/10.1063/1.3606515
Exact analytical solutions of the Schrödinger equation for the nine-dimensional MICZ-Kepler problem
http://aip.scitation.org/doi/abs/10.1063/1.4921171?journalCode=jmp
という論文が出ており、9次元Kepler系を16次元調和振動子に帰着して解けるらしい。ただ、内容自体は簡単な計算をしただけ(端的に言って、殆ど何も新しいことはない)のもので、特に"低次元"のKS変換にいたO(1)=Spin(1),U(1)=Spin(2),Sp(1)=SU(2)=Spin(3)に相当するものが、どうなるのかについて情報がなく、相空間の簡約があるのかどうかは不明
#以下の論文によれば、更に高い次元でも類似の構成が存在するらしい(私は、きちんと確認していないので本当かどうかは知らない)。"一般化KS変換"の作り方は、Clifford代数$Cl_{0,n}$の$2^n$次元表現を利用しているように見える(論文の式(3)には、謎の条件というのが付いてるけど、何のことか不明)。論文が正しければ、例えば17次元Kepler系を32次元調和振動子に帰着して解くことができる(so(18,2)がsp(64,R)の部分Lie代数になる?)。しかし、相空間の簡約が存在するのかどうかは分からない。
Theory of the generalized Kustaanheimo-Stiefel transformation
http://www.sciencedirect.com/science/article/pii/037596019390520A
#Hopf fibrationの存在はdivision algebraの存在と関連しているのだと思う(S^15->S^31->S^16というfibrationは存在しないらしい)。一方、一般化KS変換の存在は、もうちょっと広いCayley-Dickson代数というものと関係しているらしい。Cayley-Dickson代数は、通常の実数・複素数・四元数・八元数を含んで、更に16元数(sedenion),etc.と無限に続く。これらの文脈では、Hopf写像と呼ばずに、Hurwitz変換と呼ばれていることが多いっぽい。同じものに、違う名前が一杯ついていて辛い。。とりあえず"Kustaanheimo"のスペルが何回書いても覚えられそうにないので、違う名前を採用して欲しい(まぁ、CFL条件とか、Courant以降誰だっけって感じだけど、CFL条件という名前で覚えているので、KS変換という名前で普及していけば関係ないかもしれない)
#d次元Kepler系のspectrum generating algebraは、D=d+1次元の共形代数で、d=2,3,5,9に対応するのは、D=3,4,6,10である。これらの次元は、SUSY関連ではよく見る。so(10,2)がsp(32,R)の部分Lie環になるというのも、その手の文献に書いてあった(ので、自分では何も確認してない)。これらの次元が重要な理由は、division algebraの存在と関係しているらしい。
super Poincare Li algebra#Lie algebra cohomology
https://ncatlab.org/nlab/show/super+Poincare+Lie+algebra#LieAlgebraCohomology
#KS変換は、(古典力学特に天文周りの文献では)KS正則化という名前で登場することも多い。重力は原点に特異点があり衝突時の計算に問題を引き起こすが、この特異点を何らかの方法で除去することを正則化と呼ぶらしい(量子力学側では、正則化しても表現としては同値になってるので、その観点を強調する意味は薄いかもしれない)。別の方法として、(負エネルギーの)Kepler系を球面上の測地流と"同一視する"というMoserの方法がある(これはKS変換と違って、任意次元で使える)。測地流は量子化すると、ただのラプラシアンである。S^nの共形変換はSO(n+1,1)なので、水素原子(3次元Kepler系)のspectrum generating algebraのうち、so(4,1)までは自然に見える。この方法は量子力学側ではFockによる解法として知られている。Moserの方法で正エネルギー(散乱状態)を扱う場合、hyperboloid上の測地流を扱うことになるようである(量子力学側では、spherical harmonicsの代わりに"hyperbolic harmonics"を考えることになる)
Regularization of kepler's problem and the averaging method on a manifold
http://onlinelibrary.wiley.com/doi/10.1002/cpa.3160230406/abstract
##Moserの正則化/Fockの解法の表現論的理解については、以下の論文などを参照
On the dynamical symmetries of the Kepler problem
http://aip.scitation.org/doi/abs/10.1063/1.524511
Quantization of the Kepler manifold
https://projecteuclid.org/euclid.cmp/1104160353
##so(4,1)の既約表現に実はso(4,2)の作用があるというのは不思議なことで、何でこういうことが起きるのか、よく分からない(似た事例として、Poincare代数のmassless規約ユニタリ表現に共形代数の作用があるというのがある)。Liouville可積分性の立場から見ると、so(4,1)からso(4,2)へ拡大する時、ラプラシアンと交換する作用素が一個増える
最後に、今計算しようという気は全然起きないけど、octonionic Hopf mapの式だけ書いておく。間違えそうなので、Risa/Asirで。
X1 = (u1^2+u2^2+u3^2+u4^2+u5^2+u6^2+u7^2+u8^2)-(u9^2+u10^2+u11^2+u12^2+u13^2+u14^2+u15^2+u16^2); X2 = 2*(u1*u9-u2*u10-u3*u11-u4*u12-u5*u13-u6*u14-u7*u15-u8*u16); X3 = 2*(u1*u10+u2*u9+u3*u12-u4*u11+u5*u14-u6*u13-u7*u16+u8*u15); X4 = 2*(u1*u11-u2*u12+u3*u9+u4*u10+u5*u15+u6*u16-u7*u13-u8*u14); X5 = 2*(u1*u12+u2*u11-u3*u10+u4*u9+u5*u16-u6*u15+u7*u14-u8*u13); X6 = 2*(u1*u13-u2*u14-u3*u15-u4*u16+u5*u9+u6*u10+u7*u11+u8*u12); X7 = 2*(u1*u14+u2*u13-u3*u16+u4*u15-u5*u10+u6*u9-u7*u12+u8*u11); X8 = 2*(u1*u15+u2*u16+u3*u13-u4*u14-u5*u11+u6*u12+u7*u9-u8*u10); X9 = 2*(u1*u16-u2*u15+u3*u14+u4*u13-u5*u12-u6*u11+u7*u10+u8*u9); /* fctr(X1^2+X2^2+X3^2+X4^2+X5^2+X6^2+X7^2+X8^2+X9^2); が [[1,1],[u1^2+u2^2+u3^2+u4^2+u5^2+u6^2+u7^2+u8^2+u9^2+u10^2+u11^2+u12^2+u13^2+u14^2+u15^2+u16^2,2]] になってれば多分OK */