BlockDiagonalMatrix

BlockDiagonalMatrix[{d1,d2,}]

表示块对角矩阵,其中对角块 di 作为结构化数组.

BlockDiagonalMatrix[mat]

将块对角矩阵 mat 转换为结构化数组.

更多信息和选项

  • 块对角矩阵,当表示为结构化数组时,允许高效存储和更高效的运算,包括 DetInverseLinearSolve.
  • 块对角矩阵作为具有多个连通分量的图的邻接矩阵、作为具有对角矩阵的全矩阵的张量积(克罗内克积)以及作为 Jordan 分解和核心-幂零分解的输出而自然出现.
  • 块对角矩阵是广义的对角矩阵,其中对角元素本身就是矩阵.
  • 对角块 di 必须是方阵.
  • 块对角矩阵的逆矩阵也是块对角矩阵.
  • 块对角矩阵的行列式是对角块的行列式的积.
  • 对于 BlockDiagonalMatrix sa,以下属性 "prop" 可以通过 sa["prop"] 访问:
  • "Blocks"对角块列表
    "RowPermutation"行的置换,表示为置换列表
    "ColumnPermutation"列的置换,表示为置换列表
    "Properties"支持的属性列表
    "Structure"结构化数组的类型
    "StructuredData"由结构化数组存储的内部数据
    "StructuredAlgorithms"结构化数组特殊方法的函数列表
    "Summary"摘要信息,表示为 Dataset
  • Normal[BlockDiagonalMatrix[]] 将块对角矩阵作为普通矩阵给出.
  • BlockDiagonalMatrix[,TargetStructure->struct] 返回由 struct 指定格式的块对角矩阵. 可能的设置包括:
  • Automatic自动选择返回的表示
    "Dense"以稠密矩阵的形式表示矩阵
    "Sparse"以稀疏数组的形式表示矩阵
    "Structured"以结构化数组的形式表示矩阵
  • BlockDiagonalMatrix[,TargetStructureAutomatic] 等价于 BlockDiagonalMatrix[,TargetStructure"Structured"].

范例

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

基本范例  (1)

构造一个带有符号项的块对角矩阵:

显示元素:

获取行列式:

Normal 可以将 BlockDiagonalMatrix 转换为其普通表示:

范围  (6)

从完整矩阵构造块对角矩阵:

提取对角块:

BlockDiagonalMatrix 对象包括提供有关矩阵信息的属性:


"Blocks" 属性给出对角块的列表:

"RowPermutation" 属性对原始矩阵所作的行置换进行编码:

"ColumnPermutation" 属性对原始矩阵所作的列置换进行编码:


"Summary" 属性给出数组信息的简要总结:

"StructuredAlgorithms" 属性列出使用表示结构的函数:

结构化算法通常更快:

计算行列式:

求解线性系统:

计算特征值:

计算奇异值:

适当时,结构化算法返回另一个 BlockDiagonalMatrix 对象:

bd 求逆给出另一个块对角矩阵:

转置 bd 给出另一个块对角矩阵:

bd 乘以其转置得到另一个块对角矩阵:

BlockDiagonalMatrix 中的元素被强制为块的非零元素的精度.

精确矩阵:

机器数矩阵:

任意精度数矩阵:

SparseArray 构造块对角矩阵:

显示元素:

选项  (1)

TargetStructure  (1)

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

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

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

应用  (5)

矩阵的核心-幂零分解:

由核心部分和幂零部分组装块对角矩阵:

验证分解:

矩阵的 Jordan 分解:

拆分 Jordan 块:

对角矩阵和一般方阵的克罗内克积是块对角矩阵:

非连通图:

非连通图具有可以表示为块对角矩阵的邻接矩阵:

提取块以获得连通分量:

这等价于使用 ConnectedGraphComponents

快速傅立叶变换 (FFT) 的效率取决于从两个较小的傅立叶矩阵形成更大的傅立叶矩阵的能力. 生成两个大小为 pq 的小傅立叶矩阵:

大小为 p q 的傅立叶矩阵可以表示为四个更简单矩阵的乘积:

证明得到的矩阵与 FourierMatrix 的结果等价:

向量的离散傅里叶变换可以通过将傅里叶矩阵的因子连续乘以向量来计算:

结果等效于将 Fourier 应用于向量:

属性和关系  (4)

使用 SparseArray[BlockDiagonalMatrix[]] 得到一个 SparseArray 的表示:

对角矩阵被视为具有 1×1 块的块对角矩阵:

具有 BlockDiagonalMatrix 块的 BlockDiagonalMatrix 对象被展平为单个 BlockDiagonalMatrix

如果一个给定的矩阵不能被分割成对角块或者不能被转换成具有对角块的形式,BlockDiagonalMatrix 返回矩阵本身:

Wolfram Research (2022),BlockDiagonalMatrix,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BlockDiagonalMatrix.html (更新于 2023 年).

文本

Wolfram Research (2022),BlockDiagonalMatrix,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BlockDiagonalMatrix.html (更新于 2023 年).

CMS

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

APA

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

BibTeX

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

BibLaTeX

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