Julia 稀疏酉矩阵对角化

Julia 稀疏酉矩阵对角化,julia,sparse-matrix,eigenvalue,Julia,Sparse Matrix,Eigenvalue,我必须收集稀疏酉矩阵的特征值。 基本上,每个元素中只有一个元素不同于零 行和列(它是一些马尔可夫过程的传递矩阵) 我的问题是如何进行,最好的选择是什么 在所有功能套件中。我知道EIG能帮上忙, 但我也看到了必须选择初始向量。下面的代码最终定义了pdeig,它返回矩阵的特征值,该矩阵是pdmatrix,即置换矩阵和对角矩阵的乘积,或者换句话说,像问题描述的矩阵。也可以快速计算特征向量(它们有明确的公式): 例如,以下各项: m = [ 0.0 1.0 0.0 ; 2.0 0.0 0.0 ; 0.0

我必须收集稀疏酉矩阵的特征值。 基本上,每个元素中只有一个元素不同于零 行和列(它是一些马尔可夫过程的传递矩阵)

我的问题是如何进行,最好的选择是什么 在所有功能套件中。我知道EIG能帮上忙,
但我也看到了必须选择初始向量。

下面的代码最终定义了
pdeig
,它返回矩阵的特征值,该矩阵是
pdmatrix
,即置换矩阵和对角矩阵的乘积,或者换句话说,像问题描述的矩阵。也可以快速计算特征向量(它们有明确的公式):

例如,以下各项:

m = [ 0.0 1.0 0.0 ; 2.0 0.0 0.0 ; 0.0 0.0 0.0 ]
pdeig(m)
产出:

    3-element Array{Complex{Float64},1}:
 -1.41421+1.73191e-16im 
  1.41421-3.46382e-16im 
              0.0+0.0im
由于这些矩阵是可对角化的,特征值应该提供对角矩阵(只需对它们使用
diagm

这些矩阵是非常结构化的,适当的Julia处理将为这些矩阵定义一个类型,然后定义各种线性代数函数以分派给该类型

如果出现错误,只需添加一条注释,我将尝试修复它们(或者,如果我碰巧看到一个很好的重构,那么我将进行编辑)


顺便说一句,计算会引入小的数值误差,这些误差应该不是问题,并且可以通过适当的舍入来消除(因此无需担心
-1.0
-1.0+1.23424e-16im

矩阵在每列和每行中是否有一个非零条目?在这种情况下,它是一个置换矩阵乘以一个扩张矩阵,特征值很容易计算(根据置换周期乘以扩张因子的适当比率的复数单位向量)是的,事实上,在极限情况下,它只是一个典型的置换矩阵。你怎么知道这个因式分解?如果存在简并(许多特征值等于零)和/或向量空间尺度的维数为N^2,它们仍然容易计算吗?非常感谢。现在的问题是,我想这是一个定理,我在哪里可以找到它的证明呢?最小谷歌搜索没有找到置换+扩张的定理,但仅仅是置换矩阵,有:这解释了大部分复杂性(置换的循环结构是在
pdeig
中计算的)。。。。也许这应该成为一个新的定理(或引理)。最后一个问题,这是你们对膨胀的定义吗?谷歌搜索置换+缩放,给出了以下论文,详细说明了证明计算正确的理论:
    3-element Array{Complex{Float64},1}:
 -1.41421+1.73191e-16im 
  1.41421-3.46382e-16im 
              0.0+0.0im