SymmetricMatrix[smat]
対称行列 smat を構造化配列に変換する.
SymmetricMatrix
SymmetricMatrix[smat]
対称行列 smat を構造化配列に変換する.
詳細とオプション
- 対称行列は,構造化配列として表されているときは,便利に指定することができる.
- 対称行列は,通常,最適化や共分散で使用されるヘッセ(Hesse)行列,統計における相関行列,二次形式や無向グラフの行列表現から得られる.
- 対称行列の場合,アプリケーションに出現する固有問題を非常に低いコストで解くことができる.
- 対称行列
は sij=sjiを満足するが,これは両者が対角線について対称であることを意味している. - 要素 sij は数値ではなくてもよい.
- 対称行列の逆行列と,一般に,対称行列の任意の行列関数もまた対称である.
- SymmetricMatrix sa については,sa["prop"]で次の特性"prop"にアクセスすることができる.
-
"Matrix" 完全配列として表される対称行列 "Properties" サポートされる特性のリスト "Structure" 構造化配列の型 "StructuredData" 構造化配列に保存されている内部データ "StructuredAlgorithms" 構造化配列について特別なメソッドを持つ関数のリスト "Summary" Datasetとして表される要約情報 - Normal[SymmetricMatrix[…]]は,対称行列を通常の行列として与える.
- SymmetricMatrix[…,TargetStructure->struct]は対称行列を struct で指定された形式で返す.以下は,使用可能な設定である.
-
Automatic 返す表現を自動的に選択する "Dense" 行列を密な行列として表す "Structured" 行列を構造化配列として表す - SymmetricMatrix[…,TargetStructureAutomatic]はSymmetricMatrix[…,TargetStructure"Structured"]に等しい.
例題
すべて開く すべて閉じる例 (1)
sm = SymmetricMatrix[{{8, 1, 7}, {1, 5, 2}, {7, 2, 3}}]MatrixForm[sm]NormalはSymmetricMatrixをその通常の表現に変換できる:
Normal[sm]スコープ (5)
SymmetricMatrix[{{8, 1, 7}, {5, 2}, {3}}]MatrixForm[%]SymmetricMatrix[{{8}, {1, 5}, {7, 2, 3}}]hm = SymmetricMatrix[HilbertMatrix[4]]rm = ReflectionMatrix[{1, -1, 1}]{SymmetricMatrix[rm], OrthogonalMatrix[rm]}cs = SymmetricMatrix[(| | | | |
| - | -- | -- | -- |
| 1 | 1 | 1 | 1 |
| 1 | -I | -1 | I |
| 1 | -1 | 1 | -1 |
| 1 | I | -1 | -I |)]{SymmetricMatrixQ[cs], HermitianMatrixQ[cs]}SymmetricMatrixオブジェクトは,行列についての情報を与える特性を含んでいる:
sm = SymmetricMatrix[(| | | | | |
| -- | -- | -- | -- | -- |
| 11 | 12 | 13 | 14 | 15 |
| 12 | 22 | 23 | 24 | 25 |
| 13 | 23 | 33 | 34 | 35 |
| 14 | 24 | 34 | 44 | 45 |
| 15 | 25 | 35 | 45 | 55 |)]sm["Properties"]sm["Summary"]"StructuredAlgorithms"特性は構造化アルゴリズムを持つ関数を列挙する:
sm["StructuredAlgorithms"]オプション (1)
TargetStructure (1)
SymmetricMatrix[(| | | |
| - | - | - |
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 1 | 2 | 3 |), TargetStructure -> "Dense"]SymmetricMatrix[(| | | |
| - | - | - |
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 1 | 2 | 3 |), TargetStructure -> "Structured"]アプリケーション (8)
連続二次偏導関数を含む多変量関数のヘッセ行列は対称行列である(Schwarzの定理):
SymmetricMatrix[D[f[x, y, z], {{x, y, z}, 2}]]MatrixForm[%]data = RandomReal[1, {20, 5}];SymmetricMatrix[Covariance[data]]SymmetricMatrix[Correlation[data]]SymmetricMatrix[Last[CoefficientArrays[a x^2 + b x y + c y^2 + d x + e y + f, {x, y}, "Symmetric" -> True]]]MatrixForm[%]g = PetersenGraph[]SymmetricMatrix[AdjacencyMatrix[g]]GaussianOrthogonalMatrixDistributionから導かれた行列は対称行列である:
SymmetricMatrix[RandomVariate[GaussianOrthogonalMatrixDistribution[9]]]CircularOrthogonalMatrixDistributionから導かれた行列は対称ユニタリ行列である:
SymmetricMatrix[RandomVariate[CircularOrthogonalMatrixDistribution[4]]]g = SymmetricMatrix[{{7, 2, 0}, {2, 6, -2}, {0, -2, 5}}]ip[u_, v_] := u.g.vPositiveDefiniteMatrixQ[g]{Subscript[e, 1], Subscript[e, 2], Subscript[e, 3]} = Orthogonalize[IdentityMatrix[3], ip]Table[ip[Subscript[e, i], Subscript[e, j]], {i, 3}, {j, 3}]//Simplify慣性モーメントテンソルは回転運動の質量に相当する.例えば,運動エネルギーは
,ただし,
は式
の質量
の位置を,角速度
は線形速度
の位置を占める.
は正定値対称行列で表すことができる.端点が原点と正の座標軸にある四面体の慣性モーメントを計算する:
MomentOfInertia[Tetrahedron[{{0, 0, 0}, {a, 0, 0}, {0, b, 0}, {0, 0, c}}], Assumptions -> {a, b, c}∈PositiveReals]//SymmetricMatrix(1/2){Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}.%.{Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}//FullSimplify
が非零であれば運動エネルギーは正であり,行列は正定値であることを示している:
Resolve[Subscript[∀, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z], a, b, c}, {a, b, c}∈PositiveReals && {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]} ≠ {0, 0, 0}]% > 0]特性と関係 (4)
sm = SymmetricMatrix[HilbertMatrix[3]]Transpose[sm] === sm対称行列は対称Symmetric[{1,2}]を持つ:
TensorSymmetry[SymmetricMatrix[StructuredArray`StructuredData[{3, 3},
{{{1, 1/2, 1/3}, {1/2, 1/3, 1/4}, {1/3, 1/4, 1/5}}, 0}]]]対称行列はSymmetrizedArrayまたはSymmetricMatrixで表すことができる:
array = SymmetrizedArray[{{1, 3} -> a, {2, 2} -> b}, {3, 3}, Symmetric[All]]matrix = SymmetricMatrix[{{0, 0, a}, {0, b, 0}, {a, 0, 0}}]この2つの表現は等価であるが,異なるアルゴリズムをサポートする:
array == matrixSymmetrizedArrayは,D,Flatten,Inner,Outer等のテンソル操作をサポートする:
array["StructuredAlgorithms"]SymmetricMatrixは,KroneckerProductのような行列特有の操作をサポートする:
matrix["StructuredAlgorithms"]実対称行列はHermitianMatrixで表すことができる:
HermitianMatrix[SymmetricMatrix[(| | |
| - | - |
| 1 | 2 |
| 2 | 3 |)]]HermitianMatrix[SymmetricMatrix[(| | |
| ----- | ----- |
| 1 | 2 + I |
| 2 + I | 3 |)]]
関連するガイド
-
▪
- 構造化配列
テキスト
Wolfram Research (2024), SymmetricMatrix, Wolfram言語関数, https://reference.wolfram.com/language/ref/SymmetricMatrix.html.
CMS
Wolfram Language. 2024. "SymmetricMatrix." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SymmetricMatrix.html.
APA
Wolfram Language. (2024). SymmetricMatrix. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SymmetricMatrix.html
BibTeX
@misc{reference.wolfram_2026_symmetricmatrix, author="Wolfram Research", title="{SymmetricMatrix}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/SymmetricMatrix.html}", note=[Accessed: 05-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_symmetricmatrix, organization={Wolfram Research}, title={SymmetricMatrix}, year={2024}, url={https://reference.wolfram.com/language/ref/SymmetricMatrix.html}, note=[Accessed: 05-November-2026]}