Решающая система линейных уравнений - сопряженный метод градиентов в квадрате
пытается решить систему линейных уравнений x
= cgs(A
,b
)A*x = b
для x
использование сопряженного метода градиентов в квадрате. Когда попытка успешна, cgs
отображение сообщения для подтверждения сходимости. Если cgs
не сходится после максимального количества итераций или остановок по какой-либо причине, оно отображает диагностическое сообщение, которое включает относительную невязку norm(b-A*x)/norm(b)
и номер итерации, на котором остановился метод.
[
возвращает флаг, который определяет, успешно ли сходился алгоритм. Когда x
,flag
] = cgs(___)flag = 0
конвергенция прошла успешно. Можно использовать этот синтаксис выхода с любой из предыдущих комбинаций входных аргументов. Когда вы задаете flag
выход, cgs
не отображает никаких диагностических сообщений.
Сходимость большинства итерационных методов зависит от числа обусловленности матрицы коэффициентов, cond(A)
. Вы можете использовать equilibrate
улучшить число обусловленности A
и самостоятельно это облегчает сходимость большинства итерационных решателей. Однако использование equilibrate
также приводит к более качественным матрицам предкондиционера, когда вы впоследствии факторизируете уравновешенную матрицу B = R*P*A*C
.
Можно использовать матричные функции переупорядочивания, такие как dissect
и symrcm
чтобы переместить строки и столбцы матрицы коэффициентов и минимизировать количество ненулевых, когда матрица коэффициентов факторизирована, чтобы сгенерировать предварительное условие. Это может уменьшить память и время, необходимое для последующего решения предварительно обусловленной линейной системы.
[1] Barrett, R., M. Berry, T. F. Chan, et al., Templates for the Solution of Линейные Системы: Базовые блоки for Итерационные Методы, SIAM, Philadelphia, 1994.
[2] Sonneveld, Peter, «CGS: A fast Lanczos-type solver for nonsymmetric линейные системы», SIAM J. Sci. Stat. Comput., January 1989, Vol. 10, No. 1, pp. 36-52.