Решающая система линейных уравнений - стабилизированный метод двухъюгатных градиентов (l)
пытается решить систему линейных уравнений x
= bicgstabl(A
,b
)A*x = b
для x
использование метода Biconjugate Gradients Stabilized (l). Когда попытка успешна, bicgstabl
отображение сообщения для подтверждения сходимости. Если bicgstabl
не сходится после максимального количества итераций или остановок по какой-либо причине, оно отображает диагностическое сообщение, которое включает относительную невязку norm(b-A*x)/norm(b)
и номер итерации, на котором остановился метод.
[
возвращает флаг, который определяет, успешно ли сходился алгоритм. Когда x
,flag
] = bicgstabl(___)flag = 0
конвергенция прошла успешно. Можно использовать этот синтаксис выхода с любой из предыдущих комбинаций входных аргументов. Когда вы задаете flag
выход, bicgstabl
не отображает никаких диагностических сообщений.
Сходимость большинства итерационных методов зависит от числа обусловленности матрицы коэффициентов, 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.