Документация Engee

Итерация Чебышева

Итерация Чебышева приближенно решает задачу для , где  — это симметричный, определенный линейный оператор, а  — вектор правой части. Методы предполагают, что известен интервал ], содержащий все собственные значения , так что может быть итеративно построен в этом интервале с помощью многочлена Чебышева с нулями. Этот многочлен в конечном итоге действует как фильтр, удаляющий из начальной невязки компоненты в направлении собственных векторов.

Основное преимущество сопряженных градиентов заключается в том, что можно обойтись без операций BLAS1, таких как вычисление внутренних произведений.

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

# IterativeSolvers.chebyshevFunction

chebyshev(A, b, λmin::Real, λmax::Real; kwargs...) -> x, [history]

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

# IterativeSolvers.chebyshev!Function

chebyshev!(x, A, b, λmin::Real, λmax::Real; kwargs...) -> x, [history]

Решает Ax = b для симметричных определенных матриц A с помощью итерации Чебышева.

Аргументы

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

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

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

  • λmin::Real: нижняя граница для вещественных собственных значений;

  • λmax::Real: верхняя граница для вещественных собственных значений.

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

  • initially_zero::Bool = false: если true предполагает iszero(x) так, чтобы одно произведение матрицы на вектор могло быть сохранено при вычислении начального вектора невязки;

  • 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): максимальное количество внутренних итераций GMRES;

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

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

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

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

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

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

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

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

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

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

Хотя этот метод часто используется для того, чтобы избежать вычисления внутренних произведений, критерий остановки по-прежнему основывается на норме невязки. Таким образом, в текущей реализации присутствуют операции BLAS1.

Итерацию Чебышева можно использовать как итератор.