Рассмотрим где почти особенное, что означает, что есть собственное значение в , которое очень мало. Обычный критерий остановки итерационного метода основан на остаточном и рассматривает итерации можно остановить , когда с числа итераций. Но в случае, который мы рассматриваем, может быть большая ошибка живя в собственном пространстве, связанном с малым собственным значением которое дает малую невязку . Предположим , что начальная остаточная велико, то это может произойти , мы останавливаемся на но ошибка по - прежнему велика. Что является лучшим индикатором ошибки в этом случае? Is хороший кандидат?
linear-algebra
Хуэй Чжан
источник
источник
Ответы:
Пожалуйста, никогда не используйте разницу между последовательными итерациями для определения критериев остановки. Это неправильно диагностирует стагнацию конвергенции. Большинство несимметричных итераций матрицы не являются монотонными, и даже GMRES в точной арифметике без перезапусков может стагнировать в течение произвольного числа итераций (вплоть до размерности матрицы) перед тем, как сойтись внезапно. Смотрите примеры в Nachtigal, Reddy и Trefethen (1993) .
Лучший способ определить сходимость
Нас обычно интересует точность нашего решения больше, чем размер остатка. В частности, мы могли бы гарантировать, что разность между приближенным решением и точным решением x удовлетворяет | х н - х | < c для некоторого указанного пользователем c . Оказывается, что можно добиться этого, найдя x n такой, что | A x n - b | < c ϵ где ϵ - наименьшее единственное значение A , обусловленноеxn x
где мы использовали, что является наибольшим единичным значением A - 1 (вторая строка) и что x точно решает A x = b1/ϵ A−1 x Ax=b (третья строка).
Оценка наименьшего единственного значенияϵ
Точная оценка наименьшего сингулярного значения обычно не доступна непосредственно из задачи, но ее можно оценить как побочный продукт сопряженного градиента или итерации GMRES. Следует отметить , что хотя оценки наибольших собственных и сингулярных значений, как правило , довольно хорошо после нескольких итераций, точная оценка наималейшего собственному / сингулярных обычно получается только один раз сходимость достигнута. До конвергенции оценка, как правило, будет значительно больше, чем истинное значение. Это говорит о том, что вы должны решить уравнения прежде, чем сможете определить правильный допуск c ϵ . Автоматический допуск сходимости, который принимает заданную пользователем точность cϵ cϵ c для решения и оценки наименьшее сингулярное значение с текущим состоянием метода Крылова может сходиться слишком рано, потому что оценка ϵ была намного больше истинного значения.ϵ ϵ
Примечания
-ksp_monitor_singular_value
помощью любой программы PETSc. См. KSPComputeExtremeSingularValues () для вычисления особых значений из кода.-ksp_gmres_restart 1000
в PETSc).источник
Другой способ взглянуть на эту проблему - рассмотреть инструменты из дискретных обратных задач, то есть задач, которые включают решение или min | | A x - b | | 2, где A очень плохо обусловлен (то есть отношение между первым и последним единственным значением σ 1 / σ n велико).Ax=b min||Ax−b||2 A σ1/σn
Здесь у нас есть несколько методов для выбора критерия остановки, и для итерационного метода я бы рекомендовал критерий L-кривой, поскольку он включает только те количества, которые уже доступны (ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Мой консультант впервые применил этот метод, поэтому я определенно склонен к Это). Я использовал это с успехом в итеративном методе.
Существуют также более подробные методы поиска угла, и они работают лучше, но требуют хранения значительного числа итераций. Поиграйте с этим немного. Если вы находитесь в Matlab, вы можете использовать панель инструментов Regularization Tools, которая реализует некоторые из этих функций (в частности, применима «угловая» функция).
Обратите внимание, что этот подход особенно подходит для крупномасштабных задач, так как дополнительное вычислительное время является крошечным.
источник