Документация Engee

IterativeSolvers.jl

IterativeSolvers.jl — это пакет Julia, который предоставляет эффективные итерационные алгоритмы для решения больших линейных систем, задач на нахождение собственных значений и задач с сингулярными значениями. Большинство методов можно использовать без матрицы.

Для получения отчетов об ошибках, запросов на получение функций и при возникновении вопросов следует отправить проблему. Если вы заинтересованы в участии в проекте, ознакомьтесь с руководством для участников.

Для получения дополнительной информации о будущих методах просмотрите план реализации для пакета.

Какой метод следует использовать для линейных систем?

При решении линейных систем для квадратной матрицы существует довольно много возможностей. Ниже перечислены типичные варианты.

Метод Когда его использовать

Сопряженные градиенты

Лучший вариант для симметричных, положительно определенных матриц

MINRES

Для симметричных, неопределенных матриц

GMRES

Для несимметричных матриц при наличии хорошего предобуславливателя

IDR(s)

Для несимметричных, строго неопределенных задач без хорошего предобуславливателя

BiCGStab(l)

В ином случае для несимметричных задач

Когда известны границы спектра, мы также предлагаем итерацию Чебышева в качестве альтернативы методу сопряженных градиентов.

Стационарные методы Jacobi, Gauss-Seidel, SOR и SSOR можно использовать в качестве сглаживателей, чтобы уменьшить количество высокочастотных компонентов в ошибке всего за несколько итераций.

При решении задач наименьших квадратов в настоящее время мы предлагаем только LSMR и LSQR.

Задачи на нахождение собственных значений и SVD

Для сингулярной декомпозиции мы предлагаем SVDL — процедуру Голуба-Кахана-Ланцоша.

Для решения задач на нахождение собственных значений на данный момент у нас есть только степенной метод и некоторые вспомогательные оболочки для сдвига и инвертирования.