TensorTranspose[tensor,perm]
置換 perm で与えられるように,tensor のスロットを転置して得られたテンソルを表す.
TensorTranspose
TensorTranspose[tensor,perm]
置換 perm で与えられるように,tensor のスロットを転置して得られたテンソルを表す.
詳細
- tensor は明示的な(正規,疎,あるいは構造化された)配列の任意形式のもの,あるいはテンソル積,テンソル縮約等を含むテンソルを表す任意の記号式でよい.
- 置換 perm は置換リストとして,あるいは頭部がCyclesの巡回表記で与えることができる.巡回表記はリスト表記に自動的に変換される.
- TensorTranspose[tensor]はTensorTranspose[tensor,{2,1}]と等価である.
例題
すべて開く すべて閉じる例 (2)
$Assumptions = A∈Arrays[{3, 4, 5}];TensorTranspose[A]//TensorDimensionsTensorTranspose[T, {2, 4, 3, 1}]TensorTranspose[%, {2, 1}]TensorContract[%, {{1, 4}}]スコープ (3)
TensorTranspose[{{1, 2}, {3, 4}, {5, 6}}, Cycles[{{1, 2}}]]sa = SymmetrizedArray[{{1, 2, 3} -> a}, {4, 4, 4}, Antisymmetric[{1, 2, 3}]]TensorTranspose[sa, {1, 3, 2}] + saNormal[%]$Assumptions = A∈Arrays[{4, 4, 4}, Reals, Antisymmetric[{1, 2, 3}]];TensorTranspose[A, Cycles[{{2, 3}}]]%//TensorReduce一般化と拡張 (1)
アプリケーション (1)
リーマン計量
が与えられたとき,いわゆる第1種Christoffel係数は,成分が式
で与えられる階数3の配列を形成する:
x = {r, θ};
g = CoordinateChartData["Polar", "Metric", x]Gradが最も内側の次元を加えるので,カッコ内の第1項はGrad[g,x]に過ぎない:
gradg123 = Grad[g, x]第2項は第1レベルをそのままに保つが,第2レベルと第3レベルは入れ替える:
gradg132 = TensorTranspose[gradg123, {1, 3, 2}]gradg231 = TensorTranspose[gradg123, {2, 3, 1}](1/2)(gradg123 + gradg132 - gradg231)firstChristoffel[g_, x_] := With[{dG = Grad[g, x]}, 1 / 2 (dG + TensorTranspose[dG, {1, 3, 2}] - TensorTranspose[dG, {2, 3, 1}])]x = {r, θ, φ};
g = CoordinateChartData["Spherical", "Metric", x];
firstChristoffel[g, x]特性と関係 (7)
配列に対するTensorTransposeはTransposeと等価である:
array = Array[a, {2, 3, 2}];
perm = {2, 3, 1};TensorTranspose[array, perm] === Transpose[array, perm]しかし,Transposeは置換ではない第2引数を許容する:
Transpose[array, {1, 2, 1}]TensorTranspose[array, {1, 2, 1}]$Assumptions = A∈Arrays[{2, 3, 4, 5}];TensorTranspose[A, {3, 2, 4, 1}]//TensorDimensionsPermute[TensorDimensions[A], {3, 2, 4, 1}]ベクトルのテンソル積の転置はそれらのベクトルを置換することに等しい:
$Assumptions = {v1∈Vectors[3], v2∈Vectors[4], v3∈Vectors[5]};TensorDimensions[TensorTranspose[v1v2v3, {2, 3, 1}]]TensorDimensions[Permute[v1v2v3, {2, 3, 1}]]Permute[TensorDimensions[v1v2v3], {2, 3, 1}]記号テンソルの場合,置換はデフォルトでリストの形に正準化される:
TensorTranspose[array, Cycles[{{1, 2, 3}}]]TensorTranspose[array]$Assumptions = array∈Arrays[{2, 3, 2, 3, 2}];TensorTranspose[array, {2, 3, 1}]TensorTranspose[array]TensorTranspose[array, {2, 1}] == TensorTranspose[array, {2, 1, 3}]TensorTransposeは常にTensorContractの外におかれる:
$Assumptions = A∈Arrays[{1, 2, 3, 3, 4}];TensorTranspose[A, {4, 3, 5, 1, 2}]TensorContract[%, {{1, 5}}]TensorRank[%]TensorTranspose[TensorTranspose[T, {2, 1, 4, 3}], {3, 2, 1}]With[{T = Array[t, {2, 2, 2, 2}]}, Transpose[Transpose[T, {2, 1, 4, 3}], {3, 2, 1}] === Transpose[T, {2, 3, 4, 1}]]TensorTransposeはPermutationProductについての正しいアクションである:
perm1 = Cycles[{{2, 3, 4}, {5, 1}}];
perm2 = Cycles[{{1, 4}, {2, 5}}];TensorTranspose[TensorTranspose[A, perm1], perm2]TensorTranspose[A, perm1perm2]TensorTranspose[A, perm2perm1]関連するガイド
-
▪
- 記号的なテンソル
テキスト
Wolfram Research (2012), TensorTranspose, Wolfram言語関数, https://reference.wolfram.com/language/ref/TensorTranspose.html.
CMS
Wolfram Language. 2012. "TensorTranspose." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TensorTranspose.html.
APA
Wolfram Language. (2012). TensorTranspose. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TensorTranspose.html
BibTeX
@misc{reference.wolfram_2026_tensortranspose, author="Wolfram Research", title="{TensorTranspose}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/TensorTranspose.html}", note=[Accessed: 31-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_tensortranspose, organization={Wolfram Research}, title={TensorTranspose}, year={2012}, url={https://reference.wolfram.com/language/ref/TensorTranspose.html}, note=[Accessed: 31-October-2026]}