またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • テンソルについて整理したので、再度、読み直してみる
  • テキストはこちら
  • 構成
    • 1 Introduction
    • 2 Quick and Dirty Introduction to Differential Geometry
    • 3 Quick and Dirty Introduction to Exterior Calculus
    • 4 Topological Invariants of Discrete Surfaces
    • 5 Normals of Discrete Surfaces
    • 6 The Laplacian
    • 7 Surface Parameterization
    • 8 Vector Field Decomposition and Design
    • 9 Conclusion

1 Introduction またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • Topics include:
    • curves and surfaces, curvature, connections and parallel transport, exterior algebra, exterior calculus, Stokes’ theorem, simplicial homology, de Rham cohomology, Helmholtz-Hodge decomposition, conformal mapping, finite element methods, and numerical linear algebra.
  • Applications include:
    • approximation of curvature, curve and surface smoothing, surface parameterization, vector field design, and computation of geodesic distance.
  • 中心課題は離散外微分とその実データ(メッシュデータ)への応用
  • 微分は幾何的表現を使うことで式表現を簡潔にすることができ、ポアソン方程式に帰着させ、それを数値的解法の実装とすることができるのがメリット

2 Quick and Dirty Introduction to Differential Geometry またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 2.1 曲面の幾何
    • 曲面を考える
    • 曲面を埋め込む関数fがある
    • 曲面を考えるときには、接平面も考える
    • 接平面に含まれる接ベクトルというものもある
    • 接平面に垂直な法線ベクトルというものもある。面には二通りの法線方向が取れるので、どちらを基準にするかを考慮する必要がある。面に向きを定めることで、法線の向きが定まるから、面の向き付け、という概念がある。面によっては向き付け不能なものもある
    • 接ベクトルは埋め込みfによって長さが変わる
    • 長さを変える「関数」をgとする
    • 向き付け可能な曲面の場合、法線単位ベクトルが定まるから、曲面の各点を球S2にマップすることができる
    • 2.1.1 共形座標
  • 2.2 Derivative(導関数)と接ベクトル
    • いわゆる関数を微分して得られる傾きは、曲がった空間では局所の(接ベクトルの)伸び具合に相当する
    • 2.2.1 実曲線の導関数
      • 実数パラメタxに関するy=\phi(x)という関数があったときに\frac{d \phi(x)}{dx}というのは、関数を図示したときの傾き
      • これを1次元のままで、「速い」ところは「長い」ように伸び縮みさせる。これが、1次元物体を伸び縮みさせて作る『曲線』。xという数直線上に張り付いている
      • 1次元多様体の伸び縮みは、局所の伸び縮みを表す1次元ベクトルになっている
    • 2.2.2 Directional Derivatives (ある方向を定めたうえでの導関数)
      • 2次元平面の各点に値を与えて3次元曲面を作ると、その各点について、ある方向への導関数が定まる。その伸び具合で、2次元曲面がその方向に「伸びている」と考えると、同様に曲面の局所の伸び具合が、方向ごとに定まることがわかる
  • 2.3 曲線の幾何
    • 実数直線を場所ごとに伸び縮みさせて曲線を作るという話をしてきたが、曲線の長さを基準にしてパラメタを振ることができて、それも便利(弧長パラメタ)
    • 2.3.1 曲線の曲率
      • 弧長パラメタで空間に置かれた曲線を考えるとき、曲線の進行方向の単位ベクトルを正規直交座標系の基底の一つとしてとることができる。こうすると、この基底ベクトルのセットが曲線に沿って動いていくことになる
      • 1つの基底は曲線の接線方向、2つ目は、接ベクトルの変化方向、3つ目はそれらに直交するものとする
      • この3つ目が、曲線の局所における法線方向になり、この法線方向ベクトルの変化を追うと、それは接面上のベクトルとなる
      • したがって、正規直行基底の変化を接平面内のベクトルとして表現できる
      • この正規直行基底の変化を線形代数的に表したものがフルネ=セレの式で、曲率、捩率を成分に持つ行列が登場する
    • 2.3.2 曲率の視覚化
      • 曲線の局所を円に近似できる。その円の半径が曲率半径、その逆数が曲率
  • 2.4 曲面の曲率
    • 曲面をある点とその法線とを含む面できると、そこには曲線があらわれ、接する円が取れるから、この断面に対して曲率が定まる
    • 2.4.1 主曲率、平均曲率、ガウス曲率
      • 断面曲率として最大のものと最小のものが取れる。この2つが主曲率
        • 2つの主曲率方向の接ベクトルは相互に直交
      • その算術平均が平均曲率
      • その積がガウス曲率
    • 2.4.2 第1、第2fundamental forms
  • 2.5 座標系の幾何
    • 2次元座標表現されている局所において、ある方向のベクトルが埋め込みによってどれだけ伸縮するかを表すのが、方向偏微分成分で表されてたヤコビ行列
    • 2.5.1. Coordinate Representations Considered Harmful
      • 座標変換はやっかい
      • やっかいさの主原因は変換と同じような変換をするベクトルと逆のベクトルがあってこんがらがるから(共変と反変)
      • それを扱うときに第1形式とか双対ベクトル空間とかが出てくる
    • 2.5.2. Standard Matrices in the Geometry of Surfaces
      • 曲がっている具合を表すのに、曲率を使うか、リーマン計量を使うか、fundamental formsを使うかということになるが、それらは、曲がり具合を表すための道具立てであるから、相互の関係を表す諸式がある

3 Quick and Dirty Introduction to Exterior Calculus またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 3.1 Vectors and 1-Forms
    • ベクトルは向きと大きさを持つもの
    • ベクトルについて情報を取り出す関数があって、それは、ある方向に関するベクトルの成分を返す関数。これが1形式(covector)
    • ベクトルも1形式も向きと大きさを持つので、同じもののようだが、片や関数、片や引数なので、似て非なるものとするのがよい。列ベクトルと行ベクトルというような違いと考えるのもよい
    • ベクトルを1形式に変えるのを♭、その逆を♯とする(テンソル代数では、これは2階のテンソルの仕事だったし、計量テンソルとその逆の仕事だった)
    • そしてベクトルと1形式の間にはIsomorphismがある
    • 1形式はベクトルをとってスカラーを返す関数だが、その関数は計量テンソルによって値を決める。曲がった空間での長さの伸び縮み具合に応じて長さを測る道具が1形式
    • より具体的には、リーマン計量によって、ベクトル世界の長さ・内積を定義するという考え方と、ベクトル世界の長さを測るにあたって、あるベクトルのある方向に関する長さを求めるに際し、方向ベクトルにリーマン計量を適用して1形式にし、長さを測りたいベクトルと1形式との内積によって長さを求める、という説明の仕方がある
    • 今、スカラー場を偏微分するとすると、考慮している方向の「微小差」は、「座標系でカウントする」が、その量を曲線に沿った長さとして定量するために、方向の1形式(伸び縮みしたもの)との内積として偏微分係数を出すことになる。これが、曲がった空間での微分に、接ベクトルの伸び縮みしたものである1形式を使う理由。
    • 3.1.1 座標系
      • 偏微分記号\frac{\partial}{\partial x_iをベクトル空間の基底とし、微小量記号d x_iを1形式空間の基底とする
      • これらには相互にクロネッカーのデルタな関係がある
      • この書き方により、ベクトルと1形式の積が記号的にもキャンセルアウトして、スカラーになることが解りやすくなる
    • 3.1.2 記法
  • 3.2 Differential Forms and the Wedge Product
    • 曲面では、あるベクトルがある1形式で評価され、別のベクトルは別の1形式で評価される。2つのベクトルが作る(正方形(長方形、平行四辺形)の)面積は、2つの1形式が作る平行四辺形の面積で評価される
    • その計算にあたって、ウェッジ積というものを使う
    • ウェッジ積は行列のdeterminantが登場する。それは外積代数が符号ルールを付加されたテンソル代数であることと関係していたりする
    • ウェッジ積は、同じものを掛け合わせると0になる、ということで、「閉じた世界」を作るが、そのため、たくさんを掛け合わせるとスカラーに戻ってきたりする
  • 3.3 Hodge Duality
    • 3次元では、面はそれを張るベクトルの掛け算とも見えるが、それを指定する法線ベクトルが規定しているとも見える
    • 面積が法線ベクトルの長さと対応づくようになっていれば、面積を計算するときに法線ベクトルの長さを計算すればよい、などの使い方となる
    • このような関係がHodge duality
    • 2項関係のような対応になる
    • 3.3.1 Hodge Star
      • 0,1,2,3形式をホッジスターにより、3,2,1,0形式に対応付ける
    • 3.3.2 Volume form
      • 面積は正方形が平行四辺形に伸びたものとして計算する
      • そのときに計量テンソルを使う
      • 体積も同じ
    • 3.3.3 k形式の内積
      • kとn-kとの積は外積代数ではスカラーになるから、k形式とk形式とからスカラーを出すには、片方をホッジ変換してから掛ければよい
      • ベクトルは♭すれば形式になるから、ベクトル同士の内積も♭した上で形式同士の内積に持ち込めば、定義できる
      • ベクトル同士のクロス積も1形式に変換した上でホッジを介するなどして定義することができる
  • 3.4 Differential Operators
    • ベクトルを「伸び縮み」させるときに使っていたdは外微分。変化量を考慮する。考慮するがすべての方向について考慮する
    • 3.4.1 div, grad, curl
      • ベクトル微分演算子ナブラ
      • スカラー場に適用できる
        • どっちにどれくらい流れているか、というベクトル場が返る
      • ベクトル場には2つの方法(内積的に、外積的に)適用できる
        • 演算子をベクトル場に内積的に使えば、そこでは、全流入と全流出とでどちらが多いかがわかる
        • 演算子をベクトルがどちらの方向にどれくらい動いているかをみれば、ベクトル的なものが返る
    • 3.4.2 微分って何?
      • Gradientはスカラー場にベクトル演算子を作用させたものだが、関数の偏微分を係数とする1形式をベクトル化(♯)したもの
    • 3.4.3 方向微分
    • 3.4.4 外微分の特徴
    • 3.4.5 1形式の外微分
      • ベクトルは1形式に変換できる。1形式の全微分はできる。2形式になるが、そのホッジをとれば1形式に戻るので、それをベクトルに戻せば、結局ベクトルが返る。こうして、ベクトル場にベクトル演算子外積的に適用してベクトル場を答えとして得る過程のk形式・ホッジ・双対的やり方がわかる
      • \nabla \phi = (d (\phi)^{\flat})^{\sharp}
        • ベクトル世界のスカラー関数\phiを♭して0形式にし、それをdして1形式に上げ、♯してベクトルに戻す
      • \nabla \times X = (\clubsuit d X^{\flat})^{\sharp}
        • ベクトル場を♭して1形式にし、それをdして2形式に上げ、ホッジスター(\clubsuit)して1形式相当にし、♯してベクトルに戻す
      • \nabla \dot X = (\clubsuit d \clubsuit X^{\flat})^{\sharp}
        • ベクトル場を♭して1形式にし、それをホッジスターして2形式相当にし、それをdして3形式に上げ、そのホッジスターをとって0形式にし、その♯をとって、ベクトル世界のスカラーにする
    • 3.4.6 ラプラシアン
      • Divergence のgradient
      • スカラー関数のラプラシアン
        • \Delta \phi = (\clubsuit d \clubsuit d (\phi)^{\flat})^{\sharp}
        • ベクトルの世界のスカラー関数を♭して0形式し、それをdして1形式に上げ、ホッジスターして2形式相当に変え、さらにdして3形式相当にして、ホッジスターすることで0形式となり、それを♯してベクトル世界のスカラーにする
      • スカラーに限らず、一般的なk階テンソルT(k,0)
        • [tex:\Delta = *1^{\flat}))^{\sharp}]
        • ベクトルの世界のTを♭してk形式とし、それをdしてk+1形式とし、ホッジスターしてn-(k+1)形式相当に変え、さらにdしてn-k形式にして、ホッジスターすることで、k形式とする項(第一項)と、Tを♭してk形式とし、それをホッジスターしてn-k形式相当に変え、それをdしてn-k+1形式とし、ホッジスターして、k-1形式とし、それをdしてk形式とする項(第二項)とを合わせて、♯してベクトル世界のk階テンソルに戻す
        • k=0のときは、第二項でn-k+1形式が出たときに、外積代数の世界では、それは0なので、消失するため、第一項のみの式になる
      • ラプラシアンは、外微分とその逆(に相当するホッジスターの外微分)をして、元の対象と同じ単位(スカラーならスカラー)の定量をする。微分して微分の逆をするときに、その間で何もしないと元に戻るだけだけれど、ホッジスターの往復をサンドイッチすることで、元のそれとは異なる何かが得られる。それがラプラシアン微分(d)とホッジの往復で作れる経路は2つなので\clubsuit d \clubsuit d + d \clubsuit d \clubsuit
  • 3.5 Integration and Stokes' Theorem
    • Volume formを足し合わせるのが積分
    • ある領域の周縁に関するk-1形式の積分は、その領域の外微分(k形式)の積分に一致する:Stoke's Theorem
    • それを使うと、ある領域のベクトル場のdivergenceの積分は、周縁各所におけるベクトル場の法線方向成分の積分になる
  • 3.6 Discrete Exterior Calculus
    • 離散メッシュでは、点には0形式をエッジには1形式を面には2形式を、積分値として持たせることで、情報の離散的保管ができる
    • 持たせる値は、スカラーになる。ただし符号に注意が必要
    • k単体に持たせる値の符号は、頂点順序の偶置換・奇置換で定まる
    • 各離散幾何的要素に積分値を与えるにあたり、ストークスの定理を使うと、算出・演算はぐっと楽になる
    • ホッジ双対の離散版も簡単。点に対して点周囲の面積、辺に対して直交する線分、面に対して点(3次元空間の2次元メッシュの場合)

*1:\clubsuit d \clubsuit d + d \clubsuit d \clubsuit)(T(k,0

4 Topological Invariants of Discrete Surfaces またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 球かドーナツか、などの話しとその離散版の話。今回は(も)省略
  • 4.1 Euler Characteristic
  • 4.2 Regular Meshes and Average Valence
  • 4.3 Gauss-Bonnet
  • 4.4 Numerical Tests and Convergence

5 Normals of Discrete Surfaces またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 離散三角メッシュの頂点の法線方向の定義についての章。複数の決め方がある
  • 三角形の面積が法線ベクトルであることを利用して、面積の局所変化(gradient)を用いる方法
  • 埋め込み関数をラプラシアンしたものが平均曲率の大きさを持つ法線ベクトルになることを利用する方法
  • 法線長x底面積=体積を利用して、体積と底面積から割り出す方法
  • 5.1 Vector Area
    • 多角形の面積をはかるときは、任意の1点を取り、多角形の各辺と三角形を作り、その三角形の符号付き面積の和を取れば、多角形の面積になる
    • 離散外微分を使うと、頂点ペアのクロス積の和がそれになる
    • 三角形の面積が「外積」で計算できるという話があるが、それは法線ベクトルが面積と関係するということ。今、ある領域が三角形に区画化されているとき、法線ベクトルが長さ付きで得られる。平坦なら、それらはベクトルとして打ち消し合わないので、ベクトルの和を取って長さを測り直せばそれが面積に相当する。三角形が波打っていると法線ベクトルが並行ではなくなるので、打ち消し合ったり、隙間が空いたりするが、その分をリーマン計量による伸び縮みが調整してくれるので、リーマン計量補正の局所法線ベクトルの和が曲面の面積。ただし、これはある領域の積分だから、さらに周縁に関する積分と一致することがストークスの定理からわかるので、そちらで計算する方が便利
  • 5.2 Area Gradient
    • 局所平面には面積があり、それは長さ情報付きの法線ベクトルとなっている
    • ある点においてその近傍には微小面積がびっしり充満しているが、それらの面積に相当する法線ベクトルも充満している
    • それらは滑らかになっているはずなので、gradient評価が可能で、ある点の法線ベクトルはそれらのコンセンサスを得たものになるはず
    • それが離散メッシュでの頂点の法線方向(とそこでの面積の大きさ(伸び縮み考慮した面積))
    • このようにして得られる法線方向と同じものが別の方法でも出る。平均曲率の大きさを持つ法線ベクトルは、埋め込み関数にラプラス-ベルトラミ演算子を作用させたものに一致することから出せる
    • したがって離散版ラプラシアンが作れればよいが、それは一般には簡単ではない。しかしながら、共形座標系という限定を置くとその制約のせいで、可能になる(そこに指数関数が出てくるのは、等温座標系ってこと???)
  • 5.3 Volume Gradient
    • 法線長x底面積=体積を利用して、体積と底面積から割り出す方法
  • 5.4 Other Definitions
    • その他にも、周囲面の法線ベクトルの(重み付き)平均を取る、とか。

6 The Laplacian またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • ラプラシアンと、ラプラシアンを用いた微分方程式であるポアソン方程式について。そしてのその離散版について
  • スカラー場があって、その微分をしてベクトル場にして、そのベクトル場のdivergenceを取ってスカラー場と作りたい
  • 微分形式を使うにしろ使わないにしろ、「やりたいこと」はスカラー場情報が離散的に与えられているときに、それ(とメッシュの情報(位置・つながり具合・曲率・法線方向など))を使って、局所にラプラシアンの結果であるところの離散的スカラー場を返すような演算子を離散的に構成したい
  • 6.1 Basic Properties
  • 6.2 Discretization via FEM
  • 6.3 Discretization via DEC
    • 6.2,6.3とも結局同じ答えになる
  • 6.4 Meshes and Matrices
    • 頂点と辺との関係、辺と三角形の関係、頂点と三角形の関係が非正方0,1行列となりつつ、三角形のcotangentなどを使って、行列サイズは大きいながら、単純かつ疎な大行列の線形代数で表せることが示せる
    • Cotan-Laplace operatorの離散版
  • 6.5 The Poisson Equation
    • Cotan-Laplace operatorにより局所のラプラシアンが計算できる
    • 結果、三次元オブジェクトの表面にラプラシアンスカラー場を表示できる。凹凸具合の視覚化の一方法である
    • 三角メッシュデータの取り扱いにhalf-edge formと言うのがある
  • 6.6 Implicit Mean Curvature Flow
    • このCotan-Laplaceオペレータを使えば、任意の離散スカラー場が出せるから、埋め込みのラプラシアンが平均曲率であることを利用して、平均曲率のスムージングをすることもできる

7 Surface Parameterization またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 球面を平面に直すとゆがむ
  • 長さと角度の両方を保存して平面化できないことを意味する
  • 長さのゆがみは許容して、角度だけは保存することはできる。共形変換と言う
  • 共形変換は平面を複素平面としてみることで説明することが多い
  • 虚数複素平面での1/4回転を意味する
  • 7.1 Conformal Structure
    • 曲面上の接面において、法線を軸に1/4回転することは、接面上ベクトルに対して、法線単位ベクトルとのクロス積を取ることに相当する
    • 接平面における虚数単位演算にも見える
  • 7.2 The Cauchy-Riemann Equation
    • 複素平面で考える
    • コーシー-リーマンの関係式は等角を満足するための条件なので、共形変換を考えるときに、これが成り立っていることを使う
    • 共形変換として適当なものを探す、とは、コーシー-リーマンの関係式が成り立つような写像を探したい、ということになる
    • 2次元平面は3次元空間に埋め込まれている
    • 2次元平面の各所に複素数を張り付けたい(複素平面マッピングする)
  • 7.3 Differential Forms on a Riemann Surface
    • 離散外微分的にコーシー-リーマンの関係式をとらえることで、活用したい
    • k形式はk個のベクトルをとってスカラーを返すが、このスカラー複素数というスカラーでもよいとすれば、そのスカラー複素平面上の回転を表していれば、回転を求めることになる
    • 接平面上のベクトルをある方向成分を取るとそれはベクトルで、それのホッジを取ると2形式になり、それはベクトル様。あるベクトルを接平面1/4回転してそれのある方向成分を取ることもできる。これは、第1の方法で出てきたベクトルと同じであればちょうどよい
    • これがなるべく一致するような複素数場を離散メッシュに見つければよい
  • 7.4 Conformal Parameterization
  • 7.5 Eigen Vectors, Eigenvalues, and Optimization

8 Vector Field Decomposition and Design またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』

  • 8.1 Hodge Decomposition
  • 8.2 Homology Generators and Harmonic Bases
  • 8.3 Connections and Parallel Transport
  • 8.4 Vector Field Design

9 Conclusion またしても、ぱらぱらめくる『Discrete Differential Geometry: An Applied Introduction』