LSQR
Использование
#
IterativeSolvers.lsqr! — Function
lsqr!(x, A, b; kwargs...) -> x, [history]
Минимизирует в евклидовой норме. Если существует несколько решений, возвращает решение с минимальной нормой.
Метод основан на процессе бидиагонализации Голуба-Кахана. Он алгебраически эквивалентен применению CG к нормальным уравнениям , но имеет лучшие численные характеристики, особенно если A плохо обусловлен.
Аргументы
-
x: начальное предположение, будет обновляться на месте; -
A: линейный оператор; -
b: правая часть.
Ключевые слова
-
damp::Number = 0: параметр затухания. -
atol::Number = 1e-6,btol::Number = 1e-6: допуски остановок. Если оба имеют значение 1.0e-9 (допустим), итоговая норма невязки должна быть точной примерно до 9 цифр. (Конечныйxобычно содержит меньше правильных цифр в зависимости отcond(A)и размера затухания.) -
conlim::Number = 1e8: допуск остановки.lsmrзавершается, если оценкаcond(A)превышает ограничение количества подключений. Для совместимых систем Ax = b ограничение количества подключений может достигать 1.0e+12 (допустим). Для задач наименьших квадратов ограничение количества подключений должно быть меньше 1.0e+8. Максимальную точность можно получить, задавatol=btol=conlim= нуль, но тогда количество итераций может оказаться чрезмерным. -
maxiter::Int = maximum(size(A)): максимальное количество итераций. -
verbose::Bool = false: вывод сведений о методе. -
log::Bool = false: вывод дополнительного элемента типаConvergenceHistory, содержащего дополнительную информацию о выполнении метода.
Возвращаемые значения
если log имеет значение false
-
x: приближенное решение.
если log имеет значение true
-
x: приближенное решение. -
ch: история сходимости.
Ключи ConvergenceHistory
-
:atol=>::Real: допуск остановки atol. -
:btol=>::Real: допуск остановки btol. -
:ctol=>::Real: допуск остановки ctol. -
:anorm=>::Real: anorm. -
:rnorm=>::Real: rnorm. -
:cnorm=>::Real: cnorm. -
:resnom=>::Vector: норма невязки в каждой итерации.
Сведения о реализации
По материалам публикации: http://web.stanford.edu/group/SOL/software/lsqr/.