Я работаю над проектом, который включает в себя вычисление собственных векторов очень большой разреженной матрицы. Чтобы быть более конкретным, у меня есть матрица, являющаяся лапласиан большого графа, и мне интересно найти собственный вектор, связанный со вторым наименьшим собственным значением. Конечно, Matlab занимает много времени, чтобы вычислить собственные векторы, даже потому, что он вычисляет все из них. Любые предложения? Большое спасибо AndreaБыстрое вычисление собственных векторов разреженной матрицы
1
A
ответ
3
Вы пробовали это использование eigs
:
[v,c]=eigs(A,2,'sm');
, например:
A = delsq(numgrid('C',256));
[v,c]=eigs(A,2,'sm');
генерирует ~ 50K х 50K разреженную матрицу и найти ее 2 smallerst собственные и собственных векторов примерно через 1 секунду в моем старом ноутбуке ...
использовать 'eigs'? ... – bla
eigs возвращает собственные значения, а не собственные векторы – MagoNick
'[V, D] = eigs (A)' возвращает оба, просто прочитайте документацию http://www.mathworks.com/help/matlab/ref/eigs.html – bla