对称矩阵Bunch-Kaufman分解

查找了相关资料解释这种分解方法是:
当A是对称或Hermitian矩阵时,PAP’=LDL’=UDU’,S = bunchkaufman(A),会求出S.D, S.U, S.p,其中p是一个向量,解释是置换向量。

问题一:如何由p求出P?
问题二:在例子A=[1 2;2 3]中,直接由求出的UDU’可得到A,是否这个是特例还是内部经过了什么变换?

线性代数的知识,我忘得差不多了。一个基本的观点是 ,实对称矩阵一定可以相似对角化。
A 是一个实对称矩阵,那么存在可逆矩阵 T,对角矩阵 \Lambda 使得 \Lambda=T'AT. 或者 A=R'\Lambda R, 其中 RT=E. 值得注意的是,这里的 R 是一个可逆矩阵,离需要的上三角(下三角矩阵还有点远)。但是,通过对 R 做一些初等行(列)变换 P ,可以将 R 变换成一个上三角矩阵 U.
这里的 向量 p 记录的是 A 的行(列)的排列顺序。

  1. p 求出 P,通过举例说明。一切由单位矩阵 E 出发
julia> E=[1 0 0;0 1 0; 0 0 1]
3×3 Array{Int64,2}:
 1  0  0
 0  1  0
 0  0  1
julia> p=[2,3, 1]
3-element Array{Int64,1}:
 2
 3
 1
julia> P=[0 1 0;0 0 1; 1 0 0]
3×3 Array{Int64,2}:
 0  1  0
 0  0  1
 1  0  0
  1. 由于这里的 p(1,2) 因此单位矩阵重排之后还是单位矩阵

这些知识数值分析这门课里面应该会讲

1 个赞

:clap:回答的很棒。我看到文档中解释的是行变换的顺序,也看到一个索引公式看不懂。现在我知道是怎么回事了。P可以这样由p得到:P = E [ p, :],这样等于把E中的行按索引的顺序重新排布


为什么无法对一个三阶的实对称矩阵进行B-K分解?

你这个报错是因为矩阵的奇异性,不满秩,但是具体为什么不可逆的矩阵不能这么分解我不知道。
PS:请用 markdown 贴代码与报错,不建议贴截图

ok,下次贴代码。
LinearAlgebra.factorize那这里面的总结看来有些问题了:

  1. Cholesky分解针对的是正定对称或正定Hermitian矩阵
  2. Bunch-kaufman分解至少对应的是仅仅是浓密对称或Hermitian矩阵了。

有如下知识点:
(1)正规矩阵可以酉对角化的;