DiagonalMatrix

DiagonalMatrix[list]

给出主对角线元素为 list,其它元素为零的矩阵.

DiagonalMatrix[list,k]

给出第 k 条对角线的元素为 list 的矩阵.

DiagonalMatrix[list,k,n]

与零合并创建一个 n×n 矩阵.

更多信息和选项

  • 对角矩阵可以用来通过从左边的乘法来缩放矩阵的行,或者通过从右边的乘法来缩放列.
  • DiagonalMatrix[{d1,,dn}] 给出的对角矩阵 中,项由 D〚i,j〛=d_iTemplateBox[{{i, ,, j}}, KroneckerDeltaSeq] 给出,即 表示第 i 个先导对角项,且其他项为 0.
  • DiagonalMatrix[list] 是一个对称矩阵,因此等于其转置矩阵.
  • 对于正值 kDiagonalMatrix[{d1,,ds},k] 将元素 k 位置置于先导对角项之上,而 DiagonalMatrix[{d1,,ds},-k] 将元素 k 位置置于先导对角项之下,此时矩阵大小为 (TemplateBox[{k}, Abs]+s)x(TemplateBox[{k}, Abs]+s). k 的值不同会导致矩阵尺寸不同.
  • DiagonalMatrix[list] 等价于 DiagonalMatrix[list,0].
  • DiagonalMatrix[list,k,n] 总是创建一个 n×n 矩阵,即使必须放弃 list 的元素. »
  • ,对角矩阵的行列式就是对角线先导项的乘积,否则为 0.
  • DiagonalMatrix[list,k,{m,n}] 创建一个 m×n 矩阵.
  • DiagonalMatrix[SparseArray[],] 给出一个 SparseArray 对象.
  • DiagonalMatrix[,TargetStructure->struct] 返回 struct 指定格式的对角矩阵. 可能设置包括:
  • Automatic自动选择返回的表示
    "Dense"以稠密矩阵的形式表示矩阵
    "Sparse"以稀疏数组的形式表示矩阵
    "Structured"以结构化数组的形式表示矩阵
    "Symmetric"以对称矩阵的形式表示矩阵
  • 设置 DiagonalMatrix[,TargetStructureAutomatic],如果矩阵项数量小于预设阈值,则返回稠密矩阵,否则返回结构化数组.
  • 对角矩阵在表示为结构化数组时,可以进行有效的存储和运算,包括 DetInverseLinearSolve 的运算.
  • DiagonalMatrix 加速了的运算包括:
  • Det时间
    Dot时间
    Inverse时间
    LinearSolve时间
  • 对于结构化的 DiagonalMatrix sa,下列属性 "prop" 可以 sa["prop"] 的形式访问:
  • "Diagonal"k 条对角线上的项列表
    "Offset"偏移量 k
    "Properties"支持的属性列表
    "Structure"结构化数组的类型
    "StructuredData"结构化数组存储的内部数据
    "StructuredAlgorithms"为结构化数组提供特殊方法的函数列表
    "Summary"摘要信息,表示为 Dataset 的形式
  • Normal[DiagonalMatrix[]] 以普通矩阵的形式给出对角矩阵.

范例

打开所有单元关闭所有单元

基本范例  (1)

构建对角矩阵:

上对角矩阵:

下对角矩阵:

范围  (6)

DiagonalMatrix 中的元素匹配向量中的元素:

提取数值项:

机器数的项:

任意精度数的项:

垫零制作一个更大的方形矩阵:

制作一个指定维度的方形矩阵:

矩形的对角矩阵:

使用选项设置 TargetStructure"Sparse",可构建稀疏对角矩阵:

对于较大型矩阵,稀疏表示法可以节省大量的内存:

使用选项设置 TargetStructure"Structured",可生成结构化对角矩阵:

结构化数组的表示和运算都很便捷:

普通矩阵表示会占用更多空间且更慢:

逆运算需要大量空间:

DiagonalMatrix 对象包括提供有关数组信息的属性:

"Diagonal" 给出对角线项:

"Offset" 给出偏移量,如果对角线元素分别位于主对角线上、上方或下方,则偏移量为零、正或负:

"Summary" 属性 给出了一个关于数组信息的摘要:

"StructuredAlgorithms" 属性 列出了具有结构化算法的函数:

选项  (3)

TargetStructure  (3)

以稠密矩阵的形式返回对角矩阵:

以结构化数组的形式返回对角矩阵:

以稀疏数组的形式返回对角矩阵:

设置 TargetStructureAutomatic,在小型矩阵情况下会返回稠密矩阵:

在大型矩阵情况下会返回结构化表示:

大型矩阵的情况下,稠密表示会使用大量内存:

稀疏表示通常使用更少内存:

结构化表示使用的内存更少:

应用  (5)

将矩阵表示为它对角部分和非对角部分的和:

验证一个矩阵和它的特征值的对角矩阵相似:

定义一个 Jordan 矩阵:

构建一个 5×5 三对角矩阵:

这也可以用 Band 实现:

从对角矩形矩阵中提取对角线元素:

根据对角线元素重建原来的矩阵:

属性和关系  (9)

IdentityMatrixDiagonalMatrix 的一个特例:

IdentityMatrix 转换为结构化 DiagonalMatrix

DiagonalMatrix 创建使 DiagonalMatrixQ 结果为真的矩阵:

DiagonalMatrix[l] 满足 UpperTriangularMatrixQLowerTriangularMatrixQ

对角矩阵的多个简单属性:

InverseMatrixExpMatrixPowerDiagonalMatrix 的交换:

DetTr 具有交换关系:

对角矩阵和一般矩阵的乘积的积和式等于一般矩阵的积和式乘以对角矩阵的对角线元素:

DiagonalMatrixDiagonal 给出原始向量:

如果向量是一个 SparseArray 对象,则为 true:

仅上对角矩阵或下对角矩阵通常有幂零:

DiagonalMatrix[list,k] 生成的矩阵大小等于 Length[list]+Abs[k]

Band 可以用来构建等于 DiagonalMatrix[list,k] 的对角:

设置 TargetStructure"Sparse" 则其为 SameQ

Wolfram Research (1988),DiagonalMatrix,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiagonalMatrix.html (更新于 2024 年).

文本

Wolfram Research (1988),DiagonalMatrix,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiagonalMatrix.html (更新于 2024 年).

CMS

Wolfram 语言. 1988. "DiagonalMatrix." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/DiagonalMatrix.html.

APA

Wolfram 语言. (1988). DiagonalMatrix. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DiagonalMatrix.html 年

BibTeX

@misc{reference.wolfram_2024_diagonalmatrix, author="Wolfram Research", title="{DiagonalMatrix}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/DiagonalMatrix.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_diagonalmatrix, organization={Wolfram Research}, title={DiagonalMatrix}, year={2024}, url={https://reference.wolfram.com/language/ref/DiagonalMatrix.html}, note=[Accessed: 17-November-2024 ]}