Я использую eigs , чтобы решить обобщенную проблему собственных значений разреженных матриц, которая является результатом сопутствующей линеаризации квадратичной задачи на собственные значения.
Короче говоря, процесс дляВычислить собственное значение следующим образом: Имея матрицы M, C, K (которые являются разреженными и получены из кода конечного элемента для волнового уравнения), я делаю следующее:
qep = PEP([K,C,M]);
E,A = companion(qep);
lambda,vevs = eigs(A,E);
println(maximum(real(lambda)))
Это работает как задуманои, как показывает последняя строка, меня интересует собственное значение с максимальным действительным значением.
Мне также было предложено, чтобы код, вычисляющий только часть числа собственных значений, былнамного быстрее.Поэтому я пробовал следующее:
lambda,vevs = eigs(A,E, nev=10, which=:LR)
, но когда я делаю это, я получаю сообщение об ошибке:
ERROR: LoadError: ARPACKException: unspecified ARPACK error: 1
Stacktrace:
[1] aupd_wrapper(::Type, ::getfield(Arpack, Symbol("#matvecA!#24")){SparseMatrixCSC{Float64,Int64}}, ::getfield(Arpack, Symbol("##21#28")){SparseMatrixCSC{Float64,Int64}}, ::getfield(Arpack, Symbol("##22#29")), ::Int64, ::Bool, ::Bool, ::String, ::Int64, ::Int64, ::String, ::Float64, ::Int64, ::Int64, ::Array{Float64,1}) at /home/symeon/.julia/packages/Arpack/UiiMc/src/libarpack.jl:49
[2] #_eigs#17(::Int64, ::Int64, ::Symbol, ::Float64, ::Int64, ::Nothing, ::Array{Float64,1}, ::Bool, ::typeof(Arpack._eigs), ::SparseMatrixCSC{Float64,Int64}, ::SparseMatrixCSC{Float64,Int64}) at /home/symeon/.julia/packages/Arpack/UiiMc/src/Arpack.jl:198
[3] (::getfield(Arpack, Symbol("#kw##eigs")))(::NamedTuple{(:nev, :which),Tuple{Int64,Symbol}}, ::typeof(eigs), ::SparseMatrixCSC{Float64,Int64}, ::SparseMatrixCSC{Float64,Int64}) at ./none:0
[4] top-level scope at none:0
[5] include at ./boot.jl:326 [inlined]
[6] include_relative(::Module, ::String) at ./loading.jl:1038
[7] include(::Module, ::String) at ./sysimg.jl:29
[8] exec_options(::Base.JLOptions) at ./client.jl:267
[9] _start() at ./client.jl:436
Позвольте мне отметить, что я пробовал другие вариантытакже, в попытке определить местонахождение проблемы, но: SR (минимальная действительная часть),: SI (наименьшее воображаемое),: LI,: LM,: SM работают, как предполагалось, но, конечно, не то, что нужно для того, чтобывосстановите желаемый результат.
Любая информация о том, что происходит и что может быть причиной этого, будет принята с благодарностью.
Спасибо:)