Решающая система линейных уравнений - метод наименьших квадратов
пытается решить систему линейных уравнений x
= lsqr(A
,b
)A*x = b
для x
использование метода наименьших квадратов. lsqr
находит решение методом наименьших квадратов для x
который минимизирует norm(b-A*x)
. Когда A
является допустимым, решение методом наименьших квадратов также является решением линейной системы. Когда попытка успешна, lsqr
отображение сообщения для подтверждения сходимости. Если lsqr
не сходится после максимального количества итераций или остановок по какой-либо причине, оно отображает диагностическое сообщение, которое включает относительную невязку norm(b-A*x)/norm(b)
и номер итерации, на котором остановился метод.
[
возвращает флаг, который определяет, успешно ли сходился алгоритм. Когда x
,flag
] = lsqr(___)flag = 0
конвергенция прошла успешно. Можно использовать этот синтаксис выхода с любой из предыдущих комбинаций входных аргументов. Когда вы задаете flag
выход, lsqr
не отображает никаких диагностических сообщений.
[
также возвращает остаточную ошибку вычисляемого решения x
,flag
,relres
] = lsqr(___)x
. Если flag
является 0
, затем x
является решением методом наименьших квадратов, которое минимизирует norm(b-A*x)
. Если relres
является маленьким, тогда x
также является последовательным решением, поскольку relres
представляет norm(b-A*x)/norm(b)
.
Сходимость большинства итерационных методов зависит от числа обусловленности матрицы коэффициентов, 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] Пейдж, С. С. и М. А. Сондерс, «LSQR: алгоритм для разреженных линейных уравнений и разреженных наименьших квадратов», ACM Trans. Math. Soft., Vol.8, 1982, pp . 43-71.