Simplicial homology を sagemathで

  • 単体的複体によって位相を表現する
  • 単体的複体を構成する、1-単体、2-単体、...、k-単体, ... とすると、1,2,...k-単体の集合ごとに「層」を作って評価する
  • k-単体の集まりを考えるとき、k-単体のそれぞれを「基底の1つ」としてアーベル群を構成する。それがk次チェーン
  • k次チェーンごとにある計算式を与えると、値の列が単体的複体に与えられる。それがスペクトル
  • このスペクトルにはk-次の穴の情報がある
  • 三角形(中身が詰まっている)は以下のようになる
  • sagemathのマニュアル
    • sagemathのバージョンによって、simplicial compexの定義の仕方に変遷があるので要注意
    • 以下の例は、sagemath9.1で実施したもの
    • SimplicialComplex()関数には、充実した単体(の頂点集合)を二重リストで与えている
S = SimplicialComplex([[0,1,2]])
S.homology()
  • 穴が無いので,0,1,2次のいずれも0
{0: 0, 1: 0, 2: 0}
  • 三角形だが中身が詰まっていないものは、3辺で、その3辺がサイクルを作る。このサイクルは「穴」
S = SimplicialComplex([[0,1], [1,2], [0,2]])
S.homology()
  • 1次の穴(三角形のトンネル)があることが1 : Z として現れる。
{0: 0, 1: Z}
  • 中身の詰まっていない2つの三角形を1辺で張り合わせると、1次の穴が2つある
S = SimplicialComplex([[0,1],[1,2],[2,0],[3,1],[2,3]])
S.homology()
{0: 0, 1: Z x Z}
  • 2つの中身の詰まっていない三角形が、くっつかずに存在しているときは
S = SimplicialComplex([[0,1],[1,2],[2,0],[3,4],[4,5],[5,3]])
S.homology()
  • 1次穴は2つあり、かつ、0次穴が1個ある。0次穴がある、とは、全体が連結成分になっていないことに相当する
{0: Z, 1: Z x Z}
  • 四面体を考えつつ、四面体は中身がなく、四面体の1面は充実性三角形、残りの3面は中身のない三角形とすると、1次穴が3個、2次穴が1個かな、と思ったが、四面体の4面がスカスカでなければそれは穴ではないらしく、2次穴は0
S = SimplicialComplex([[0,1],[0,2],[0,3],[1,2,3]])
S.homology()
{0: 0, 1: Z x Z, 2: 0}