【问题标题】:In Julia, The eigs() function for large sparse matrix went wrong在 Julia 中,大型稀疏矩阵的 eigs() 函数出错了
【发布时间】:2017-04-10 11:21:30
【问题描述】:

使用 Julia,我使用 spzeros() 函数创建了一个稀疏矩阵,用一些句子初始化了矩阵,并尝试计算它的特征值。但是,该函数仅适用于小的稀疏矩阵(n

代码:

ns = 400 # 800
H = spzeros(Complex128, ns, ns)
#... initialization 
E, x = eigs(H)

最后一句后的错误信息:

LoadError: Base.LinAlg.ARPACKException("未指定的 ARPACK 错误:1") 在加载 In[7] 时,从第 1 行开始的表达式中

在 aupd_wrapper(::Type{T}, ::Base.LinAlg.#matvecA!#69{SparseMatrixCSC{Complex{Float64},Int64}}, ::Base.LinAlg.##63#70, :: Base.LinAlg.##64#71, ::Int64, ::Bool, ::Bool, ::String, ::Int64, ::Int64, ::String, ::Float64, ::Int64, ::Int64, ::Array{Complex{Float64},1}) 在 .\linalg\arpack.jl:53 在#_eigs#62(::Int64, ::Int64, ::Symbol, ::Float64, ::Int64, ::Void, ::Array{Complex{Float64},1}, ::Bool, ::Base。 LinAlg.#_eigs, ::SparseMatrixCSC{Complex{Float64},Int64}, ::UniformScaling{Int64}) 在 .\linalg\arnoldi.jl:268 在 (::Base.LinAlg.#kw##_eigs)(::Array{Any,1}, ::Base.LinAlg.#_eigs, ::SparseMatrixCSC{Complex{Float64},Int64}, ::UniformScaling{Int64 }) 在 .\:0 在#eigs#55(::Array{Any,1}, ::Function, ::SparseMatrixCSC{Complex{Float64},Int64}, ::UniformScaling{Int64}) at .\linalg\arnoldi.jl:78 在 (::Base.LinAlg.#kw##eigs)(::Array{Any,1}, ::Base.LinAlg.#eigs, ::SparseMatrixCSC{Complex{Float64},Int64}, ::UniformScaling{Int64 }) 在 .\:0 在 #eigs#59(::Array{Any,1}, ::Function, ::SparseMatrixCSC{Complex,Int64}, ::UniformScaling{Int64}) at .\linalg\arnoldi.jl:85 在 (::Base.LinAlg.#kw##eigs)(::Array{Any,1}, ::Base.LinAlg.#eigs, ::SparseMatrixCSC{Complex,Int64}, ::UniformScaling{Int64}) 在.\:0 在 #eigs#54(::Array{Any,1}, ::Function, ::SparseMatrixCSC{Complex,Int64}) at .\linalg\arnoldi.jl:77 在 (::Base.LinAlg.#kw##eigs)(::Array{Any,1}, ::Base.LinAlg.#eigs, ::SparseMatrixCSC{Complex,Int64}) 在 .\:0

【问题讨论】:

  • 最好给出一个产生错误的特定矩阵。可能在链接的 sn-p 中(例如,参见 pastebin

标签: julia sparse-matrix eigenvalue


【解决方案1】:

ARPACK 错误 1,来自快速的 Google 搜索,似乎是“最大迭代次数”。因此,您的矩阵必须使得 ARPACK 的算法无法找到特征值。

discussions elsewhere 看来,该问题似乎可以通过删除度数为零的顶点(或通常为零行)或通过将矩阵拆分为连通分量(即块)并找到每个块的特征值来解决分开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2015-03-01
    • 2013-06-09
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多