pythonでDiscrete Exterior Calculus(2)

  • 第2回
  • このパッケージ説明文書の7 Discrete Exterior Drivative
  • pythonパッケージはこちら
  • PDFのpp11-14
  • 複体を考えている
  • 複体はグラフのお化けのようなもの、正単体の集合、であるけれど
  • こちらにも書いたように、0-チェイン、1-チェイン、…というつながりがあって、それぞれ0単体集合、1単体集合…、に対応付けられる。そしてそのチェイン間に写像が定義できて、あるルールでうまくいく場合に「複体」と呼ぶのだが、ここのDiscrete Exterior Calculusはその写像の話
  • [tex: = ]を見よう
    • ここでaはpコチェイン、cはp+1単チェインだという。p単体たち、p+1単体たち、と思っておこう
    • そしてd_pはp単体たちに掛かる写像、\partial_{p+1}はp+1単体たちに掛かる写像
    • [tex: = ]の左辺は、p+1単体たち同士の演算[tex:]だし、右辺はp単体たち同士の演算[tex:]で、それが「等しい」というそういう取り決めがある。たぶん、この演算は内積のようにスカラーを返すものなのだろうと思っている
  • 実際\partial_p \sigma^p = \sum_{i=0}^p (-1)^i [v_0,v_1,...,\hat{v_i},...,v_p]のように定義してあって、p単体について、それを構成するp+1個のp-1単体についての正負考慮和をもって、\partialが定義されている。ここで\hat{v_i}というのは、i番目の点だけ除いてできるp-1単体を表記するために「それだけ除く」という意味である
  • このような\partialはp単体は、辺に向きがあり、三角形にぐるりと回る向きが決まっていれば、boundary operatorとしてp単体の数xp+1単体の数の行列の形に書ける(要素は0,±1)
  • そのうえで、辞書式順序で書くことで表記の一意性を取ることにして、辞書式順序一意のためにノードの並べ順が不自由になった分を、別途、正負情報として格納することができる
  • 後は、このルールをどんどん高次元に再帰的に適用すること、そのための処理ルール、情報の劣化を起こさないための記法などについて書かれている
  • また、複体の場合は、p+1単体の構成要素であるp単体と、そうではないp単体との複合体であるので、それを統合していくときに、再帰高次元化だけだと、取り込まれない「あぶれた単体」が発生するが、それを取りこむことにする。そうすると、「情報を劣化させないための取り決め情報のところに、何を入れるかが決まらなくなるが、それについては「0」を入れても混乱しないことが示せるから、そのようにする、と、そんな処理手順にしている、と書いてある
  • 逆に言えば、そのような定義にしてうまく回るのが複体のdiscrete exterior calculusということらしい