Решающая система линейных уравнений - метод квази-минимальных невязок
пытается решить систему линейных уравнений x
= qmr(A
,b
)A*x = b
для x
использование метода квази-минимальных невязок. Когда попытка успешна, qmr
отображение сообщения для подтверждения сходимости. Если qmr
не сходится после максимального количества итераций или остановок по какой-либо причине, оно отображает диагностическое сообщение, которое включает относительную невязку norm(b-A*x)/norm(b)
и номер итерации, на котором остановился метод.
[
возвращает флаг, который определяет, успешно ли сходился алгоритм. Когда x
,flag
] = qmr(___)flag = 0
конвергенция прошла успешно. Можно использовать этот синтаксис выхода с любой из предыдущих комбинаций входных аргументов. Когда вы задаете flag
выход, qmr
не отображает никаких диагностических сообщений.
Сходимость большинства итерационных методов зависит от числа обусловленности матрицы коэффициентов, 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] Freund, Roland W. and Nöel M. Nachtigal, «QMR: метод квази-минимальных невязок для неэрмитовских линейных систем», SIAM Journal: Numer. Математика. 60, 1991, с. 315-339.