AntisymmetricMatrixQ
詳細とオプション
- AntisymmetricMatrixQは,歪対称としても知られている.
- m-Transpose[m]のとき,行列 m は反対称行列である.
- AntisymmetricMatrixQは記号行列にも数値行列と同じように使うことができる.
- 使用可能なオプション
-
SameTest Automatic 式の等価性を検定する関数 Tolerance Automatic 近似数の許容範囲 - 厳密行列あるいは記号行列の場合は,オプションSameTest->f は,f[mij,mkl]がTrueを返す場合は2つの項 mijおよび mklが等しいと解釈できることを示す.
- 近似行列の場合は,オプションTolerance->t を使って,Abs[mij]≤t であるすべての項がゼロであると解釈できることを示すことができる.
- Abs[mij]>t である行列の項について,等価性の比較は最後の
ビットを除いて行われる.ただし,
はMachinePrecision行列については$MachineEpsilon,Precision
の行列については
である.
例題
すべて開く すべて閉じる例 (2)
スコープ (10)
基本的な用法 (6)
m = {{0, -2.3}, {2.3, 0}};AntisymmetricMatrixQ[m]AntihermitianMatrixQ[m]m = {{0, 2 - 3I}, {-2 + 3I, 0}};AntisymmetricMatrixQ[m]{AntisymmetricMatrixQ[Re[m]], AntisymmetricMatrixQ[Im[m]]}m = (| | | |
| - | -- | -- |
| 4 | -5 | 2 |
| 3 | -3 | -3 |
| 5 | 5 | 5 |);AntisymmetricMatrixQ[m]AntisymmetricMatrixQ[(m - m^/2)]AntisymmetricMatrixQを任意精度行列に使う:
m = RandomReal[5, {3, 3}, WorkingPrecision -> 15]AntisymmetricMatrixQ[m]AntisymmetricMatrixQを記号行列に使う:
AntisymmetricMatrixQ[{{a, b}, {c, d}}]Block[{c = -b, a = d = 0}, AntisymmetricMatrixQ[{{a, b}, {c, d}}]]AntisymmetricMatrixQは大きい数値行列に効率的に機能する:
m = RandomReal[1, {1000, 1000}];AbsoluteTiming[AntisymmetricMatrixQ[m]]a = m - m^;
AbsoluteTiming[AntisymmetricMatrixQ[a]]特殊行列 (4)
AntisymmetricMatrixQを疎な行列に使う:
SparseArray[{i_, j_} -> (i - j) / (i + j) ^ 2, {5, 5}]AntisymmetricMatrixQ[%]AntisymmetricMatrixQを構造化行列に使う:
SymmetrizedArray[{{1, 2} -> a, {2, 3} -> b}, {3, 3}, Antisymmetric[{1, 2}]]AntisymmetricMatrixQ[%]QuantityArrayを構造化行列に使う:
QuantityArray[{{1, 2}, {2, 5}}, "Meters"]AntisymmetricMatrixQ[%]AntisymmetricMatrixQ[IdentityMatrix[3]]HilbertMatrixは反対称行列ではない:
AntisymmetricMatrixQ[HilbertMatrix[5]]オプション (2)
SameTest (1)
この行列は正の実数
について反対称行列であるが,AntisymmetricMatrixQはFalseを返す:
m = {{0, Log[x ^ 2]}, {-2 Log[x], 0}};AntisymmetricMatrixQ[m]オプションSameTestを使って正しい答を得る:
AntisymmetricMatrixQ[m, SameTest -> (Simplify[#1 - #2, x > 0] == 0&)]Tolerance (1)
SeedRandom[12];
m = Block[{a = RandomReal[1, {3, 3}]}, a - a^];
m = m + 10^-14 RandomReal[10, {3, 3}];AntisymmetricMatrixQ[m]この行列を反対称行列として許容するように,オプションToleranceを調節する:
AntisymmetricMatrixQ[m, Tolerance -> 10 ^ -12](m + m^)//Normアプリケーション (5)
f[i_, j_] := i - jf[i, j] == -f[j, i]Tableを使うと反対称行列が生成される:
AntisymmetricMatrixQ[Table[f[i, j], {i, 5}, {j, 5}]]SymmetrizedArrayで対称性のある行列(および一般配列)を生成することができる:
SymmetrizedArray[{{1, 2} -> a, {2, 3} -> b}, {3, 3}, Antisymmetric[{1, 2}]]AntisymmetricMatrixQ[%]r[θ_] := (| | |
| ------ | ------- |
| Cos[θ] | -Sin[θ] |
| Sin[θ] | Cos[θ] |)D[r[θ], θ].Inverse[r[θ]]//FullSimplifyAntisymmetricMatrixQ[%]rot = RotationMatrix[θ, RandomReal[1, 3, WorkingPrecision -> 5]];
AntisymmetricMatrixQ[D[rot, θ].Inverse[rot]]2つのベクトルのクロス積は,反対称行列とベクトルの積として表すことができる:
{a, b, c}⨯{x, y, z} == (| | | |
| -- | -- | -- |
| 0 | -c | b |
| c | 0 | -a |
| -b | a | 0 |).{x, y, z}AntisymmetricMatrixQ[(| | | |
| -- | -- | -- |
| 0 | -c | b |
| c | 0 | -a |
| -b | a | 0 |)](| | | |
| -- | -- | -- |
| 0 | -c | b |
| c | 0 | -a |
| -b | a | 0 |).{a, b, c} == {0, 0, 0}{x, y, z}.((| | | |
| -- | -- | -- |
| 0 | -c | b |
| c | 0 | -a |
| -b | a | 0 |).{x, y, z})//Simplify(ⅆx/ⅆt) = Overscript[v, ⇀]⨯x, Overscript[v, ⇀] = {2, -1, 1}, x(0) = {1, 0, -1};vvec = {2, -1, 1};
(v = -LeviCivitaTensor[3].vvec)//MatrixFormAntisymmetricMatrixQ[v]v.{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]} == vvec⨯{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}u[t_] := MatrixExp[v t]
x0 = {1, 0, -1};
x[t_] = u[t].x0x'[t] == v.x[t] && x[0] == x0//SimplifyOrthogonalMatrixQ[u[t]]したがって,解の軌跡は原点から一定の距離,この場合は円,にある:
Show[ParametricPlot3D[x[t], {t, 0., 5.}, PlotStyle -> Tube[0.02]], Graphics3D[{Opacity[.5], Sphere[{0, 0, 0}, Norm[x0]]}], PlotRange -> All]特性と関係 (15)
AntiymmetricMatrixQ[x]は行列ではない任意の x について自明にFalseを返す:
AntisymmetricMatrixQ[Sqrt[3]]m-Transpose[m]のとき,その行列は反対称行列である:
m = (| | | |
| ------ | ------- | -- |
| 0 | -2 - 2I | 3 |
| 2 + 2I | 0 | -I |
| -3 | I | 0 |);{m == -Transpose[m], AntisymmetricMatrixQ[m]}m = (| | |
| -- | -- |
| 0. | I |
| -I | 0 |);AntisymmetricMatrixQ[m]Diagonalを使って対角要素を取り出す:
Diagonal[m]m = (| | |
| - | -- |
| 0 | -2 |
| 2 | 0 |);{AntisymmetricMatrixQ[m], AntihermitianMatrixQ[m]}m = (| | |
| -------- | ------- |
| 0 | 2 + 2 I |
| -2 - 2 I | 0 |);{AntisymmetricMatrixQ[m], AntihermitianMatrixQ[m]}Symmetrizeを対称のAntisymmetricに使って行列の反対称部分を計算する:
m = RandomReal[1, {3, 3}];Symmetrize[m, Antisymmetric[{1, 2}]]これは m とTranspose[m]の間の正規化された差に等しい:
% == (m - m/2)任意の行列を,その対称部分と反対称部分の和で表すことができる:
m = RandomComplex[1 + I, {3, 3}];
{sym, asym} = {(m + m) / 2, (m - m) / 2};m == sym + asymSymmetricMatrixQを使って行列が対称かどうかを調べることができる:
{SymmetricMatrixQ[sym], AntisymmetricMatrixQ[asym]}m = Block[{a = RandomReal[1, {5, 5}]}, a - a^];{AntisymmetricMatrixQ[m], HermitianMatrixQ[I m]}実反対称行列 m についてのMatrixExp[m]は直交行列かつユニタリ行列である:
m = Symmetrize[RandomReal[1, {5, 5}], Antisymmetric[{1, 2}]];
expm = MatrixExp[m];{OrthogonalMatrixQ[expm], UnitaryMatrixQ[expm]}複素反対称行列 m については,指数行列は直交行列であるが,一般にはユニタリ行列ではない:
mc = Symmetrize[RandomComplex[1 + I, {5, 5}], Antisymmetric[{1, 2}]];
expmc = MatrixExp[mc];{OrthogonalMatrixQ[expmc], UnitaryMatrixQ[expmc]}m = Block[{a = RandomReal[1, {5, 5}]}, a - a^];{AntisymmetricMatrixQ[m], NormalMatrixQ[m]}c = (| | | |
| -- | - | - |
| 0 | 1 | I |
| -1 | 0 | 0 |
| -I | 0 | 0 |);{AntisymmetricMatrixQ[c], NormalMatrixQ[c]}m = Block[{a = RandomReal[1, {4, 4}]}, a - a];AntisymmetricMatrixQ[m]Eigenvaluesを使って固有値を求める:
Eigenvalues[m]//Chop複素数値の反対称行列は実数と虚数両方の固有値を持つことがあるので注意のこと:
c = (| | | | |
| -- | ------ | -- | ----- |
| 0 | I | -I | I |
| -I | 0 | 1 | 1 - I |
| I | -1 | 0 | -1 |
| -I | -1 + I | 1 | 0 |);AntisymmetricMatrixQ[c]Eigenvalues[c]m = Block[{a = RandomReal[1, {4, 4}]}, a - a];CharacteristicPolynomial[m,x]は x の偶数乗のみを含んでいる:
CharacteristicPolynomial[m, x]//Chopm = Block[{a = RandomReal[1, {5, 5}]}, a - a];CharacteristicPolynomial[m, x]//Chopm = Block[{a = RandomReal[1, {3, 3}]}, a - a];AntisymmetricMatrixQ[m]DiagonalizableMatrixQ[m]Eigenvectorsを使って必然的に複素数値の固有ベクトルを求める:
Eigenvectors[m]//Chop複素数値の反対称行列はこれらの特性を持つ必要がない点に注意のこと:
c = (| | | |
| - | -- | -- |
| 0 | 0 | -I |
| 0 | 0 | 1 |
| I | -1 | 0 |);{AntisymmetricMatrixQ[c], DiagonalizableMatrixQ[c]}奇数次元の反対称実行列 m についてのDet[m]は0である:
m = Block[{a = RandomComplex[1 + I, {5, 5}]}, a - a];{AntisymmetricMatrixQ[m], Det[m]//Chop}m が偶数次元でその成分が実数なら,その行列式は非負である:
m = Block[{a = RandomReal[1, {6, 6}]}, a - a];{AntisymmetricMatrixQ[m], Det[m] >= 0}m = Block[{a = RandomComplex[1 + I, {4, 4}]}, a - a];AntisymmetricMatrixQ[Inverse[m]]m = Block[{a = RandomComplex[1 + I, {3, 3}, WorkingPrecision -> 5]}, a - a];AntisymmetricMatrixQ[MatrixPower[m, 9]]SymmetricMatrixQ[MatrixPower[m, 8]]考えられる問題 (1)
AntisymmetricMatrixQは実数値と複素数値の両方の行列に定義
を使う:
c = (| | | |
| -- | - | - |
| 0 | 1 | I |
| -1 | 0 | 0 |
| -I | 0 | 0 |);{AntisymmetricMatrixQ[c] , c == -c}これらの複素行列は正規行列である必要も多くの歪随伴(実反対称)行列を持つ必要もない:
NormalMatrixQ[c]AntihermitianMatrixQは歪随伴行列についての条件
を検定する:
AntihermitianMatrixQ[c]または,実対称行列に制限するために成分が実数であるかどうかの検定を行う:
antisymmetricMatrixQ[m_] := AntisymmetricMatrixQ[m] && Element[m, Reals]antisymmetricMatrixQ[c]関連するガイド
-
▪
- 行列述語
テキスト
Wolfram Research (2014), AntisymmetricMatrixQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/AntisymmetricMatrixQ.html.
CMS
Wolfram Language. 2014. "AntisymmetricMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AntisymmetricMatrixQ.html.
APA
Wolfram Language. (2014). AntisymmetricMatrixQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AntisymmetricMatrixQ.html
BibTeX
@misc{reference.wolfram_2026_antisymmetricmatrixq, author="Wolfram Research", title="{AntisymmetricMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/AntisymmetricMatrixQ.html}", note=[Accessed: 16-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_antisymmetricmatrixq, organization={Wolfram Research}, title={AntisymmetricMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/AntisymmetricMatrixQ.html}, note=[Accessed: 16-August-2026]}