d 次元のレヴィ・チビタ(Levi-Civita)の完全に反対称のテンソルを返す.
LeviCivitaTensor
d 次元のレヴィ・チビタ(Levi-Civita)の完全に反対称のテンソルを返す.
詳細
- LeviCivitaTensor[d]は,各次元で長さ d である階数 d のテンソルを返す.
- LeviCivitaTensor[d]の要素は0,-1,+1で,Signatureをその指数に適用して得ることができる.
- LeviCivitaTensorは,デフォルトで,SparseArrayオブジェクトを与える.LeviCivitaTensor[d,List]は通常の配列を返すのに対し,LeviCivitaTensor[d,SymmetrizedArray]は対称化された配列を返す.
例題
すべて開く すべて閉じる例 (1)
LeviCivitaTensor[3]Normal[%]スコープ (5)
LeviCivitaTensorは疎な配列を返す:
LeviCivitaTensor[4]LeviCivitaTensor[2]//MatrixFormLeviCivitaTensor[3, List]LeviCivitaTensor[3].{x1, x2, x3}.{y1, y2, y3}Cross[{x1, x2, x3}, {y1, y2, y3}]より高次の結果をSymmetrizedArrayオブジェクトとして得る:
LeviCivitaTensor[15, SymmetrizedArray]アプリケーション (2)
無限小回転行列
は,レヴィ・チビタテンソルによる角速度
の縮約である:
ω = {ω1, ω2, ω3};
dR = TensorContract[LeviCivitaTensor[3, List]ω, {2, 4}]回転力学における多くの操作は,
,トルク
でのベクトルの縮約である:
dR.{Fx, Fy, Fz} == ω⨯{Fx, Fy, Fz}m dR.{x, y, z} == m ω⨯{x, y, z}Simplify[MatrixExp[t dR] == RotationMatrix[t Sqrt[ω.ω], ω], ω∈Reals && ω1^2 + ω2^2 + ω3^2 > 0]A = SymmetrizedArray[pos_ :> a@@pos, {5, 5, 5}, Antisymmetric[{1, 2, 3}]]HodgeDual[A]% === 1 / 3!TensorContract[ALeviCivitaTensor[5], {{1, 4}, {2, 5}, {3, 6}}]レヴィ・チビタテンソルによるTensorProductの縮約は,SymmetrizeとHodgeDualを組み合せる:
B = SymmetrizedArray[pos_ :> a@@pos, {5, 5}, Antisymmetric[{1, 2}]]HodgeDual[Symmetrize[AB, Antisymmetric[Range[5]]]] == (1/5!)TensorContract[ABLeviCivitaTensor[5, SymmetrizedArray], {{1, 6}, {2, 7}, {3, 8}, {4, 9}, {5, 10}}]//Simplify三次元では,ホッジ双対はベクトルの外積とTensorWedgeを同定するためにしばしば使われる:
v = {vx, vy, vz};
w = {wx, wy, wz};
v⨯w == HodgeDual[vw] == TensorContract[(1/2!)TensorWedge[v, w]LeviCivitaTensor[3], {{1, 3}, {2, 4}}]特性と関係 (8)
レヴィ・チビタテンソルの構成要素はSignatureの値と一致する:
Array[Signature[{##}]&, {3, 3, 3}] == LeviCivitaTensor[3]LeviCivitaTensor[d,List]は,Normalをレヴィ・チビタテンソルに適用することに等しい:
LeviCivitaTensor[5, List] === Normal[LeviCivitaTensor[5]]ByteCount[LeviCivitaTensor[8, List]]レヴィ・チビタテンソルのSparseArray表現には
個の項が含まれる:
ByteCount[LeviCivitaTensor[8, SparseArray]]SymmetrizedArray表現は単一の成分しか保存しない:
ByteCount[LeviCivitaTensor[8, SymmetrizedArray]]LeviCivitaTensor[d]は対称性Antisymmetric[{1,…,d}]を有する:
LeviCivitaTensor[4]TensorSymmetry[%]次元
のLeviCivitaTensorは,その次元における1のHodgeDualである:
LeviCivitaTensor[4, SymmetrizedArray] === HodgeDual[1, 4]行列式Det[m]は,m 番目の行あるいは列のレヴィ・チビタテンソルへの縮約である:
m = Array[μ, {3, 3}];
Det[m] === TensorContract[m[[1]]m[[2]]m[[3]]LeviCivitaTensor[3, List], {{1, 4}, {2, 5}, {3, 6}}]効率化のためにInactive[TensorProduct]を使ってより高次元に一般化する:
det[m_] := With[{n = Length[m]},
Activate[TensorContract[Inactive[TensorProduct]@@Append[m, LeviCivitaTensor[n]], Table[{k, k + n}, {k, n}]]]];m = Array[μ, {6, 6}];
Det[m] == det[m]//Simplify
が
なら,PfaffianDet[m]は
として計算できる.ここで,
はTensorProductとTensorContractを使ってLeviCivitaTensor[2n]である:
m = Symmetrize[Table[a[i, j], {i, 4}, {j, 4}], Antisymmetric[{1, 2}]];
PfaffianDet[m] == (1/2^22!)TensorContract[mmLeviCivitaTensor[4], {{1, 5}, {2, 6}, {3, 7}, {4, 8}}]//Simplify効率化のためにInactive[TensorProduct]を使ってより高次元に一般化する:
pfaf[m_] := With[{n = Length[m] / 2},
(1/2^nn!)Activate[TensorContract[Inactive[TensorProduct]@@Append[ConstantArray[m, n], LeviCivitaTensor[2n]], Table[{k, k + 2n}, {k, 2n}]]]]m = Symmetrize[Table[a[i, j], {i, 6}, {j, 6}], Antisymmetric[{1, 2}]];
PfaffianDet[m] == pfaf[m]//Simplify次元
のCrossは,
ベクトルのレヴィ・チビタテンソルへの縮約である:
α = Array[a, {4}];
β = Array[b, {4}];
γ = Array[c, {4}];
Cross[α, β, γ] === TensorContract[αβγLeviCivitaTensor[4, List], {{1, 4}, {2, 5}, {3, 6}}]関連するガイド
-
▪
- テンソル
テキスト
Wolfram Research (2008), LeviCivitaTensor, Wolfram言語関数, https://reference.wolfram.com/language/ref/LeviCivitaTensor.html (2014年に更新).
CMS
Wolfram Language. 2008. "LeviCivitaTensor." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/LeviCivitaTensor.html.
APA
Wolfram Language. (2008). LeviCivitaTensor. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LeviCivitaTensor.html
BibTeX
@misc{reference.wolfram_2026_levicivitatensor, author="Wolfram Research", title="{LeviCivitaTensor}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/LeviCivitaTensor.html}", note=[Accessed: 15-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_levicivitatensor, organization={Wolfram Research}, title={LeviCivitaTensor}, year={2014}, url={https://reference.wolfram.com/language/ref/LeviCivitaTensor.html}, note=[Accessed: 15-November-2026]}