tensorの数学的な実装法
のtakker.iconの2024-11-05時点の理解を書いておく
最終的には、なるべく数学で一般に使われる定義に寄せたいところ
このあたりは調査済み
ページ先を参照
線型空間
線型汎函数
双対空間
任意の$ K-線型空間$ Vを取り上げる
$ V上の線型汎函数の集合を$ \underline{V^*}、適当に定めた函数の演算と組にした可換群を$ V^*と定義しておく
線型汎函数のscalar積を$ \cdot_{K\times V^*}:\underline{K}\times\underline{V^*}\ni(k,f)\mapsto(\bm v\mapsto k(f\bm v))\in\underline{V^*}と定義する
このとき$ (V^*,K,\cdot_{K\times V^*})が線型空間をなすとき、$ (V^*,K,\cdot_{K\times V^*})を双対空間と呼ぶ
「なすとき」ではなく、このように定義した3つ組は常に線型空間になる?takker.icon
共変vector, 反変vector
$ \underline{V}の元を反変vector (1階反変tensor)と呼ぶ
$ \underline{V^*}の元を共変vector (1階共変tensor, 1-vector)と呼ぶ
逆基底
takkerのtensor記法における$ \bar{\sf E}を、基底$ \bar Eの逆基底、その元を逆基底vectorと呼ぶ
これは昨日か一昨日から採用し始めた名称takker.icon
今までは双対基底vectorなどと読んでいたが、双対空間などと紛らわしいので、逆基底と呼ぶことにした
双対$ V^*と違い、逆基底の逆が元の基底になる($ \bar{\bar{\sf E}}=\bar{\sf E})性質があるため、名が体をよく表している
2重双対$ V^{**}は$ Vと同じではない (同型ではあるが)
『連続体の力学5 (ベクトル演算と物理成分) 』で使われている逆格子基底、逆格子vectorなども検討したが、こちらは結晶学にて別の定義が与えられているようなので、採用を控えた
これを使うと、音楽同型は、共変基底vectorと逆基底vectorとの変換とみなせる
2重双対$ {V^*}^*は$ Vと同型
$ \natural\bm u:V^*\ni\alpha\mapsto\alpha(\bm u)\in Kとすれば、$ Vから$ {V^*}^*を作れる
逆は一度基底を経由する
$ \natural s:=s(e^i)\bm e_i
$ \natural\natural\bm u=(\natural\bm u)(e^i)\bm e_i=e^i(\bm u)\bm e_i=\bm uとなる
$ \naturalは今適当に作った記号takker.icon
特に由来はない
tensor積
https://ja.wikipedia.org/wiki/テンソル積
意味とかは割愛
実装方法
$ U,Vを$ K上の任意の線型空間とする
$ U,Vの基底の組み合わせから形式的に作られた対象の線型結合で、新しい線型空間$ U\otimes Vを定義する
双線型氾函数の普遍性が成り立つ定義なら、どんな定義にしてもいい
直積集合$ U\times Vでは定義できない
もうすこしひねる必要がある
ここでは簡単な実装方法として、重線型氾函数がなす線型空間をtensor空間と見なしてみる
$ Uと$ V
$ \bm u\otimes\bm v:\underline{U^*}\times\underline{V^*}\ni(\alpha,\beta)\mapsto\alpha(\bm u)\beta(\bm v)\in\underline{K}
型は$ \bullet\otimes\bullet:\underline U\times\underline V\to(\underline{U^*}\times\underline{V^*}\to\underline{K})
$ \underline{U^*}\times\underline{V^*}\to\underline{K}に構造をいれた多重線型空間を$ U\otimes Vの内部実装とする
$ U^*と$ V^*
$ \alpha\otimes\beta:\underline{{U^*}^*}\times\underline{{V^*}^*}\ni(u,v)\mapsto u(\alpha)v(\beta)\in\underline{K}
型は$ \bullet\otimes\bullet:\underline{U^*}\times\underline{V^*}\to(\underline{{U^*}^*}\times\underline{{V^*}^*}\to\underline{K})
この多重線型空間が$ U^*\otimes V^*の内部実装となる
$ Uと$ V^*
2階混合tensor相当
$ U^*と$ V
2階混合tensor相当
2024-11-05 22:46:24 ↓をふまえて、定義を変えた
この定義はちょっと違うっぽい?takker.icon
https://ja.wikipedia.org/wiki/多重線型形式
https://ja.wikipedia.org/wiki/テンソル空間
https://ja.wikipedia.org/wiki/双線型写像
https://ja.wikipedia.org/wiki/テンソルの縮約
https://ja.wikipedia.org/wiki/多重線型写像
https://ja.wikipedia.org/wiki/線型写像
$ K上の線型空間$ Vから線型空間$ Wへの線型写像がなす線型空間を$ L_K(V,W)と表す
$ L_K(V;W)とも書くみたい?
$ L_K(V_1\times V_2\times\cdots,W)=L_K(V_1,V_2,\cdots;W)
このとき$ V^*=L_K(V,K)となる
係数体$ Kは$ K上の線型空間でもあるから、この式が成り立つ
双線形関数 [物理のかぎしっぽ]
同型を=とみなしている
https://storytellphys.wordpress.com/2024/02/24/テンソル空間/
http://www.quest.lab.uec.ac.jp/ogawa/qmath2021/qmath20210526.pdf
大体同じだが、若干定義が違う
おそらく同値
証明したい
2021年度 量子情報数理特論
https://manabitimes.jp/math/1845
普遍性よる定義まで、理由付きで丁寧に書かれている
以降、tensor積の内部実装には立ち入らない
tensor空間
https://ja.wikipedia.org/wiki/テンソル空間
$ K-線型空間$ Vについて、$ \underbrace{V\otimes\cdots\otimes V}_{m}\otimes\underbrace{V^*\otimes\cdots\otimes V^*}_{n}で表される空間の要素をm階反変n階共変tensor空間 ((m,n)型tensor空間)と呼ぶ
$ = V^{\otimes m}\otimes{V^*}^{\otimes n}
$ =T_m^n(V)
とも書くみたい
from wikipdia, https://manabitimes.jp/math/1919 など
空間$ M上の点$ pを始点とし、$ Mに接する方向のvectorsを集めて得た空間を接空間$ T_pMと呼ぶ
これらの台集合の元をm階反変n階共変tensor ((m,n)型tensor)と呼ぶ
反変vectorは1階反変0階共変tensorと呼べる
共変vectorは0階反変1階共変tensorと呼べる
scalarは0階反変0階共変tensorと約束する
反変も共変もあるtensorは、混合tensorと呼ばれる
微分
$ f:A\to Bの微分$ (\mathrm df)(a,\Delta a)=f'(a)\Delta aを$ \mathrm df:A\ni a\to(\Delta a\to f'(a)\Delta a)\in(A\to B)と捉え直すと、$ \mathrm dは任意の微分可能な函数$ fから、$ aを受け取ると線型函数$ A\to Bを返す函数とみなせる
この解釈が微分形式に関わってくるtakker.icon*2
完全反対称
0階反変p階共変完全反対称tensorをn-formと呼ぶ
p階反変0階共変完全反対称tensorをn-vectorと呼ぶ
必ず$ 0\le p\le\dim Vである
$ p>\dim Vだと、全て零vector$ \bm 0に縮退する
Wedge積
$ \alpha\wedge\beta:=\alpha\otimes\beta-\beta\otimes\alpha(1階同士のとき)
Wedge積を帰納的に定義したい
Hodge作用素
ホッジ作用素 [物理のかぎしっぽ]
Hodge starを目指して - 物理学科 Advent Calendar - Physics Lab. 2023
音楽同型に言及してる
微分形式
線型とは限らない汎函数$ \phi:\underline{V}\to\underline{K}に対して、$ \mathrm d\phi:\underline{V}\ni\bm v\mapsto\left(\Delta\bm v\mapsto\left.\left(\frac{\partial}{\partial e^i}\phi(e^j\bm e_j))\right)\right|_{e^k=e^k(\bm v)}e^i(\Delta\bm v)\right)\in\underline{V^*}を0-formの外微分と呼ぶ
$ \left.\left(\frac{\partial}{\partial e^i}\phi(e^j\bm e_j))\right)\right|_{e^k=e^k(\bm v)}e^i(\Delta\bm v)=\left.\frac{\partial}{\partial h}\phi(\bm v+h\Delta\bm v)\right|_{h=0}で、$ \Delta\bm v方向の方向微分に等しい
基底$ \{\bm e_i\}は任意の基底で成立
$ (\mathrm de^i)(\bm v)=e^iが成立するから、$ \mathrm d\phi=\frac{\partial\phi}{\partial e^i}\mathrm de^iと書ける
$ \left.\left(\frac{\partial}{\partial e^i}\phi(e^j\bm e_j))\right)\right|_{e^k=e^k(\bullet)}を$ \frac{\partial\phi}{\partial e^i}と略記した
これにより、$ \mathrm dfなどという表記を厳密に定義できた
$ E(\bm v)=E_0(\bm v)\mathrm de^0(\bm v)+E_1(\bm v)\mathrm de^1(\bm v)+E_2(\bm v)\mathrm de^2(\bm v)\in\underline{V^*}は1-form
$ E_\bulletは汎函数$ \underline{V}\to\underline{K}
$ (\mathrm dE)(\bm v):\underline{V^*}^2\ni(\Delta\bm v_0,\Delta\bm v_1)\mapsto\frac{\partial E_j}{\partial e^i}(\bm v)\mathrm de^i(\bm v)(\Delta\bm v_0)\wedge\mathrm de^j(\bm v)(\Delta\bm v_1)\in\underline{K}は2-form
$ \alpha\wedge\beta:=\alpha\otimes\beta-\beta\otimes\alpha (双方とも1-formの場合)
(後日修正する)これは直積が引数にしているが、これを実装の前段階とし、tensor積の普遍性を用いて$ \underline{V^*\otimes V^*}を受け取れるwrapperを作り、そちらを$ \mathrm d Eとする
p-formの型
0-form:$ \underline{V}\to\underline{K}
scalar場とみなせる
1-form:$ \underline{V}\to\underline{V^*}
vector場とみなせる
2-form:$ \underline{V}\to\underline{{V^*}^{\otimes2}}
tensor場とみなせる
正確には0階反変2階共変tensor場
p-form:$ \underline{V}\to\underline{{V^*}^{\otimes p}}
返り値がp-vectorになる
外微分演算子の公理的定義
$ \mathrm d(\underset{0}{\phi}):\Delta\bm v\mapsto\frac{\partial\phi}{\partial e^i}e^i(\Delta\bm v)\quad\text{.for }\forall e^\bullet
$ {\mathrm d}(k\alpha+l\beta)=k{\mathrm d}\alpha+l{\mathrm d}\beta
$ {\mathrm d}(\underset{m}{\alpha}\wedge\underset{n}{\beta})=({\mathrm d}\underset{m}{\alpha})\wedge\underset{n}{\beta}+(-1)^m\underset{m}{\alpha}\wedge{\mathrm d}\underset{n}{\beta}
積の微分相当
$ {\mathrm d}({\mathrm d}\underset{m}{\alpha})=0
https://ja.wikipedia.org/wiki/外微分#公理による定義
下の文字は、階数を表す
外微分の型
0-formの外微分:$ \mathrm d:(\underline{V}\to\underline{K})\to(\underline{V}\to\underline{V^*})
1-formの外微分:$ \mathrm d:(\underline{V}\to\underline{V^*})\to(\underline{V}\to\underline{{V^*}^{\otimes2}})
p-formの外微分:$ \mathrm d:(\underline{V}\to\underline{{V^*}^{\otimes p}})\to(\underline{V}\to\underline{{V^*}^{\otimes p+1}})
外微分を作用させる事に、階数が1つずつ増える
これはnabla$ \bm\nablaの性質と対応する
scalarをvectorに、vectorを2階tensorにする
線型函数は外微分に対して不変
$ (\mathrm d\alpha)(\bm v)(\Delta v)=\sum_{i,j}\frac{\partial\alpha_j e^j}{\partial e_i}(\bm v)\mathrm de^i(\bm v)(\Delta v)
$ \alpha_j\in\underline{K}は$ \alphaの$ j成分で、定数となる
$ = \sum_{i,j}\alpha_j\frac{\partial e^j}{\partial e_i}(\bm v)\mathrm de^i(\bm v)(\Delta v)
$ = \alpha_j\mathrm de^j(\bm v)(\Delta v)
$ = \alpha_je^j(\Delta v)
$ = \alpha(\Delta v)
不変じゃない。入力にかかわらず$ \alphaを返す定数函数になるんだtakker.icon
$ \mathrm d\alpha:\bm v\mapsto\alpha
$ (\mathrm d\alpha)(\bm v)=\alpha_j\mathrm de^j(\bm v)=\alpha
$ \alpha_\bullet\in\underline{K}
0-formのときは$ \mathrm d:(\underline{V}\to\underline{K})\to\underline{V}\to\underline{V^*}なので、入力が線型汎函数だと$ \underline{V^*}\to(\underline{V}\to\underline{V^*})となって、1-vectorを受け取り1-vectorを返す定数函数を返す函数となる
線型な0-form=1-vectorというトリックが効いている
1-form$ Eの成分$ E_\bulletが線型汎函数のとき
$ \mathrm d E=\mathrm dE_i\wedge\mathrm d e^i=\bm v\mapsto E_{ij}\mathrm de^j(\bm v)\wedge\mathrm d e^i(\bm v)=\bm v\mapsto E_i\wedge e^i
$ E_{\bullet\bullet}\in\underline{K}
$ E_{ij}\mathrm de^j(\bm v)(\Delta\bm v)=E_{ij}e^j(\Delta\bm v)=E_i(\Delta\bm v)
やはり定数函数になる
ただし、1-form$ Eではなく2-vector$ E_i\wedge e^iを返す
線型な1-form≠2-vectorだから
2次元のとき
$ (\mathrm dE)(\bm v)=E_{01}e^0\wedge e^1+E_{10}e^1\wedge e^0=(E_{01}-E_{10})e^0\wedge e^1
積分
$ \int_C\underset{1}{\omega}=
#2024-11-07 08:18:12
#2024-11-05 09:12:34