IDR(s)

Метод индуцированного снижения размерности — это семейство простых и быстрых алгоритмов на основе подпространств Крылова для решения больших несимметричных линейных систем. Идея варианта IDR(s) состоит в том, чтобы генерировать невязки, которые находятся во вложенных подпространствах уменьшающейся размерности.

Использование

# IterativeSolvers.idrsFunction

idrs(A, b; s = 8, kwargs...) -> x, [history]

То же, что и idrs!, но выделяет вектор решений x, инициализированный нулями.

# IterativeSolvers.idrs!Function

idrs!(x, A, b; s = 8, kwargs...) -> x, [history]

Приближенно решает задачу с помощью IDR(s), где s является размерностью теневого пространства.

Аргументы

  • x: начальное предположение, будет обновляться на месте;

  • A: линейный оператор;

  • b: правая часть.

Ключевые слова

  • s::Integer = 8: размерность пространства;

  • Pl::precT: левый предобуславливатель;

  • abstol::Real = zero(real(eltype(b))), reltol::Real = sqrt(eps(real(eltype(b)))): абсолютный и относительный допуски для условия остановки |r_k| ≤ max(reltol * |r_0|, abstol), где r_k = A * x_k - b является невязкой в k-й итерации;

  • maxiter::Int = size(A, 2): максимальное количество итераций;

  • log::Bool: отслеживание нормы невязки в каждой итерации;

  • verbose::Bool: вывод информации о сходимости во время итераций.

Возвращаемые значения

если log имеет значение false

  • x: приближенное решение.

если log имеет значение true

  • x: приближенное решение;

  • history: история сходимости.

Сведения о реализации

Текущая реализация основана на версии MATLAB от Ван Гийзена (Van Gijzen) и Зонневельда (Sonneveld). Справочную информацию см. в документах [1], [2], на веб-странице о IDR(s) и в главе об IDR в документе [3].


1. IDR(s): a family of simple and fast algorithms for solving large nonsymmetric linear systems. P. Sonneveld and M. B. van Gijzen SIAM J. Sci. Comput. Vol. 31, No. 2, pp. 1035—​1062, 2008
2. Algorithm 913: An Elegant IDR(s) Variant that Efficiently Exploits Bi-orthogonality Properties. M. B. van Gijzen and P. Sonneveld ACM Trans. Math. Software, Vol. 38, No. 1, pp. 5:1-5:19, 2011
3. The IDR family. G. Meurant and J. Duintjer Tebbens. В: Krylov Methods for Nonsymmetric Linear Systems. Springer Series in Computational Mathematics, vol 57. Springer, 2020. doi: 10.1007/978-3-030-55251-0_10