Diagonal
例題
すべて開く すべて閉じる例 (4)
{{a, b, c}, {d, e, f}, {g, h, i}}//MatrixFormDiagonal[%]Diagonal[{{a, b, c}, {d, e, f}, {g, h, i}}, 1]Diagonal[{{a, b, c}, {d, e, f}, {g, h, i}}, -1]{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}//MatrixFormDiagonal[%]スコープ (12)
基本的な用法 (7)
Diagonal[{{1.1, 12.2, 3.23}, {2.3, 42.2, 35.3}, {1.2, 3.1, 2.3}}]Diagonal[{{1. + I, 2, 3 - 2 I}, {0, 4 π, 5I}, {E, 0, 6}}, 1]Diagonal[{{2, 3, 1}, {2, 2, 1}, {3, 1, 2}}]Diagonal[RandomReal[1, {3, 3}, WorkingPrecision -> 20]]Diagonal[{{a, b, c, d}, {e, f, g, h}, {i, j, k, l}, {m, n, o, p}}, -2]Diagonalは非正方行列を取る:
{{3, 2, 2}, {2, 3, -2}, {4, 2, 1}, {3, 7, 9}}//MatrixFormDiagonal[%]m = RandomReal[{1, 9}, {50, 100}];Diagonal[m] //Timing特殊行列 (5)
SparseArray[{{1, 1} -> 12, {3, 2} -> 32, {3, 3} -> 33}, {3, 3}]Diagonal[%]Normal[%]s = SparseArray[{Band[{1, 1}] -> x, Band[{2, 1}] -> y, Band[{1, 2}] -> z}, {3, 3}];s//MatrixFormTable[Diagonal[s, k], {k, -2, 2}]Normal[%]SymmetrizedArray[{{1, 2} -> 2, {2, 2} -> I, {3, 1} -> 4, {4, 4} -> 2}, {4, 4}, Symmetric[All]]Diagonal[%]QuantityArray[{{1, 2}, {3, 4}, {5, 6}}, {"Meters", "Seconds"}]Diagonal[%]IdentityMatrixの対角はすべて1である:
Diagonal[IdentityMatrix[15]]HilbertMatrixの対角:
Diagonal[HilbertMatrix[13]]アプリケーション (3)
MatrixForm[m = Array[Subscript[a, ##]&, {4, 4}]]md = DiagonalMatrix[Diagonal[m]];mo = m - md;Map[MatrixForm, {md, mo}]行列
がそのジョルダン(Jordan)分解を使って非対角化可能かどうかを見る:
m = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}};{s, j} = JordanDecomposition[m]ジョルダン形
の優対角は0のみからなるわけではないので,
は非対角化できない:
Diagonal[j, 1]DiagonalizableMatrixQを直接呼び出して確かめる:
DiagonalizableMatrixQ[m]m = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}};{s, j} = JordanDecomposition[m]Diagonal[j]Eigenvaluesを直接呼び出して確認する:
Eigenvalues[m]特性と関係 (7)
DiagonalMatrixQ[m]がTrueのときかつそのときに限りDiagonalMatrix[Diagonal[m]]==m である:
m = (| | |
| - | - |
| a | 0 |
| 0 | d |);{DiagonalMatrix[Diagonal[m]] == m, DiagonalMatrixQ[m]}m = (| | |
| - | - |
| 1 | 2 |
| 3 | 4 |);{DiagonalMatrix[Diagonal[m]] == m, DiagonalMatrixQ[m]}行列 m について,Tr[m]はDiagonalとTotalの組合せとして表すことができる:
m = RandomReal[1, {5, 5}];Tr[m] == Total[Diagonal[m]]n×n 行列についてのDiagonal[m,k]は,1-n<=k<=n-1のとき非負の結果を与える:
(m = Table[j - i, {i, 4}, {j, 4}])//MatrixFormTable[Diagonal[m, k], {k, -4, 4}]Diagonal[m,k]はUpperTriangularize[m,k]の最も低い非零の対角を与える:
m = (| | | | |
| - | - | - | - |
| 3 | 8 | 7 | 6 |
| 8 | 8 | 1 | 3 |
| 8 | 6 | 6 | 8 |
| 1 | 7 | 3 | 7 |);{Diagonal[m, 2], UpperTriangularize[m, 2]//MatrixForm}同様に,Diagonal[m,k]はLowerTriangularize[m,k]の最も高い非零の対角を与える:
{Diagonal[m, 1], LowerTriangularize[m, 1]//MatrixForm}Bandを使って行列をその対角から再構築することができる:
m = RandomReal[1, {5, 5}];m == SparseArray[Table[Band[If[k >= 0, {1, 1 + k}, {1 - k, 1}]] -> Diagonal[m, k], {k, -4, 4}]]行列 m については,Diagonal[m]はTr[m,List]と同じである:
m = (| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |);Diagonal[m]Tr[m, List]正方行列 m については,Diagonal[m]はTranspose[m,{1,1}]と同じである:
m = (| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |);Diagonal[m]Transpose[m, {1, 1}]関連するガイド
-
▪
- 行列の部分 ▪
- 行列の操作 ▪
- 行列と線形代数 ▪
- NVIDIAを使ったGPU計算
テキスト
Wolfram Research (2007), Diagonal, Wolfram言語関数, https://reference.wolfram.com/language/ref/Diagonal.html.
CMS
Wolfram Language. 2007. "Diagonal." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Diagonal.html.
APA
Wolfram Language. (2007). Diagonal. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Diagonal.html
BibTeX
@misc{reference.wolfram_2026_diagonal, author="Wolfram Research", title="{Diagonal}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Diagonal.html}", note=[Accessed: 15-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_diagonal, organization={Wolfram Research}, title={Diagonal}, year={2007}, url={https://reference.wolfram.com/language/ref/Diagonal.html}, note=[Accessed: 15-September-2026]}