tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

「Digital Geometry Processing with Discrete Exterior Calculus」第3章を読んだ

第3章は外積代数の導入。外積代数は微分幾何と双対?らしい。

3.1 ベクトルと1-form

これから出てくるk-formはベクトルを k個とる関数の総称。ベクトルから1-formへの変換が ♭、1-formからベクトルへの変換が \#とそれぞれ音符を用いて表される。ベクトルの内積と似たようなものだが、1-formでの演算はfで誘導された計量を表し、 u^{♭}(v) = g(u,v)

$dx_{i}\frac{\partial}{\partial x^{j}} = \delta_{j}^{i} = \begin{cases}1, &i=j\\0, &otherwise.\end{cases}$より、 dxと\frac{\partial}{\partial x}は双対基底と呼ばれている。
これを用いて、 \alpha = \alpha_{1}dx^{1}+\cdots+\alpha_{n}dx^{n} v = v^{1}\frac{\partial}{\partial x_{1}}+\cdots+v^{n}\frac{\partial}{\partial x^{n}}と書くと、 \alpha(v) = \sum\alpha_{i}dx^{i}\sum v^{j}\frac{\partial}{\partial x_{j}}=\sum\alpha_{i}v^{i}となる。アインシュタイン縮約を用いて、 \alpha(v) = \alpha_{i}v^{i}

 \# ♭は実際にはこの双対基底の入れ替えを行う。つまり \alpha = \sum \alpha_{i}dx^{i}なら \alpha^{\#} = \sum\alpha^{i}\frac{\partial}{\partial x^{i}} v = \sum v^{i}\frac{\partial}{\partial x^{i}}なら v^{♭} = v_{i}dx^{i}

3.2 微分形式とウェッジ積

 u, vを1-formの \alpha \betaで変換した先で作る平行四辺形の外積 u'\times v' \alpha \land \beta(u,v) \equiv \alpha(u)\beta(v) - \alpha(v)\beta(u)と書くことにする。すると \alpha\land\betaは2-formになる。 \alpha\land\betaは反対称なので、 \alpha\land\beta = -\beta\land\alpha \alpha\land\alpha = 0。分配法則 \alpha\land(\beta\land\gamma) = \alpha\land\beta + \alpha\land\gammaも成立する。

http://brickisland.net/cs177/wp-content/uploads/2011/10/ddg_vector_triple.svg

 u, v, wによって \mathbb{R}^{3}に張られる体積を考える。

$\alpha\land\beta\land\gamma(u,v,w) \equiv \det([u' v' w']) = \det\begin{pmatrix} \alpha(u) &\alpha(v) &\alpha(w)\\ \beta(u) &\beta(v) &\beta(w)\\ \gamma(u) &\gamma(v) &\gamma(w) \end{pmatrix}(u'\times v')\cdot w'$などと等しい。

k-formに拡張すると、 \alphaがk-form、 \betaがl-form、 \gammaがm-formとすると、反対称性:  \alpha\land\beta=(-1)^{kl}\beta\land\alphaとなる。結合法則はこれまでと同様に成立するが、分配法則は l=m の場合に限られる。

上で見たk-formは \mathbb{R}でしか考えていなかったが任意の空間に値を取りうることに注意。 f: M \to \mathbb{R}^{3}は0-formにも関わらず \mathbb{R}^{3}であるし(ベクトルと座標を区別している?)、 dfも1-formで \mathbb{R}^{3}である。ウェッジ積の定義から明らかであるが、ウェッジ積を求めるためにはベクトルの積が定義されている必要がある。

3.3 Hodge双対

 \mathbb{R}^{3} \alpha\land\beta = \gammaと表せるが、これは n=3 k=2に対して、 n-k方向と k方向が対応すると言える(らしい)。ここから双対性を導く。

組み合わせは色々あるが反対称性があるので同じ物同士は0になり、順番が逆なだけだと符号が入れ替わるだけなので \binom{n}{k}通り基底が取れる。

http://brickisland.net/cs177/wp-content/uploads/2011/10/ddg_twoform_basis1.svg

  • 0-form基底:  1
  • 1-form基底:  dx^{1}、dx^{2}、dx^{3}
  • 2-form基底:  dx^{1}\land dx^{2}、dx^{3}\land dx^{1}、dx^{1}\land dx^{2}
  • 3-form基底:  dx^{1}\land dx^{2}\land dx^{3}

 \mathbb{R}^{3}でホッジ作用素 \starを、 $$ \begin{align} \star 1 &= &dx^{1}\land dx^{2}\land dx^{3}\\ \star dx^{1} &= &dx^{2}\land dx^{3}\\ \star dx^{2} &= &dx^{3}\land dx^{1}\\ \star dx^{3} &= &dx^{1}\land dx^{2}\\ \star(dx^{1}\land dx^{2}) &= &dx^{3}\\ \star(dx^{2}\land dx^{3}) &= &dx^{1}\\ \star(dx^{3}\land dx^{1}) &= &dx^{2}\\ \star(dx^{1}\land dx^{2}\land dx^{3}) &= &1 \end{align} $$ と定義する。一般に (1,\ldots,n)を並べ替えたもの (i_{j})について \star(dx^{i_{1}}\land \cdots \land dx^{i_{k}}) = dx^{i_{k+1}}\land \cdots \land dx^{i_{n}}が成立する。

http://brickisland.net/cs177/wp-content/uploads/2011/10/ddg_volumeform1.svg

まっすぐな空間では上の議論で良かったが曲がった空間を考えると、 dx^{1}\land dx^{2}などという量は意味がないので、 \det(g) := g(u,u)g(v,v) - g(u,v)^{2}として、 \omega := \sqrt{\det(g)}dx^{1}\land\cdots\land dx^{n}を体積形式という。 \star 1 =\omegaが成立する。

一般的に内積外積はウェッジ積にホッジ作用素を作用させたものとみなせる。つまり、外積 u\times v = (\star(u^{♭}\land v^{♭}))^{\#}内積 u\cdot v = \star(u^{♭}\land\star v^{♭})である。

参考: http://hooktail.sub.jp/differentialforms/HodgeStarOperator/

3.4 微分演算子

まずはベクトル解析を復習しておく(自分はやったことが無いが)と、 \nabla := (\dfrac{\partial}{\partial x^{1}}, \cdots,\dfrac{\partial}{\partial x^{n}})。これを用いてgrad、div、curlは定義される。

http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_gradient.svg

gradは \phi: \mathbb{R}^{3}\to\mathbb{R}について、 \nabla\phi = (\dfrac{\partial\phi}{\partial x^{1}},\cdots,\dfrac{\partial\phi}{\partial x^{n}})

http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_div_curl.svg

divはベクトル場 Xにドット積で作用させて \nabla\cdot X = \dfrac{\partial X^{1}}{\partial x^{1}}+\cdots+\dfrac{\partial X^{n}}{\partial x^{n}}

curl X外積をとって \nabla\times X = (\dfrac{\partial X^{3}}{\partial x^{2}}-\dfrac{\partial X^{2}}{\partial x^{3}}, \dfrac{\partial X^{1}}{\partial x^{3}}-\dfrac{\partial X^{3}}{\partial x^{1}}, \dfrac{\partial X^{2}}{\partial x^{1}}-\dfrac{\partial X^{1}}{\partial x^{2}})

となり、非常にややこしい。これらの演算子微分形式の言葉に翻訳すると、より高次元への拡張も出来る。

  • grad  d\phi := \dfrac{\partial\phi}{\partial x^{1}}dx^{1} +\cdots+ \dfrac{\partial\phi}{\partial x^{n}}dx^{n}とすると、 \nabla\phi = (d\phi)^{\#} df(u) = u\cdot\nabla f u方向への変化を調べられる。

  • curl

微分の積に対して一般に d(\alpha\land\beta) = d\alpha\land\beta + (-1)^{\deg\alpha}\alpha\land d\betaが成立する。以下アインシュタイン縮約を用いて、 d\alpha = d(\alpha_{i}dx^{i}) \alpha_{i}dx^{i}を0-form \alpha_{i}と1-formの基底の1つ dx^{i}のウェッジ積とみなすと、 $$ \begin{align} d\alpha &= &d(\alpha_{i}\land dx^{i})\\ &= &(d\alpha_{i})\land dx^{i} + \alpha \land d(dx^{i})\\ &= &\dfrac{\partial\alpha_{i}}{\partial x^{j}}dx^{j} \land dx^{i}\\ &= &(\frac{\partial\alpha_{2}}{\partial x^{1}} - \frac{\partial\alpha_{1}}{\partial x^{2}}) dx^{1}\land dx^{2} + (\frac{\partial\alpha_{3}}{\partial x^{2}} - \frac{\partial\alpha_{2}}{\partial x^{3}}) dx^{2}\land dx^{3} + (\frac{\partial\alpha_{1}}{\partial x^{3}} - \frac{\partial\alpha_{3}}{\partial x^{1}}) dx^{3}\land dx^{1} \end{align} $$ より、 \nabla\times X = (\star dX^{♭})^{\#}

  • div

http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_hodge_star_2d.svg

curlに直交すること、2次元では \star\alpha\perp\alphaなので、 \star d\star X^{♭}と予想される。実際、 \star X^{♭} = \star(X_{1}dx^{1}+X_{2}dx^{2}+X_{3}dx^{3}) = X_{1}dx^{2}\land dx^{3} + X_{2}dx^{3}\land dx^{1} + X_{3}dx^{1}\land dx^{2}。更に微分して d\star X^{♭} = \sum\dfrac{\partial X_{i}}{\partial dx^{i}}dx^{1}dx^{2}dx^{3}。よって \star d\star X^{♭}

ベクトル解析 n-form 微分
grad  \nabla\phi 0-form  (d\phi)^{\#}
curl(rot)  \nabla\times X 1-form  (\star dX^{♭})^{\#}
div  \nabla\cdot X 2-form  \star d \star X^{♭}


* ラプラシアン \Delta

0-formでは \Delta = \star d\star d、k-formでは \Delta := \nabla\cdot\nabla = \star d\star d + d\star d\star \delta = \star d\starとすれば、 \Delta = \delta d + d\deltaと表される。k-formのラプラシアンを0-formの関数に適用しても、 \star\phiは(n+1)-formなので d\star\phi=0

3.5 積分、発散定理、ストークスの定理

一般に、区間 Aの面積 A_{\Omega} = \sum A_{i} = \int_{\Omega} dA = \int_{\Omega}\phi dAである。微分形式を用いると、 dAを2-form dx^{1}\land dx^{2}で置き換えたり、 dx^{1}\land dx^{2}の代わりに体積形式 \omega = \sqrt{\det(g)}dx^{1}\land dx^{2}を使うなどの式変形が考えられる。

  • 発散定理(div)

発散定理は水の流れなどで流出量と流入量の関係を表す。 X \Omega上のベクトル場、 nを境界の単位法線として、発散定理は \int_{\Omega} \nabla\cdot X dA = \int_{\partial\Omega}n\cdot Xdlと表される。これを書き換えると \int_{\Omega}d\star X^{♭}=\int_{\partial\Omega}\star X^{♭}である( \star dX^{♭}で無いことに注意)。

http://hooktail.sub.jp/vectoranalysis/GreensTheorem/Joh-GreensTheorem03.gif

(http://hooktail.sub.jp/vectoranalysis/GreensTheorem/より)

グリーンの定理、ストークスの定理は領域内の微小な回転を全て集めると境界上での回転に等しいという関係を表す。グリーンの定理は \mathbb{R}^{2}上、ストークスの定理 \mathbb{R}^{3}の曲面上で、 tを境界の単位法線として、 \int_{\Omega}\nabla\times XdA = \int_{\partial\Omega}t\cdot Xdl。これを書き換えると、 \int_{\Omega} dX^{♭}=\int_{\partial\Omega}X^{♭}になる?

上の定理を大まかに見ると全て \int_{\Omega}d\alpha = \int_{\partial\Omega}\alphaとなる。これは微小量を全体で積分した値は境界でその量を積分した量に等しいと解釈できる。

3.6 離散外微分

http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_oneform_quadrature.svg http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_simplices.svg

エッジごとに1-formを積分すると、定数 \hat{\alpha}_{e} := \int_{e}\alphaとなる。これは |e|をエッジの長さ、 u:=\dfrac{e}{|e|}をエッジの単位接ベクトル、離散的に書きなおすと、 \int_{e}\alpha = |e|(\dfrac{1}{N}\sum_{i} \alpha_{p_{i}}(u))である。この \alpha_{e}を集めるとメッシュ全体でのフローが調べられる。また、積分区間の並び方で積分値の符号が決まる。一般にk-単体(k次元単体)上で(k+1)-formを積分するとき、積分の範囲は  \{\sum_{i}\lambda_{i}p_{i} | \sum_{i}\lambda = 1, \lambda\geq 0\} である。(k+1)単体に含まれるk単体を面という。先ほどの積分値を一般的な場合に書き直すと、 \int_{e}\alpha = |σ|(\dfrac{1}{N}\sum_{i}\alpha_{p_{i}}(u_{1}, \cdots, u_{n}))となる。  \{u_{i}\} はエッジ  \{p_{ij}\}からシュミットの直交化などで計算した基底で上と変わらない。(0-formの関数や値の積分 \int\phi積分前の \phiと等しい。)

ある面に属するエッジで積分することを考えると、 \int_{σ}d\alpha = \int_{\partial σ}\alpha = \sum\int_{e_{i}}\alpha = \sum \hat{\alpha}_{i}。左辺も離散化して、 \hat{d}\hat{\alpha} = \sum\alpha_{i} \hat{\alpha}は向きによって符号が変わるので注意。

http://brickisland.net/cs177/wp-content/uploads/2011/11/ddg_simplicial_dual.svg

n次元でk-単体を指定すると、それと直交する(n-k)-次元の双対メッシュを指定したことになる。画像は2次元での双対メッシュを図示したものであり、左の絵からは双対メッシュは単体とは限らないことが分かる。 \alphaのホッジ双対は \hat{\star}\hat{\alpha}と表す。連続の場合と違って離散の場合は主形式と双対形式は足し合わせることができない(おそらく積分したもので定義しているのが原因)。主形式の1-formはメッシュに沿った流速、双対形式は直行しているので流量を表す。単位点あたりの流量(or流速)が同じなので \dfrac{\hat{\alpha}_{i}}{|σ_{i}|} = \dfrac{\hat{\star}\hat{\alpha}_{i}}{|σ^{\star}_{i}|}が成立する(ただし点については |σ|:=1)。

単語

  • exterior calculus: 外積代数
  • vector calculus: ベクトル代数
  • 0-form
  • dual: 双対
  • Stoke's theorem: ストークスの定理
  • covector(1-form): 余ベクトル
  • sharp:  \#
  • flat:  ♭
  • musical isomorphism: musical同型(訳語を見つけられず)
  • Einstein summation notation: アインシュタイン縮約
  • parallelogram: 平行四辺形
  • parallelpiped: 平行六面体
  • wedge product: ウェッジ積
  • antisymmetric: 反対称性
  • determinant: 行列式
  • associativity: 結合法則
  • distributivity: 分配法則
  • well-defined
  • Hodge duality: Hodge双対性
  • Hodge star: ホッジ作用素
  • nabla: ナブラ \nabla
  • Laplacian: ラプラシアン \Delta
  • Schrodinger equation: シュレーディンガー方程式
  • wave propagation: 波の伝播
  • inflate: 膨張(数学用語ではなさそう)
  • deflate: 収縮(同上)
  • divergence theorem: 発散定理(*)
  • Green's theorem: ガウスの定理(*)
  • fundamental theorem of calculus: 微積分学の基本定理(*)
  • Cauchy's integral formula: コーシーの積分公式(*)

(*)は同じまたは基本定理の拡張(らしい)

  • discrete exterior calculus: 離散外微分
  • discrete differential k-form: 離散微分k-form
  • flow: フロー
  • orthogonal dual: 直行双対
  • convex combination
  • simplex: 単体
  • proper
  • tetrahedron: 四面体
  • orientation: 方向付け
  • primal form: 主形式
  • dual form: 双対形式
  • diagonal Hodge star
  • dual Hodge star: 双対ホッジ作用素
  • primal Hodge star: 主ホッジ作用素
  • Lie derivative \mathcal{L}_{X}: リー微分
  • interior product: i_{\alpha}: 内部積(inner product: 内積と異なる)