{ "cells": [ { "cell_type": "markdown", "id": "8b315f4d", "metadata": {}, "source": [ "# ウェッジ積と反対称化\n", "\n", "微分形式の積には、交代的なウェッジ積を用います。\n", "1形式 $a$ と $b$ に対して、\n", "\n", "$$(a\\wedge b)_{ij}=\\frac12(a_i b_j-a_j b_i),$$\n", "\n", "となるため、$a\\wedge b=-b\\wedge a$ および $a\\wedge a=0$ が成り立ちます。\n", "Egisonでは、まず添字付きテンソル積を構成し、続いて `dfNormalize` により\n", "その交代化された微分形式としての表現を取り出します。\n" ] }, { "cell_type": "markdown", "id": "9c777e4a", "metadata": {}, "source": [ "## $\\mathbb R^3$ の座標1形式\n", "\n", "順序付き基底 $(dx,dy,dz)$ の各基底1形式をベクトルとして表します。\n", "幾何学的な設定を明確にするため、空間の次元と座標も明示します。\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "f0bc9356", "metadata": {}, "outputs": [], "source": [ "declare symbol x, y, z : MathValue\n", "\n", "def N : Integer := 3\n", "def params : Vector MathValue := [| x, y, z |]\n", "\n", "def dx : DiffForm Integer := [| 1, 0, 0 |]\n", "def dy : DiffForm Integer := [| 0, 1, 0 |]\n", "def dz : DiffForm Integer := [| 0, 0, 1 |]\n" ] }, { "cell_type": "markdown", "id": "5a872c8c", "metadata": {}, "source": [ "## 正規化前の添字付き積\n", "\n", "正規化前のウェッジ積には、テンソル演算によって生成された順序付き成分が\n", "そのまま残ります。正規化の前にこの値を見ることで、内部表現の規約を確認できます。\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "5d3cef2e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & 1 & 0 \\\\ 0 & 0 & 0 \\\\ 0 & 0 & 0 \\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dx ∧ dy\n" ] }, { "cell_type": "markdown", "id": "92429ee5", "metadata": {}, "source": [ "## 交代2形式\n", "\n", "正規化すると、この成分は反対称行列全体に分配されます。\n", "$(1,2)$ 成分と $(2,1)$ 成分は互いに逆符号となり、規約による係数 $1/2$ が付きます。\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "3eba21e0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & \\frac{1}{2} & 0 \\\\ \\frac{-1}{2} & 0 & 0 \\\\ 0 & 0 & 0 \\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dfNormalize (dx ∧ dy)\n" ] }, { "cell_type": "markdown", "id": "bf2b9fb6", "metadata": {}, "source": [ "反対称化は、同じ基底方向の重複も取り除きます。中間的な添字付き積\n", "$dz\\wedge dz$ には対角成分がありますが、微分形式として正規化するとゼロになります。\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "3b03c11a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & 0 & 0 \\\\ 0 & 0 & 0 \\\\ 0 & 0 & 0 \\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dfNormalize (dz ∧ dz)\n" ] }, { "cell_type": "markdown", "id": "c0e171c2", "metadata": {}, "source": [ "したがって `dfNormalize` は単なる表示上の処理ではなく、添字付きテンソルを\n", "その交代部分へ射影する操作です。正規化後のテンソルは、\n", "$dx\\wedge dy=-dy\\wedge dx$ および $dz\\wedge dz=0$ という幾何学的恒等式を満たします。\n" ] } ], "metadata": { "kernelspec": { "display_name": "Egison", "language": "egison", "name": "egison" }, "language_info": { "codemirror_mode": "egison", "file_extension": ".egi", "mimetype": "text/x-egison", "name": "egison" } }, "nbformat": 4, "nbformat_minor": 5 }