■n次元楕円の陰と影
テーブルの上にボールを置いて,ライトで照らすとしよう.照明を斜め上からあてると,光は遮られ,ボールの後方に楕円形の影ができる.一方,このボールにはライトに照らされた陽の半球と光が当たらない陰の半球を生ずるが,ここでは,さしあたって,陰(shade)ではなく楕円形の影(shadow)のほうを問題とする.
次に,ライトの位置をボールの極から遠ざかる方向(赤道方向)に移動させると,影は次第に長くなり,ちょうど水平方向から照らしたとき,テーブル上の影の輪郭は放物線を描く.さらに,赤道を越えてボールの南半球側からライトで照らすと双曲線型の影が得られるであろう.日時計を考えてみても同じことで,ある緯度の位置に立てられた棒の影の先端が描く曲線は,その緯度によって楕円,放物線,双曲線のいずれかを描くことになる.
===================================
なぜこのような書き出しにしたかというと,陰影と私がGW前まで取り組んでいたテーマとが関係しているからである.そのテーマとは,母数の同時信頼区間を求める問題である.個々の母数に対する個別の信頼区間は容易に作ることができるが,たとえば,2つ(3つ)の母数が存在する場合,その同時信頼区間は長方形(直方体)領域で与えられるものではなく,楕円(楕円体)領域となる.
したがって,複数の母数の同時信頼区間を求めることは,この楕円体を三面鏡(n面鏡)に映してみること,詰まるところ「任意の向きのn次元楕円を2次元平面に投影した際の影の形の関数式を求めること」に帰着するはずである.
ということで,今回のコラムでは,n次元楕円体の影の関数式を求める問題を取り上げるが,正攻法,すなわち,真正面から馬鹿正直に立ち向かうと,なぜか行き詰まってしまう.n次元楕円体にはn組の極とn(n−1)/2個の赤道面があるため,2次元で通用する手が3次元では通じないし,3次元で通用する手が4次元では通じないのである.
n次元楕円体の影の描画には種々の問題がつきまとうのだが,まず問題点を洗い出してみることから始めたい.n次元のことは目では見えないから心で視るしかない.図示できない問題なので解説は困難を極めるが,思考の筋道だけはなんとか追えるように心掛けたつもりである.
===================================
一般に,n次元楕円を直交座標系(O:X1,X2,X3,・・・)での関数式で表すと交差項XiXjが出現するため,取り扱いが厄介である.そこで,このn次元楕円は,座標変換により,別の直交座標系(o:x1,x2,x3,・・・)において,以下のような標準形
x1^2/a^2+x2^2/b^2+・・・+xn^2/n^2=1
で表されるものとする.
また,その際の座標変換の式を
[X1,X2,X3,・・・,Xn]’=U[x1,x2,x3,・・・,xn]’
とする.(’)は転置行列を意味するものである.変数が2個ならば平面の回転,変数が3個ならば空間の回転となるが,n変数の場合,Uは方向余弦を要素とするn×n次の直交行列になる.
直交行列Uを得るのに定石的な手がある.それは行列の対角化と双対になったもので,固有値問題と呼ばれる線形代数の基本的な知識である.それによると,対称行列は適当な座標の回転により,対角行列(対角要素以外はすべて0の行列)で表現可能である.
正定値(positive definite)対称行列のとき,行列の固有値を
λ1,・・・,λn
とすると,すべての固有値は正であり,
λ1x1^2+λ2x2^2+・・・+λnxn^2=c^2 (c^2は定数)
が成り立つから,楕円半径は
a^2=c^2/λ1,b^2=c^2/λ2,・・・,n^2=c^2/λn
で表されることになる.簡単な固有値は手計算でも求められるが,通常は電算機の助けが要る.ともあれ,これで座標変換式と固有値というの2つの直接的な道具が出揃ったことになる.
===================================
さて,直交座標系(o:x1,x2)における2次元楕円
x1^2/a^2+x2^2/b^2=1
をもうひとつの直交座標系(O:X1,X2)に投影する場合,楕円上の点は
x1=acosθ
x2=bsinθ
とパラメトライズできるし,a,bは上式より求めることができるから,(X1,X2)平面に投影した影の関数式を得ることは非常に簡単である.
[X1,X2]’=U[acosθ,bsinθ]’
次に,直交座標系(o:x1,x2,x3)における3次元楕円
x1^2/a^2+x2^2/b^2+x3^2/c^2=1
を直交座標系(O:X1,X2,X3)に投影して,この楕円体を(X1,X2)平面,(X2,X3)平面,(X3,X1)平面から,三面鏡図的にみることを考えよう.
その場合,3次元楕円を
x1=acosθ
x2=bsinθcosφ
x3=csinθsinφ
とパラメトライズしても
[X1,X2,X3]’=U[acosθ,bsinθcosφ,csinθsinφ]’
のように,1径数曲線とならず,θとφの2径数曲線となるから,投影はかなり面倒で,実際に描画するとなると最大値・最小値の検索に時間がかかるという欠点がある.
つまり,この方法は2次元楕円の場合にうまくいっても,3次元以上のn次元楕円(n-ellipsoid)に対しては,もはや現実的な方法とはいえないであろう.1径数曲線として表すためには,直接的な道具の他にも,間接的な道具立てが必要になると思われた.
===================================
そこで,n次元楕円体の日向と日陰の半球の境界線の関数式を求めてみることにした.楕円体の影はこの陰に対応した位置にできると考えられるからである.そのためには,接平面の関数式
aλ1x1+bλ2x2+・・・+nλnxn=c^2
(a,b,・・・,nは楕円上の接点)
あるいは,ベクトル解析
gradf=(∂f/∂x1,∂f/∂x2,・・・)
などの知識が最低限必要になると思われたのだが,意外なことに,アフィン幾何や代数幾何等々に頼らずとも初等幾何的に解くことができた.→【補】
楕円は,次のような面白い性質をもっていることに注目されたい.
(2次元)任意の直線lについて,lに平行な直線と楕円の交点によって定まる線分の中点の軌跡は直線(線分)である.
(3次元)任意の直線lについて,lに平行な直線と楕円体の交点によって定まる線分の中点の軌跡は同一平面上にある.
この性質はn次元楕円体にも遺伝していると思われるので,この性質を利用するのである.
楕円面が
λ1x1^2+λ2x2^2+・・・+λnxn^2=c^2 (c^2は定数)
で与えられているとしよう.そして,u=(u1,u2,0,・・・,0)を(x1,x2)平面に含まれるベクトル,v=(v1,v2,・・・,vn)を長さ1の定ベクトル,直線lはtをパラメータとして,
x=u+tv
x=(x1,x2,・・・,xn)
で与えられるものとする.幾何学的に考えると直線lは(x1,x2)平面上の点(u1,u2,0,・・・,0)を通り,方向がv=(v1,v2,・・・,vn)の平行直線族である.
x1=u1+tv1
x2=u2+tv2
x3=tv3
・・・・・・・・
xn=tvn
なので,これを代入して整理すると,tについての2次方程式が得られる.
t^2(λ1v1^2+・・・+λnvn^2)+2t(λ1u1v1+λ2u2v2)+λ1u1^2+λ2un^2=c^2
この直線が楕円体に接するためには判別式=0であるから,u1,u2についての整理すると
λ1(1−λ1v1^2/Δ)u1^2−2λ1λ2v1v2u1u2+λ2(1−λ2v2^2/Δ)u2^2=c^2
Δ=λ1v1^2+λ2v2^2+・・・+λnvn^2
この式は(x1,x2)平面上の楕円の式になる.この楕円は座標をうまくとってやると標準化でき,そうすれば1径数曲線となるが,直観的には,楕円体の影は(x1,x2)平面上の赤道面より大きな楕円を描くと理解される.
楕円体に含まれる最大楕円は固有値と関係して求められるので,3次元楕円の場合,この方法でうまくいく.この描画原理はn次元の場合にも一般化してあるので,n次元楕円の影もこの方法でうまく描けそうに思われたのだが,ところが,簡単には問屋が卸してくれなかった.2次元・3次元に通用しても,n次元楕円には通用しない.そうはイカの金○というやつである.
なぜ,うまくいかないのだろうか? 3次元ではある平面に直交する座標軸は1本だけであるが,4次元以上では複数本あり,(Xi,Xj)平面に直交するベクトルvの選び方が1通りではなく,n−2通りにもなってしまうからである.さらに,n次元楕円体にはn組の極とn(n−1)/2個の赤道面があり,そのため,(x1,x2)平面の選び方がn(n−1)/2通りになる.
実は,n次元楕円の影はベクトルvに選び方にはあまり関係しなかったのだが,赤道面の選び方によって大きく左右されてしまうことがわかった.結局,n(n−1)(n−2)/2通りの組合せについて,さんざん試行錯誤したあげく,陰(shade)と影(shadow)を対応させるこの方法も断念せざるを得なかった.発想法の転換が必要であると思われた.
===================================
天地逆転の180°回転であるが,当該の問題はn次元楕円をn次元正規分布の切り口とみなすことにすると,2次元平面に投影すること=周辺分布を求めることというまったく解析的な問題に変化する.
n次元正規分布において,n個の確率変数X1,・・・,Xnの同時確率は
f(X,μ,Σ)=(2π)^(n/2)Σ^(-1/2)exp{−(X−μ)’|Σ|^(-1)(X−μ)/2}
によって与えられるものである.Xはデータベクトル,μは平均ベクトル,Σはn×n次の分散共分散行列である.
上式の指数部の引数を−c^2/2とおいてみると,楕円面上の点はすべて
f(X,μ,Σ)=(2π)^(n/2)Σ^(-1/2)exp{−c^2/2}
という確率をもつ等確率楕円
(X−μ)’|Σ|^(-1)(X−μ)=c^2
を表すことになる.また,この等確率楕円の内部の点の全確率は,多重積分
∫∫・・∫∫f(X,μ,Σ)dX1dX2・・dXn
により計算できる.
とはいってもこのままでは計算は困難であるから,Σの固有値を
λ1,・・・,λn
とすると,
|Σ|=λ1・・・λn
また,このとき,
|(X−μ)’|Σ|^(-1)(X−μ)|
=|(X1−μ1)^2/λ1+・・・+(Xn−μn)^2/λn|
=c^2
の値は不変であるから,変換後の座標で
(X1−μ1)/√2λ1=x1,・・・,(Xn−μn)/√2λn=xn
と標準化して計算すると,当該の多重積分は
∫∫・・∫∫f(X,μ,Σ)dX1dX2・・dXn
=∫∫・・∫∫π^(-n/2)exp(−x1^2−・・・−xn^2)dx1dx2・・dxn
この積分は多重ガウス積分であるから,
∫∫・・∫∫exp(−x1^2−・・・−xn^2)dx1dx2・・dxn
=π^(n/2)γ(n/2,x)/Γ(n/2)
(幾何の問題 partU参照)であるから,求める確率はγ(n/2,x)/Γ(n/2)より,自由度nのχ2分布の上側確率で与えられることになる.
また,これを(Xi,Xj)平面に投影するわけであるから,結局,自由度2のχ2分布(すなわち,指数分布)で求められることがわかる.したがって,平面上にプロットした場合,全体のp%がその内側に入るような楕円を描くには,上記のc^2を
c^2=−2lnp
に定めればよいことになる.
例えば,p=0.05,0.01を代入するとそれぞれ,c^2=6.0,9.2.逆に,c=2のとき,p=0.865となり,軸の長さが2√λ1,2√λ2の楕円を描くと,内側に86.5%が含まれることになる.
===================================
多変数正規分布は,多変量解析の理論上重要とされる分布で,ここで取り上げた確率楕円は2変量データにおける主成分分析の手法そのものであり,主成分分析によって得られる2本の垂線上に平均値を重心とし長軸,短軸を固有値の大きさを用いて定めることによって描くことができる.前節の議論で楕円の半径が求まったことになるから,ここでは,長軸・短軸の向きを定めてみよう.
2変量データにおける主成分分析では,分散共分散行列
[σx2,σxy]
[σxy,σy2]
の固有値
λ=(σx^2+σy^2±√(σx^2−σy^2)^2+4σxy^2)/2
のうち,大きいほうの固有値をλ1,小さいほうの固有値をλ2とする.
λ2=(σx^2σy^2−σxy^2)/ λ1であるが,主軸a(x−x0)+b(y−y0)=0のaおよびbは,
a=σxy/√{σxy^2 +(λ2 −σx^2)^2}
b=(λ2 −σx^2)/√{σxy^2 +(λ2 −σx^2)^2}
さらに,主軸に直交する直線c(x−x0)+d(y−y0)=0にはλ1 が対応し,cおよびdは,
c=−b
d=a
より定めることができる.このうち,一方が第一主成分,他方,すなわち,第一主成分と直交する方向が第二主成分に対応する.主成分分析は多変量データ解析においてもっとも基本的な方法の1つであるが,このように,理解のためには固有値や固有ベクトルの知識が必要となる.
しかし,以下では,各点までの距離の2乗和を最小にする直線,回転モーメントが最小になる回転軸として,式の説明や計算の方法には初等的な数学だけを用いて,2変量データにおける主成分分析を説明することにしたい.そのようしても,主成分分析の本筋に背を向けることにはならないだろう.
===================================
第一主成分を表す直線はy=a+bxで与えられるものとし,この直線とx軸とのなす角度をθとするとb=tanθ.また,この直線は重心(x0,y0)を通ることから垂線の長さの平方和sは
s=Σ((y−y0)cosθ−(x−x0)sinθ)^2
となる.この値が最小になるためにはds/dθ=0が成立するから,途中を略すが,
σxyb^2−(σx^2−σy^2)b−σxy=0
なるbに関しての2次方程式に整理される.これをbについて解けば,
b=1/2σxy(−(σx^2−σy^2)±√(σx^2−σy^2)^2 +4σxy^2)
が得られる.y−y0=b(x−x0)よりσxy>0のときbは正,σxy<0のときbは負でなければならないから,結局,括弧の中の符号は+のほうを採用する.
b=1/2σxy(−(σx^2−σy^2)+√(σx^2−σy^2)^2 +4σxy^2)
−のほうはそれと直交する直線になる.また,固有値との関係で書くと,
b=(λ1−σy^2)/σxy
最後に,a=y0−bx0よりaを求める.
この直線は算術平均(x0,y0)を通り,この計測値の集団の確率楕円の長軸に一致するので,算術平均を中心として直交回帰直線を長軸とした楕円を描くと確率楕円が得られることになる.
このように,第一主成分を表わす直線は,データ点のおのおのからその直線におろした垂線の長さの2乗和を最小になるようにしたもので,これは第一主成分の分散を最大にすることに対応している.すなわち,第1・第2主成分の導出は,第1主成分の分散を最大化するような2次元平面での座標軸の回転にほかならない.
===================================
結局,天地無用の180°転回によって,投影することが周辺分布を積分で求めることに置き換わってしまった.それにより,n次元楕円の2次元平面に対する正射影の問題が,いわば切り口の関数式を求めるという簡単な問題となって,行き詰まりを打開することができた.
ところで,SAS(サス)と聞いて,イギリス特殊部隊・諜報機関を思い出す人は相当マニアックな人である.SASとは,現在を代表する統計計算ソフトのことであり,世界中で最も多くの人に利用されていて,世界に冠たる統計ソフトといってもよいであろう.
ところが,そのSASにはサポートされていない機能も少なくない.たとえば,信頼楕円あるいは非線形モデル式の信頼区間表示などは,精度保証つき統計解析などを理解するうえで非常に重要なものであるが,SASでは取り上げられていないのである.
私は,SASを利用することばかりを覚え,考えないで使っている人のことをサスケと呼んで,内心馬鹿にしているのだが,考えないで使ってばかりいると,考える力は奪われ,頭脳は確実に退化するだろう.だからとといって,最初から自分でプログラムを作れとは決して勧められることではない.私がいいたいことは,コンピュータは魔物である.しかし,考えながら使えばこれほど強力なものはないということなのである.
確率楕円についての詳細は,拙著
「科学技術計算と実験データ解析」
「実験ノートのグラフ化技法と最新解析法」
「最小2乗法ソフト耕太郎のすべて」
「最小2乗法その理論と実際」いずれも山海堂
などにも掲載した.また,非線形モデル式の信頼区間表示については,コラム
「精度保証付き非線形解析」
の中で紹介しているので,参照されたい.信頼区間の幅は確率楕円と密接に関連していることがおわかり頂けるであろう.
確率楕円はソフト
「ドクトル・カメレオン」
「耕太郎 Ver11.00」
でも描くことができる.そこで描かれる楕円領域は,モデルが線形なら厳密であるが,非線形モデルのときには真の領域とはならない.しかしながら,その第一近似としては十分信頼度の高いものであるということを最後に一言申し添えておきたい.
===================================
【補】代数幾何のはなし
(1)代数曲線の次数
2変数x,yの多項式f(x,y)=0で定義される曲線を平面代数曲線と呼びます.f(x,y)=0が2次式の場合,その一般式は,
ax^2+hxy+by^2+cx+dy+e=0
のごとく,項数6の多項式として書くことができます.2次曲線には楕円,放物線,双曲線があり,それらは円錐(必ずしも直円錐でなくてよい)を平面で切断したときの切り口として現れる一群の曲線,すなわち円錐曲線です.
同様に,3次曲線とはf(x,y)=0が2変数x,yの3次あるいは3次以下の方程式で与えられた曲線です.3次曲線の例としては,ディオクレスのシッソイド(x^3+xy^2=y^2)があげられますが,これは古代ギリシアにおいて立方体倍積問題に用いられた曲線です.また,
y=x^3+x^2+x+1
y^3=xy^2−2x^2y+y−3
なども3次曲線で,一般式の項数は10になります.平面内n次曲線f(x,y)=0の一般式の項数は,
3Hn=n+2Cn=(n+2)(n+1)/2
で計算されます.
2次曲線の分類については,3種類の円錐曲線,すなわち楕円,双曲線,放物線になることは既に述べたとおりですが,同じことをもっと高次の曲線・曲面に対して考えるのは自然なことでしょう.3次曲線の分類には,2次曲線とは異なった種類の難解さが要求されましたが,ニュートンはあらゆる場合を考察して,最終的に3次曲線は全部で78種類が必要であることを示すに至り,さらに3次曲線の一般式が5個の標準形に帰することを示しました.
ニュートンの3次曲線の分類に引き続いて,オイラーは4次平面曲線の分類を企てましたが,可能な場合の数が非常に多いという理由で断念しています.この問題に対する答えは長い間知られていなかったのですが,プリュッカーが19世紀に4次曲線の152の型を数え上げることによって解かれました.
また,一直線上にない3点を通る2次曲線,4点を通る3次曲線はただひとつ存在しますが,それは座標軸の方向が定まっている場合であって,一般には,平面上の任意の位置にある5点が唯一の円錐曲線を決定します.ニュートンは「プリンキピア」のなかで5点を通る円錐曲線の作図法などを案出しながら壮大な天体力学を展開しています.
n次平面代数曲線の方程式P(x,y)=0は,(n+1)(n+2)/2個の係数をもっていますが,Pに定数を掛けても曲線は変わりませんから,n次曲線はn(n+3)/2個のパラメータに依っていることになります.そこで,平面内に与えられたn(n+3)/2個の点(xi,yi)を通るという条件によって曲線を決定するという問題が自然に提起されます.ニュートンはこうした研究を応用して,2次曲線上の5点,3次曲線上の7点が与えられた場合にこれを作図する方法を見いだしたのです.
===================================
(2)射影変換
放物線,楕円,双曲線はまとめて円錐曲線とも呼ばれますが,2次式で定義されるので,2次曲線ともいいます.そして,無限遠点を導入して,考えている曲線を射影曲線として捉えると,2次曲線はひとつのものとして統一的に考えられるようになります(射影幾何).なぜなら,違いは無限遠直線の選び方(無限遠直線と交わらない,接する,交わる)にあるだけであって,どれも同種の曲線と考えることができるからです.
一方,3次曲線は,射影変換を用いれば次のいずれかに変換されます.
(1)y^2=x^3
(2)y^2=x^2(x−1)
(3)y^2=x(x−1)(x−λ)
(1)は原点で尖点,(2)は原点で2重点ですから,(1)(2)は特異点をもち,(3)は非特異です.
4次曲線(項数15)とか5次(項数21)以上の高次曲線に対しても射影変換を考えることができます.特異点をもつ3次曲線は適当に座標変換(射影変換)すると(1),(2)のどちらかになりましたが,4次曲線では20タイプあります.その後,5次曲線は230余りのタイプに分類されることが示されましたが,n≧6では複雑すぎてよくわからないようです.
===================================
(3)代数曲線の種数と双有理変換
射影変換は高次の曲線に対しては非力なので,より強力な双有理変換を用いて,2次曲線と射影直線とを同一視できるようになれば,それは射影幾何を超えて代数幾何の立場に立つことになります.そして,種数の概念は,曲線の特異点を双有理変換を行って解消できるか否かに依っています.
ところで,曲線上の有理点全体を1つの変数の有理式として表すことのできる曲線を有理曲線といいます.2次曲線は有理点を無限にもつか,1つももたないかのどちらかであって,現在では,2次曲線に1つでも有理点があると実は無限に有理点があることがわかっています.→コラム「変分問題」参照
3次曲線の場合はどうでしょうか? (1)(2)の3次曲線は重根をもち,原点(0,0)が特異点になります.そのため,この曲線上のすべての有理点をパラメトライズすることができます.たとえば,
y^2=x^3 → (t^3,t^2)
y^2=x^2(x−1) → (t^2+1,t(t^2+1))
4次曲線の例も挙げましょう.レムニスケート(双葉曲線)は8の字形(8を90°回転させ横向きにした∞形)をしていて,その直交座標系での方程式は4次曲線(x^2 +y^2 )^2 =(x^2 −y^2 )になります.レムニスケートも特異点をもち,
x=t(t^2+1)/(1+t^4 )
y=t(t^2−1)/(1+t^4 )
のように有理点をパラメトライズすることができます.
一般に,f(x,y)=0が3次式・4次式のとき,その曲線上に特異点と呼ばれる点が存在するかどうかで,曲線のもつ性質が大きく異なってきます.(1)(2)やレムニスケートはそのような例ですが,それに対して,(3)のように,3次曲線が異なる3根をもつ有理係数の多項式の場合は,楕円曲線と呼ばれる非有理曲線で2次曲線とは本質的に異なってきます.
2次曲線のように有理点全体を1つの変数でパラメータ表示できる曲線を種数が0の曲線(有理曲線)と呼びます.与えられた曲線が有理曲線かどうかを判定するには曲線の種数を求めればよく,それが0なら有理曲線になります.一方,種数が1である曲線に楕円曲線があります.2次曲線はすべて有理曲線ですが,楕円曲線は有理曲線でないことが知られています.すなわち,円錐曲線の有理点は無限ですが,楕円曲線の有理点は有限です.
次数が高いとき曲線は見かけ上複雑になりますが,その曲線の「種数」が小さければ,曲線は双有理変換で簡単なものになります.その意味で,次数よりも種数の方が曲線の本質的な複雑さを表現していると考えられます.
たとえば,モーデル・ファルティングスの定理(1983)とは,「種数が2以上の代数曲線(超楕円曲線)は有理点を有限個しかもたない.」というものです.したがって,有理点が無数にあるような曲線は種数が0か1ということになり,直線(種数0)か,円錐曲線(種数0)か,楕円曲線(種数1)に限られてきます.また,リーマン・フルヴィッツの公式より,フェルマー曲線x^n+y^n=1は種数が(n−1)(n−2)/2で,これはn=3のとき1ですが,n≧4のときは2以上となりますから,そこでフェルマーの予想を征するために必要となるのが楕円曲線であったというわけです.
===================================
(4)代数曲面の分類
空間内の2次曲面の分類もよく知られていて,2次曲面f(x,y,z)=0は楕円面,一葉双曲面,二葉双曲面,楕円放物面,双曲放物面のどれかに分類されます.2次曲面には無数に多くの直線がのっているものがあり,その場合には線織面と呼ばれます.2次曲面が直線の族を含んでいるという事実は建築でも実際に応用されますが,カーブを描いた曲面をコンクリートを使って建設できるということは明らかに利点です.
一方,3次曲面f(x,y,z)=0には,高々27本の直線しか含まないことが証明されています(サルモン,1884年).1次曲面(平面)は∞^2個,2次曲面は∞^1個の直線を含み,一般の3次曲面では(少なくとも1本の直線を含むが)その数は高々有限個(27本)です.それに対して,一般のn次曲面(n>3)は直線を全然含んでいません.
代数曲線は,種数を用いて,有理曲線,楕円曲線,超楕円曲線などに分類されましたが,(極小)代数曲面は,種数と小平次元,不正則数の組合せを使って分類され,K3曲面,エンリケス曲面,アーベル曲面,楕円曲面,超楕円曲面などに分類されることが示されています.
このようにして,1900年当時まで,5次曲線までと3次曲面までのトポロジカルな分類は既に知られていたようです.
===================================