IterativeSolvers.jl
IterativeSolvers.jl — это пакет Julia, который предоставляет эффективные итерационные алгоритмы для решения больших линейных систем, задач на нахождение собственных значений и задач с сингулярными значениями. Большинство методов можно использовать без матрицы.
Для получения отчетов об ошибках, запросов на получение функций и при возникновении вопросов следует отправить проблему. Если вы заинтересованы в участии в проекте, ознакомьтесь с руководством для участников.
Для получения дополнительной информации о будущих методах просмотрите план реализации для пакета.
Какой метод следует использовать для линейных систем?
При решении линейных систем для квадратной матрицы существует довольно много возможностей. Ниже перечислены типичные варианты.
Метод | Когда его использовать |
---|---|
Лучший вариант для симметричных, положительно определенных матриц |
|
Для симметричных, неопределенных матриц |
|
Для несимметричных матриц при наличии хорошего предобуславливателя |
|
Для несимметричных, строго неопределенных задач без хорошего предобуславливателя |
|
В ином случае для несимметричных задач |
Когда известны границы спектра, мы также предлагаем итерацию Чебышева в качестве альтернативы методу сопряженных градиентов.
Стационарные методы Jacobi, Gauss-Seidel, SOR и SSOR можно использовать в качестве сглаживателей, чтобы уменьшить количество высокочастотных компонентов в ошибке всего за несколько итераций.
Задачи на нахождение собственных значений и SVD
Для сингулярной декомпозиции мы предлагаем SVDL — процедуру Голуба-Кахана-Ланцоша.
Для решения задач на нахождение собственных значений на данный момент у нас есть только степенной метод и некоторые вспомогательные оболочки для сдвига и инвертирования.