В чем разница между "eig" и "eigs"?

Я много искал для этого, но я не могу найти никакого ответа о том, как отличаются два метода "eig" и "eigs". В чем разница между собственными значениями и полученными от них собственными векторами?

Ответ 1

Они используют разные алгоритмы, адаптированные к различным задачам и различным целям.

eig является хорошим, быстрым, общим решением для определения собственных значений/векторов. Он подходит для использования, когда ваша матрица имеет реалистичный размер, который хорошо вписывается в память, и когда вам нужны все собственные значения/векторы. Разреженные матрицы вообще не работают в eig.

Eigs - это решатель, который более подходит для того, когда вам нужно только ограниченное подмножество собственных значений/векторов. Здесь матрица часто хранится в разреженном формате, потому что в качестве полной матрицы для хранения потребуется слишком много памяти. Похоже, что eigs основан на ARPACK.

Если вы действительно запрашиваете специфику фактических алгоритмов, это вопрос, который явно не подходит для этого сайта. Сядьте с копией "Matrix Computations" или, еще лучше, прочитайте пару ссылок, перечисленных в документе для eigs.