Решающая система линейных уравнений - обобщенный метод минимальных невязок
пытается решить систему линейных уравнений x
= gmres(A
,b
)A*x = b
для x
использование обобщенного метода минимальных невязок. Когда попытка успешна, gmres
отображение сообщения для подтверждения сходимости. Если gmres
не сходится после максимального количества итераций или остановок по какой-либо причине, оно отображает диагностическое сообщение, которое включает относительную невязку norm(b-A*x)/norm(b)
и номер итерации, на котором остановился метод. Для этого синтаксиса, gmres
не перезапускается; максимальное количество итераций min(size(A,1),10)
.
перезапускает метод каждый x
= gmres(A
,b
,restart
)restart
внутренние итерации. Максимальное количество внешних итераций outer = min(size(A,1)/restart,10)
. Максимальное количество итераций restart*outer
, с gmres
выполняет restart
внутренние итерации для каждой внешней итерации. Если restart
является size(A,1)
или []
, затем gmres
не перезапускается и максимальное количество итераций min(size(A,1),10)
.
задает максимальное количество внешних итераций, так что общее количество итераций не превышает x
= gmres(A
,b
,restart
,tol
,maxit
)restart*maxit
. Если maxit
является []
затем gmres
использует значение по умолчанию, min(size(A,1)/restart,10)
. Если restart
является size(A,1)
или []
, затем максимальное количество итераций maxit
(вместо restart*maxit
). gmres
отображает диагностическое сообщение, если оно не сходится в пределах максимального количества итераций.
[
возвращает флаг, который определяет, успешно ли сходился алгоритм. Когда x
,flag
] = gmres(___)flag = 0
конвергенция прошла успешно. Можно использовать этот синтаксис выхода с любой из предыдущих комбинаций входных аргументов. Когда вы задаете flag
выход, gmres
не отображает никаких диагностических сообщений.
Сходимость большинства итерационных методов зависит от числа обусловленности матрицы коэффициентов, 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] Saad, Yousef and Martin H. Schultz, «GMRES: Обобщенный минимальный остаточный алгоритм для решения несимметричных линейных систем», SIAM J. Sci.Comput., июль 1986, Vol. 7, No 3, pp. 856-869.