PermutationMatrix

PermutationMatrix[permv]

表示由置换向量 permv 作为结构化数组给出的置换矩阵.

PermutationMatrix[pmat]

将置换矩阵 pmat 转换为结构化数组.

更多信息和选项

  • 置换矩阵,当表示为结构化数组时,允许高效存储和更高效的运算,包括 DetInverseLinearSolve.
  • 置换矩阵通常出现在矩阵分解算法的输出中,以表示行或列置换(在该上下文中通常称为旋转).
  • 已知置换向量 ,得到的置换矩阵 P〚i,j〛=TemplateBox[{{i, ,, {p, _, j}}}, KroneckerDeltaSeq] 给出. 这对应于在第 行的 列为 1,而在其他地方为零的矩阵.
  • 置换矩阵 可用于通过 从左侧相乘来置换行,或者通过从右侧乘以它的转置 A.TemplateBox[{P}, Transpose] 来置换列.
  • 置换矩阵 是一个正交矩阵,其逆矩阵等价于转置 P^(-1)=TemplateBox[{P}, Transpose].
  • 置换矩阵在矩阵乘法下是闭合的,所以 也是一个置换矩阵.
  • 置换矩阵的行列式是 或 1,并且等于 Signature[permv].
  • PermutationMatrix 加速的运算包括:
  • Det时间
    Dot时间
    Inverse时间
    LinearSolve时间
  • 对于 PermutationMatrix sa,以下属性 "prop" 可以作为 sa["prop"] 访问:
  • "PermutationCycles"置换矩阵的不相交循环表示
    "PermutationList"置换矩阵的置换列表表示
    "WorkingPrecision"内部使用的精度
    "Properties"支持的属性列表
    "Structure"结构化数组的类型
    "StructuredData"由结构化数组存储的内部数据
    "StructuredAlgorithms"具有结构化数组特殊方法的函数列表
    "Summary"摘要信息,表示为 Dataset
  • Normal[PermutationMatrix[]] 将置换矩阵作为普通矩阵给出.
  • 可给出以下选项:
  • TargetStructure Automatic返回的矩阵的结构
    WorkingPrecision Infinity创建元素时使用的精度
  • TargetStructure 的可能的设置包括:
  • Automatic自动选择返回结果的表示形式
    "Dense"用稠密矩阵表示矩阵
    "Orthogonal"用正交矩阵表示矩阵
    "Sparse"用稀疏数组表示矩阵
    "Structured"用结构化数组表示矩阵
    "Unitary"用酉矩阵表示矩阵
  • PermutationMatrix[,TargetStructureAutomatic] 等价于 PermutationMatrix[,TargetStructure"Structured"].

范例

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

基本范例  (2)

从置换向量构造置换矩阵:

显示元素:

得到普通表示:

将置换矩阵表示为结构化数组:

显示元素:

计算行列式:

范围  (7)

从不相交的循环表示构造置换矩阵:

显示元素:

得到普通表示:

指定置换矩阵的维数:

显示元素:

TwoWayRule 构造一个置换矩阵(互换置换):

显示元素:

得到普通表示:

指定置换矩阵的维数:

显示元素:

从显式矩阵构造置换矩阵:

显示元素:

得到普通表示:

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

"PermutationCycles" 给出底层置换的不相交循环表示:

"PermutationList" 给出置换列表表示:

"WorkingPrecision" 给出矩阵元素的精度:

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

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

结构化算法通常较快:

计算行列式:

计算逆:

计算特征值:

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

逆允许您轻松获得逆置换:

验证逆关系:

这等价于 InversePermutation 的结果:

生成随机 104×104 置换向量:

该表示和计算对于结构化数组是高效的:

普通表示要大得多(80 KB 对 800 MB),并且速度慢得多:

这个逆需要 2.4 GB 的存储空间:

选项  (2)

TargetStructure  (1)

用稠密矩阵表示返回的置换矩阵:

用结构化数组表示返回的置换矩阵:

用稀疏数组表示返回的置换矩阵:

用正交矩阵表示返回的置换矩阵:

用酉矩阵表示返回的置换矩阵:

WorkingPrecision  (1)

指定置换矩阵的工作精度:

普通表示返回具有有限精度元素的全矩阵:

应用  (4)

用于计算矩阵 LU 分解的函数:

计算分解:

验证分解:

生成对应于置换群元素的置换矩阵:

计算群的乘法表:

这等价于 GroupMultiplicationTable 的结果:

定义一个向量运算符 vec,它将矩阵的列堆叠成单个向量:

定义一个向量置换矩阵,也称为交换矩阵:

向量置换矩阵将 vec 运算符应用于矩阵及其转置的结果相关联:

向量置换矩阵可以用来表示两个给定矩阵的克罗内克积和逆序的相同矩阵的克罗内克积之间的关系:

快速傅立叶变换 (FFT) 的效率依赖于能够从两个较小的傅立叶矩阵形成一个较大的傅立叶矩阵. 生成大小为 pq 的两个小傅立叶矩阵:

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

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

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

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

属性和关系  (6)

将单位矩阵转换为置换矩阵:

显示不相交的循环表示:

PermutationMatrix[p<->q] 等价于 PermutationMatrix[Cycles[{{p,q}}]]

使用 SparseArray[PermutationMatrix[]] 得到作为 SparseArray 的表示:

生成随机置换列表:

对置换矩阵预乘等价于对置换列表使用 Part

对置换矩阵后乘等价于对置换列表使用 Permute

置换矩阵的行列式等于对应置换列表的符号:

置换矩阵和一般矩阵的乘积的积和式等于原始矩阵的积和式:

巧妙范例  (1)

上双对角矩阵:

生成具有双对角块的对称块矩阵(JordanWielandt 矩阵):

定义完美洗牌置换:

使用完美洗牌将 JordanWielandt 矩阵转换为三对角矩阵(GolubKahan 三对角矩阵):

计算数值上双对角矩阵的奇异值:

这等价于 GolubKahan 三对角矩阵的正特征值:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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