ArraySimplify[expr]
expr についての連続的な配列変換を行い,求まった中で最も簡約された形を返す.
ArraySimplify[expr,assum]
仮定 assum を使って簡約する.
ArraySimplify
ArraySimplify[expr]
expr についての連続的な配列変換を行い,求まった中で最も簡約された形を返す.
ArraySimplify[expr,assum]
仮定 assum を使って簡約する.
詳細とオプション
- ArraySimplifyは,記号配列式の簡約に使うことができる.
- ArraySimplifyは,配列演算の多重線形性を多くの配列,行列,ベクトル演算の恒等式とともに使う.
- 記号引数の次元性は,仮定によって,あるいはArraySymbol,MatrixSymbol,VectorSymbolを使って指定できる.
- 次元性が未指定の記号引数は,それが使われている関数に適切な次元の配列であると仮定される.PlusやTimesのように複数の引数を持つListableな関数では,他に指定がない限りすべての引数が同じ次元であると仮定される. »
- ArraySimplifyには,assum に追加するデフォルトの仮定を指定するオプションAssumptionsがある.
- Assumptionsオプションのデフォルト設定は$Assumptionsである.
- ArraySimplifyのデフォルトの仮定はAssumingを使って指定できる.
- 生成される各形式の複雑性は,LeafCountに似た測度を使って評価される.例外として,ArraySymbol,MatrixSymbol,VectorSymbol,SymbolicZerosArray,SymbolicOnesArray,SymbolicIdentityArray,SymbolicDeltaProductArrayの部分式は原子的なものとして扱われる.
例題
すべて開く すべて閉じる例 (3)
ArraySimplify[a.b + 2a.c]ArraySimplify[m.Inverse[m], Element[m, Matrices[{n, n}]]]ArraySimplify[D[(VectorSymbol["v", n] + x).(VectorSymbol["v", n] + x), x], Element[x, Complexes]]MatrixSymbolとVectorSymbolを含む式を簡約する:
a = MatrixSymbol["a", {n, n}];
v = VectorSymbol["v", n];ArraySimplify[v.Transpose[a]]ArraySimplify[Inverse[Inverse[a]]]ArraySimplify[Det[2a] / Det[a]]スコープ (42)
多重線形演算 (12)
ArraySimplify[(2 ArraySymbol["a", {p, q, r}] + 3 ArraySymbol["b", {p, q, r}]) (4 ArraySymbol["c", {p, q, r}] + 5 ArraySymbol["d", {p, q, r}]) - 10ArraySymbol["a", {p, q, r}] ArraySymbol["d", {p, q, r}] - 8 ArraySymbol["a", {p, q, r}] ArraySymbol["c", {p, q, r}]]線形結合のDot積:
ArraySimplify[2a.b + 3a.c]線形結合のArrayDot積:
ArraySimplify[ArrayDot[2a, 3b + 5c, 2] + ArrayDot[a, 7c, 2]]線形結合のTensorProduct:
ArraySimplify[TensorProduct[2a, 3b, 5c] + 2TensorProduct[a, 5b, 7c]]線形結合のKroneckerProduct:
ArraySimplify[KroneckerProduct[a + b, c + d] - KroneckerProduct[a + b, c - d]]線形結合のTensorWedge:
ArraySimplify[TensorWedge[a, b, c] - TensorWedge[a, 2d, c]]線形結合のCross積:
ArraySimplify[Cross[2a + 3b, 5a + 7b]]線形結合のTr:
ArraySimplify[Tr[2a + 3b + 4c] - 2Tr[a + 2c]]線形結合のTensorContract:
ArraySimplify[TensorContract[a + 2b, {{2, 3}}] + TensorContract[a - 3b, {{2, 3}}]]線形結合のHodgeDual:
ArraySimplify[HodgeDual[s a + t b] - t HodgeDual[b], Element[s | t, Reals]]線形結合のTranspose:
ArraySimplify[Transpose[a + b + c] + Transpose[2b - c]]線形結合のConjugateTranspose:
ArraySimplify[ConjugateTranspose[2 a + I b] + I ConjugateTranspose[b + c]]配列演算 (10)
Transpose,Conjugate,ConjugateTranspose:
ArraySimplify[Transpose[a, {1, 2, 3}]]ArraySimplify[Transpose[a, 1 <-> 2]]ArraySimplify[Transpose[a, Cycles[{{2, 1}}]]]ArraySimplify[ConjugateTranspose[a, {2, 1}]]ArraySimplify[Transpose[ConjugateTranspose[a]]]ArraySimplify[Conjugate[Conjugate[a]]]ArraySimplify[Conjugate[Transpose[a]]]ArraySimplify[Conjugate[ConjugateTranspose[a]]]ArraySimplify[ConjugateTranspose[Conjugate[a], 7]]ArraySimplify[ConjugateTranspose[Transpose[a, 3], 5]]ArraySimplify[Conjugate[a], Element[a, Arrays[{p, q, r}, Reals]]]ArraySimplify[ConjugateTranspose[a], Element[a, Arrays[{p, q, r}, Reals]]]TensorProductの簡約:
ArraySimplify[TensorProduct[a, b, c, d] / a / c, Element[a | c, Reals]]ArraySimplify[TensorProduct[a, b, TensorContract[c, {{1, 3}, {2, 5}}], d], Element[a, Vectors[n]] && Element[b, Arrays[{p, q, r}]]]TensorWedgeの簡約:
ArraySimplify[TensorWedge[Transpose[a], b, Transpose[c], d]]ArraySimplify[TensorWedge[a, b, ConjugateTranspose[c, 3 <-> 7], d]]Transpose,Conjugate,ConjugateTransposeのTr:
ArraySimplify[Tr[Transpose[a]]]ArraySimplify[Tr[Conjugate[a]] == Conjugate[Tr[a]] == Tr[ConjugateTranspose[a]]]配列演算のConjugate:
ArraySimplify[Conjugate[a].Conjugate[b]]ArraySimplify[ArrayDot[Conjugate[a], Conjugate[b], 2]]ArraySimplify[Conjugate[TensorProduct[Conjugate[a], Conjugate[b]]]]ArraySimplify[KroneckerProduct[Conjugate[a], Conjugate[b]]]ArraySimplify[Conjugate[TensorWedge[a, Conjugate[b]]]]ArraySimplify[Cross[Conjugate[a], Conjugate[b]]]初等関数のConjugateおよびConjugateTranspose:
ArraySimplify[Conjugate[Sin[VectorSymbol["v", n]]] - Sin[Conjugate[VectorSymbol["v", n]]]]ArraySimplify[ConjugateTranspose[ArcTan[Conjugate[a]]]]ArraySimplify[Conjugate[(MatrixSymbol["a", {n, n}])^k] - Conjugate[MatrixSymbol["a", {n, n}]]^k, k∈ℤ]ArraySimplify[ConjugateTranspose[t ^ Transpose[a]], t > 0]ArraySimplify[Transpose[a ^ b] == Transpose[a] ^ Transpose[b]]ArraySimplify[Transpose[Beta[a, b]] - Beta[Transpose[a], Transpose[b]], Element[a | b, Arrays[{k, m, n}]]]ArraySimplify[TensorProduct[a, b, c].TensorProduct[d, e] / c.d, Element[c | d, Vectors[n]]]ArraySimplify[TensorProduct[a, b, c].TensorProduct[d, e], Element[c | d, Matrices[{n, n}]]]スカラー値のArrayDotの交換性:
ArraySimplify[ArrayDot[a, b, 3] - ArrayDot[b, a, 3], Element[a | b, Arrays[{k, m, n}]]]ArraySimplify[a.SymbolicIdentityArray[{n}]]ArraySimplify[ArrayDot[a, SymbolicIdentityArray[{m, n, k}], 3]]ArraySimplify[MatrixPower[SymbolicIdentityArray[{n}], k], Element[k, Integers]]行列演算 (16)
ArraySimplify[Inverse[Inverse[a]]]ArraySimplify[a.Inverse[a], Element[a, Matrices[{n, n}]]]ArraySimplify[Inverse[a].a.b]ArraySimplify[b.a.Inverse[a]]ArraySimplify[PseudoInverse[PseudoInverse[a]]]ArraySimplify[a.PseudoInverse[a].a]ArraySimplify[ConjugateTranspose[PseudoInverse[a].a]]ArraySimplify[ConjugateTranspose[a.PseudoInverse[a]]]ArraySimplify[ConjugateTranspose[a].a.PseudoInverse[a]]ArraySimplify[PseudoInverse[a].a.ConjugateTranspose[a]]ArraySimplify[ConjugateTranspose[a].ConjugateTranspose[PseudoInverse[a]].PseudoInverse[a]]ArraySimplify[Adjugate[Adjugate[a]]Det[a] ^ 2, Element[a, Matrices[{n, n}]]]ArraySimplify[Adjugate[Inverse[a]]Det[a]]ArraySimplify[Inverse[Adjugate[a]]Det[a]]ArraySimplify[a.Adjugate[a] / Det[a], Element[a, Matrices[{n, n}]]]ArraySimplify[Adjugate[a].a / Det[a], Element[a, Matrices[{n, n}]]]ArraySimplify[a.Adjugate[a].b]ArraySimplify[MatrixPower[a, 1]]ArraySimplify[MatrixPower[a, -1]]ArraySimplify[MatrixPower[a, 0], Element[a, Matrices[{n, n}]]]ArraySimplify[MatrixPower[MatrixPower[a, k], m], Element[k | m, Integers]]ArraySimplify[MatrixPower[Inverse[a], -k], Element[k, Integers]]ArraySimplify[Inverse[MatrixPower[a, -7]]]ArraySimplify[a.MatrixPower[b, k - 1].b]ArraySimplify[a.MatrixPower[b, k].MatrixPower[b, m].c]Inverse,MatrixPower,PseudoInverse,Adjugateのスカラー倍:
ArraySimplify[9Inverse[3a]]ArraySimplify[MatrixPower[3a, k] / 3 ^ k]ArraySimplify[3PseudoInverse[3a]]ArraySimplify[Adjugate[3 a] / 3 ^ n, Element[a, Matrices[{n, n}]]]ArraySimplify[Inverse[a].Inverse[b].Inverse[c]]ArraySimplify[Adjugate[a].Adjugate[b].Adjugate[c]]Inverse,Adjugate,PseudoInverseのTranspose,Conjugate,ConjugateTranspose:
ArraySimplify[Transpose[Inverse[a]] == Inverse[Transpose[a]]]ArraySimplify[Conjugate[Inverse[a]] == Inverse[Conjugate[a]]]ArraySimplify[ConjugateTranspose[Inverse[a]] == Inverse[ConjugateTranspose[a]]]ArraySimplify[Transpose[Adjugate[a]] == Adjugate[Transpose[a]]]ArraySimplify[Conjugate[Adjugate[a]] == Adjugate[Conjugate[a]]]ArraySimplify[ConjugateTranspose[Adjugate[a]] == Adjugate[ConjugateTranspose[a]]]ArraySimplify[Transpose[PseudoInverse[a]] == PseudoInverse[Transpose[a]]]ArraySimplify[Conjugate[PseudoInverse[a]] == PseudoInverse[Conjugate[a]]]ArraySimplify[ConjugateTranspose[PseudoInverse[a]] == PseudoInverse[ConjugateTranspose[a]]]MatrixPowerのTranspose,Conjugate,ConjugateTranspose:
ArraySimplify[Transpose[MatrixPower[Transpose[a], -7]]]ArraySimplify[Conjugate[MatrixPower[ConjugateTranspose[a], 3]]]ArraySimplify[ConjugateTranspose[MatrixPower[Conjugate[a], 5]]]MatrixExpのTranspose,Conjugate,ConjugateTranspose:
ArraySimplify[Transpose[MatrixExp[Transpose[a]]]]ArraySimplify[Conjugate[MatrixExp[ConjugateTranspose[a]]]]Dot積のTransposeとConjugateTranspose:
ArraySimplify[Transpose[a].Transpose[b].Transpose[c], Element[a | b | c, Matrices[{n, n}]]]ArraySimplify[ConjugateTranspose[a].ConjugateTranspose[b].ConjugateTranspose[c], Element[a | b | c, Matrices[{n, n}]]]Dot積の負の指数のMatrixPower:
ArraySimplify[MatrixPower[Inverse[a].Inverse[b], -3], Element[a | b, Matrices[{n, n}]]]ArraySimplify[Tr[b.a.Inverse[b]], Element[a | b, Matrices[{n, n}]]]ArraySimplify[Tr[Inverse[b].a.b], Element[a | b, Matrices[{n, n}]]]ArraySimplify[Tr[b.c.a] - Tr[a.b.c], Element[a | b | c, Matrices[{n, n}]]]ArraySimplify[Tr[a.(Transpose[b]c)], Element[a | b | c, Matrices[{n, n}]]]行列演算で構成されたDet:
ArraySimplify[Det[3a] / Det[a], Element[a, Matrices[{n, n}]]]ArraySimplify[Det[Transpose[a]]]ArraySimplify[Conjugate[Det[Conjugate[a]]]]ArraySimplify[Conjugate[Det[ConjugateTranspose[a]]]]ArraySimplify[1 / Det[Inverse[a]]]ArraySimplify[Det[Adjugate[a]] Det[a], Element[a, Matrices[{n, n}]]]ArraySimplify[Det[MatrixPower[a, 7]]]ArraySimplify[Det[b.a.Inverse[b]]]ArraySimplify[Det[Inverse[b].a.b]]ArraySimplify[Det[a.b.c] / Det[a], Element[a | b | c, Matrices[{n, n}]]]KroneckerProduct引数を持つ行列演算:
ArraySimplify[KroneckerProduct[Transpose[a], Transpose[b], Transpose[c]], Element[a | b | c, Matrices[{m, n}]]]ArraySimplify[KroneckerProduct[ConjugateTranspose[a], ConjugateTranspose[b], ConjugateTranspose[c]], Element[a | b | c, Matrices[{m, n}]]]ArraySimplify[KroneckerProduct[Inverse[a], Inverse[b], Inverse[c]], Element[a | b | c, Matrices[{n, n}]]]ArraySimplify[KroneckerProduct[PseudoInverse[a], PseudoInverse[b], PseudoInverse[c]], Element[a | b | c, Matrices[{m, n}]]]ArraySimplify[Tr[KroneckerProduct[a, b, c]] / Tr[a], Element[a | b | c, Matrices[{n, n}]]]ArraySimplify[KroneckerProduct[a, b].KroneckerProduct[c, d].KroneckerProduct[e, f], Element[a | b | c | d | e | f, Matrices[{n, n}]]]ArraySimplify[Det[KroneckerProduct[a, b, c]] / (Det[a]^m n Det[b]^k n), Element[a, Matrices[{k, k}]] && Element[b, Matrices[{m, m}]] && Element[c, Matrices[{n, n}]]]ArraySimplify[KroneckerProduct[MatrixPower[a, k], MatrixPower[b, k], MatrixPower[c, k]], Element[a | b | c, Matrices[{n, n}]] && Element[k, Integers]]ArraySimplify[KroneckerProduct[a, b, KroneckerProduct[c, d], e], Element[a | b | c | d | e, Matrices[{m, n}]]]a = MatrixSymbol["a", {n, n}];ArraySimplify[a.MatrixExp[-b].Inverse[a].MatrixExp[a.b.Inverse[a]]]ArraySimplify[MatrixPower[MatrixExp[a], k].MatrixExp[k a], Element[k, Integers]]ArraySimplify[MatrixExp[s a].MatrixExp[t a], Element[s | t, Complexes]]ArraySimplify[Det[MatrixExp[a]] - Exp[Tr[a]]]ベクトル演算 (4)
ベクトルのTranspose:
ArraySimplify[Transpose[v], Element[v, Vectors[n]]]ベクトルと行列のDot積:
ArraySimplify[w.v - v.w, Element[v | w, Vectors[n]]]ArraySimplify[v.Transpose[a], Element[v, Vectors[n]] && Element[a, Matrices[{n, m}]]]ArraySimplify[v.Transpose[a].w, Element[v | w, Vectors[n]] && Element[a, Matrices[{n, n}]]]ArraySimplify[a.v.Transpose[b], Element[v, Vectors[n]] && Element[a, Matrices[{m, n}]] && Element[b, Matrices[{m, p}]]]ArraySimplify[Transpose[KroneckerProduct[u, v]], Element[u, Vectors[m]] && Element[v, Vectors[n]]]Cross積:
ArraySimplify[Cross[a, a]]ArraySimplify[Cross[a + 2b, a + b, a - b]]ArraySimplify[Cross[a, d, c, b] + Cross[a, b, c, d]]オプション (1)
Assumptions (1)
ArraySimplify[Det[7 a] / Det[a], Element[a, Matrices[{n, n}]]]Assumptionsオプションを使う:
ArraySimplify[Det[7a] / Det[a], Assumptions -> Element[a, Matrices[{n, n}]]]Assumingを使ってデフォルトの仮定を指定する:
Assuming[Element[a, Matrices[{n, n}]], ArraySimplify[Det[7a] / Det[a]]]アプリケーション (1)
特性と関係 (2)
ArraySimplifyは配列変換しか行わない:
v = VectorSymbol["v", n / 2 + m / 2];ArraySimplify[v - Transpose[v]]Simplifyは他の変換も行う:
Simplify[v - Transpose[v]]Assumingを使って仮定を伝播する:
Assuming[Element[a, Matrices[{n, n}]], ArraySimplify[Transpose[Inverse[a]] - Inverse[Transpose[a]]]]関連するガイド
テキスト
Wolfram Research (2025), ArraySimplify, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArraySimplify.html.
CMS
Wolfram Language. 2025. "ArraySimplify." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ArraySimplify.html.
APA
Wolfram Language. (2025). ArraySimplify. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArraySimplify.html
BibTeX
@misc{reference.wolfram_2026_arraysimplify, author="Wolfram Research", title="{ArraySimplify}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ArraySimplify.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_arraysimplify, organization={Wolfram Research}, title={ArraySimplify}, year={2025}, url={https://reference.wolfram.com/language/ref/ArraySimplify.html}, note=[Accessed: 10-August-2026]}