Критерии остановки для итерационных линейных решателей, применяемые к почти сингулярным системам

16

Рассмотрим Ax=b где A почти особенное, что означает, что есть собственное значение λ0 в A , которое очень мало. Обычный критерий остановки итерационного метода основан на остаточном rn:=bAxn и рассматривает итерации можно остановить , когда rn/r0<tol с n числа итераций. Но в случае, который мы рассматриваем, может быть большая ошибка vживя в собственном пространстве, связанном с малым собственным значением λ0 которое дает малую невязку Av=λ0v . Предположим , что начальная остаточная r0 велико, то это может произойти , мы останавливаемся на rn/r0<tol но ошибка xnx по - прежнему велика. Что является лучшим индикатором ошибки в этом случае? Is xnxn1 хороший кандидат?

Хуэй Чжан
источник
3
Вы можете подумать о своем определении «почти единственного числа». Матрица Iϵϵ1 и I единичная матрица) имеет очень малое собственное значение, но как далеко от единственного числа , как любая матрица может быть.
Дэвид Кетчесон
1
Также, ||rn/r0||похоже на неправильную запись ||rn||/||r0||более типично, нет?
Билл Барт
Да, ты прав, Билл! Я исправлю эту ошибку.
Хуэй Чжан
1
А как насчет bAx/b ? а какой у тебя алгоритм, точно?
Шухало
2
Приложение: Я думаю, что следующая статья в значительной степени посвящена плохо обусловленным системам, о которых вы беспокоитесь, по крайней мере, если вы используете CG: Аксельсон, Капорин: Оценка нормы ошибок и критерии остановки в предварительно обусловленных итерациях сопряженного градиента. DOI: 10.1002 / nla.244
шухало

Ответы:

13

Пожалуйста, никогда не используйте разницу между последовательными итерациями для определения критериев остановки. Это неправильно диагностирует стагнацию конвергенции. Большинство несимметричных итераций матрицы не являются монотонными, и даже GMRES в точной арифметике без перезапусков может стагнировать в течение произвольного числа итераций (вплоть до размерности матрицы) перед тем, как сойтись внезапно. Смотрите примеры в Nachtigal, Reddy и Trefethen (1993) .

Лучший способ определить сходимость

Нас обычно интересует точность нашего решения больше, чем размер остатка. В частности, мы могли бы гарантировать, что разность между приближенным решением и точным решением x удовлетворяет | х н - х | < c для некоторого указанного пользователем c . Оказывается, что можно добиться этого, найдя x n такой, что | A x n - b | < c ϵ где ϵ - наименьшее единственное значение A , обусловленноеxnx

|xnx|<c
cxn
|Axnb|<cϵ
ϵA

|xnx|=|A1A(xnx)|1ϵ|AxnAx|=1ϵ|Axnb|<1ϵcϵ=c

где мы использовали, что является наибольшим единичным значением A - 1 (вторая строка) и что x точно решает A x = b1/ϵA1xAx=b (третья строка).

Оценка наименьшего единственного значения ϵ

Точная оценка наименьшего сингулярного значения обычно не доступна непосредственно из задачи, но ее можно оценить как побочный продукт сопряженного градиента или итерации GMRES. Следует отметить , что хотя оценки наибольших собственных и сингулярных значений, как правило , довольно хорошо после нескольких итераций, точная оценка наималейшего собственному / сингулярных обычно получается только один раз сходимость достигнута. До конвергенции оценка, как правило, будет значительно больше, чем истинное значение. Это говорит о том, что вы должны решить уравнения прежде, чем сможете определить правильный допуск c ϵ . Автоматический допуск сходимости, который принимает заданную пользователем точность cϵcϵcдля решения и оценки наименьшее сингулярное значение с текущим состоянием метода Крылова может сходиться слишком рано, потому что оценка ϵ была намного больше истинного значения.ϵϵ

Примечания

  1. Выше обсуждение также работает с заменено левым-выдержано оператором P - 1 A и выдержано остаточный P - 1 ( х п - б ) или с правым выдержано оператором P - 1 и ошибками Р ( х п - х ) . Если П - 1AP1AP1(Axnb)AP1P(xnx)P1является хорошим предобусловливателем, предобусловленный оператор будет хорошо подготовлен. Для левого предварительного кондиционирования это означает, что предварительно обработанный остаток может быть сделан небольшим, но истинный остаток может не быть. Для правильной предварительной обработки, легко сделать маленьким, но истинная ошибка | х н - х | может не быть. Это объясняет, почему левое предварительное кондиционирование лучше для уменьшения ошибок, в то время как правильное предварительное кондиционирование лучше для уменьшения остатка (и для отладки нестабильных предварительных кондиционеров).|P(xnx)||xnx|
  2. Смотрите этот ответ для более подробного обсуждения норм, минимизированных GMRES и CG.
  3. Оценки экстремальных сингулярных значений можно отслеживать с -ksp_monitor_singular_valueпомощью любой программы PETSc. См. KSPComputeExtremeSingularValues ​​() для вычисления особых значений из кода.
  4. При использовании GMRES для оценки единичных значений крайне важно, чтобы перезапуски не использовались (например, -ksp_gmres_restart 1000в PETSc).
Джед браун
источник
1
'' также работает с А, замененным предобусловленным оператором '' - однако в этом случае он применяется только к предобусловленному остаточному если используется P - 1 A , соответственно. с заранее заданной ошибкой P - 1 δ x, если используется A P - 1 . P1rP1AP1δxAP1
Арнольд Ноймайер
1
Хороший вопрос, я отредактировал свой ответ. Обратите внимание, что в случае с правильным предварительным условием вы можете управлять , разматывание устройства предварительного кондиционирования (применяя P - 1 ) обычно усиливает низкоэнергетические моды в ошибке. PδxP1
Джед Браун
6

Другой способ взглянуть на эту проблему - рассмотреть инструменты из дискретных обратных задач, то есть задач, которые включают решение или min | | A x - b | | 2, где A очень плохо обусловлен (то есть отношение между первым и последним единственным значением σ 1 / σ n велико).Ax=bmin||Axb||2Aσ1/σn

Здесь у нас есть несколько методов для выбора критерия остановки, и для итерационного метода я бы рекомендовал критерий L-кривой, поскольку он включает только те количества, которые уже доступны (ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Мой консультант впервые применил этот метод, поэтому я определенно склонен к Это). Я использовал это с успехом в итеративном методе.

ρk=||Axkb||2ηk=||xk||2xkk

(ρk,ηk)

abs(log(ηk)log(ηk1)log(ρk)log(ρk1))

Существуют также более подробные методы поиска угла, и они работают лучше, но требуют хранения значительного числа итераций. Поиграйте с этим немного. Если вы находитесь в Matlab, вы можете использовать панель инструментов Regularization Tools, которая реализует некоторые из этих функций (в частности, применима «угловая» функция).

Обратите внимание, что этот подход особенно подходит для крупномасштабных задач, так как дополнительное вычислительное время является крошечным.

OscarB
источник
1
Большое спасибо! Итак, на графике loglog (rho, eta) мы начинаем справа от кривой L и заканчиваем сверху L, не так ли? Я просто не знаю принцип, стоящий за этим критерием. Можете ли вы объяснить, почему он всегда ведет себя как кривая L и почему мы выбираем угол?
Хуэй Чжан
||Axb||2=||e||2ebexact=b+e, Для более подробного анализа см. Hansen, PC, & O'Leary, DP (1993). Использование L-кривой в регуляризации дискретных некорректных задач. Журнал SIAM по научным вычислениям, 14. Обратите внимание, что я только что сделал небольшое обновление в этой публикации.
ОскарБ
4
@HuiZhang: это не всегда буква L. Если регуляризация неоднозначна, это может быть двойная буква L, приводящая к двум кандидатам на решение, один с лучшим разрешением, а другой с определенными деталями. (И, конечно, могут появиться более сложные формы.)
Арнольд Ноймайер
Применима ли L-кривая к плохо обусловленным задачам, где должно быть единственное решение? То есть меня интересуют проблемы Ax = b, где b известно «точно», а A почти единично, но все еще технически обратимо. Мне кажется, что если вы используете что-то вроде GMRES, норма вашего текущего предположения о x не сильно меняется со временем, особенно после первых, но многих итераций. Мне кажется, что вертикальная часть L-кривой возникает потому, что в некорректной задаче нет единственного / правильного решения; будет ли эта вертикальная черта присутствовать во всех плохо обусловленных проблемах?
nukeguy
В какой-то момент вы достигнете такой вертикальной линии, обычно потому, что числовые ошибки в вашем методе решения приводят к || Ax-b || не уменьшается Тем не менее, вы правы в том, что в таких задачах, не связанных с шумом, кривая не всегда выглядит как буква L, а это означает, что у вас, как правило, есть несколько углов для выбора, и выбор одного из них может быть трудным. Я считаю, что в статье, на которую я ссылался в моем комментарии выше, кратко обсуждаются сценарии без шума.
ОскарБ