Вот еще один способ охарактеризовать спектр.
Avk=λkvkA
S(ω)=∑kπ−1σσ2+(λk−ω)2=σπTr[σ2+(ω−A)2]−1
S(ω)=σπ⟨zT[σ2+(ω−A)2]−1z⟩
z+1−1σω[ σ2+ ( ω - A )2]- 1Z[ ω + i σ- А ]- 1[ ω - я σ- А ]- 1чтобы минимизировать заполнение. Это позволяет оценить
S( ω )также для больших матриц. На практике кажется, что CG-решение не обязательно должно быть очень точным, и при вычислении среднего не требуется много векторов. Это может зависеть от проблемы.
Вышеуказанное, по-видимому, взвешивает части спектра более равномерно, чем аналогично смазанная спектральная плотность Крылова - попробуйте diag (linspace (0, 1, 150000)) - хотя, возможно, есть способ исправить это? Это несколько похоже на псевдоспектральный подход, но результат указывает (размытое) число собственных значений в окрестности точкиω, а не обратное расстояние до ближайшего собственного значения.
РЕДАКТИРОВАТЬ : Лучшая альтернатива для вычисления вышеупомянутой величины состоит в том, чтобы вычислить чебышевские моменты (с помощью стохастической оценки, подобной описанной выше), а затем восстановить спектральную плотность из них. Это не требует ни матричных инверсий, ни отдельных вычислений для каждогоω. See http://theorie2.physik.uni-greifswald.de/downloads/publications/LNP_chapter19.pdf and references therein.