Решите систему линейных уравнений — обобщенный метод минимальных невязок
попытки решить систему линейных уравнений 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] Барретт, R., М. Берри, Т. Ф. Чан, и др., Шаблоны для Решения Линейных систем: Базовые блоки для Итерационных методов, SIAM, Филадельфия, 1994.
[2] Саад, Иоюзф и Мартин Х. Шульц, “GMRES: обобщенный минимальный остаточный алгоритм для решения несимметричных линейных систем”, SIAM J. Научный Закон Comput., июль 1986, Издание 7, № 3, стр 856-869.