Проблемы, когда градиент сопряжения работает намного лучше, чем GMRES

17

Меня интересуют случаи, когда градиент сопряжения работает намного лучше, чем метод GMRES.

Вообще, CG является предпочтительным выбором во многих случаях SPD (симметрично-положительно определенного), потому что он требует меньшего объема памяти и теоретическая оценка скорости сходимости для CG вдвое больше, чем GMRES. Есть ли проблемы, когда такие показатели действительно наблюдаются? Есть ли какая-либо характеристика случаев, когда GMRES работает лучше или сравнимо с CG для того же числа spmvs (редкие умножения матрицы на вектор).

piyush_sao
источник

Ответы:

8

Одна вещь, которую CG имеет в свою пользу, это то, что она не минимизирует дискретную норму L2 для своих остаточных полиномов (что делает GMRES). Вместо этого она сводит к минимуму матрично-индуцированную норму, и очень часто эта матрично-индуцированная норма оказывается очень близкой к энергетической норме для дискретизации физических задач, и зачастую это гораздо более разумная норма для измерения погрешности из-за появления свойств сохранения из физики.

На самом деле вы можете добиться такого же эффекта и с GMRES, если выполнение факторизации массива Холецкого не слишком дорого, вы можете заставить внутренние продукты быть энергетическими внутренними продуктами, которые вы хотите.

Тогда случаи, когда следует ожидать, что CG будет работать совершенно иначе, чем GMRES, - это когда константы, подразумеваемые в эквивалентности норм, сильно отличаются. Это может быть справедливо, например, в методе спектрального Галеркина высокого порядка, где дискретная норма L2 используемая в GMRES, рассматривает все степени свободы как равные, когда в действительности полиномиальные градиенты являются самыми острыми вблизи границ (следовательно, кластеризация узлов), и поэтому константы эквивалентности нормы между этой нормой и, скажем, непрерывной нормой L2 задаваемой матрицей масс, могут быть очень большими.

Reid.Atcheson
источник
Хотел привести здесь пример с методом высокого порядка и историями сходимости CG, GMRES и GMRES + трюк Холецкого ... но, к сожалению, единственный код, который у меня есть для задач второго порядка, это DG несимметричного многообразия .. так что CG isn неприменимо, хотелось бы увидеть это в действии.
Reid.Atcheson
3
Я думаю, что ваш ответ на что-то важное, но я хотел бы, чтобы вы уточнить. В частности, этот вопрос является вопросом чисто линейной алгебры, а ваш ответ говорит о физических нормах, массовых матрицах и т. Д. Из числового уравнения в частных производных. Можем ли мы сказать что-то точное о том, как минимизация в разных нормах в одном и том же пространстве Крылова приводит к различным итерациям?
Эндрю Т. Баркер
Помимо числовых примеров, я не думаю, что было проведено тщательное теоретическое исследование, объясняющее, как разные нормы дают существенно разные ответы. Я думаю, что проблема заключается в том, что результаты вращаются вокруг асимптотики, и для фиксированной линейной системы теоретические результаты будут идентичны по модулю постоянных факторов. Если есть какие-то теоретические исследования, я бы хотел их увидеть, но, спросив у некоторых экспертов по численной линейной алгебре в моем отделе, кажется, что пока нет точного теоретического анализа, показывающего, что происходит с различными нормами.
Reid.Atcheson
4

Я подозреваю, что вообще нет большой разницы между GMRES и CG для матрицы SPD.

Скажем , мы решаем х = Ь с А симметричным положительно определенным и исходным предположением х 0 = 0 и порождающей итерацией с CG и GMRES, назовем их х с к и х г к . Оба итерационных метода будут строитьAИксзнак равнобAИкс0знак равно0ИксКсИксКграмм из одного и того же пространства Крылова K k = { b , A b , A 2 b , } . Они будут делать это по-разному.ИксКККзнак равно{б,Aб,A2б,...}

CG характеризуется минимизацией ошибки в энергетической норме, индуцированной A , так что ( A e c k , e c k ) = ( A ( x - x c k ) , x - x c k ) = min y K ( A ( x - y ) , x -еКсзнак равноИкс-ИксКсA

(AеКс,еКс)знак равно(A(Икс-ИксКс),Икс-ИксКс)знак равноминYК(A(Икс-Y),Икс-Y),

GMRES минимизирует вместо этого невязку и делает это в дискретной норме 2 , так что ( r k , r k ) = ( b - A x g k , b - A x g kрКзнак равноб-AИксКграмм2

(рК,рК)знак равно(б-AИксКграмм,б-AИксКграмм)знак равноминYК(б-AY,б-AY),
Теперь, используя уравнение ошибки мы также можем записать GMRES как минимизирующее ( r k , r k ) = ( A e g k , A e g k ) = ( A 2 e g k , e g k ), где Я хочу подчеркнуть , что это справедливо только для СПД матрицы A . Тогда мы имеем CG минимизировать ошибку относительно AAеКзнак равнорК
(рК,рК)знак равно(AеКграмм,AеКграмм)знак равно(A2еКграмм,еКграмм)
AAнорма и GMRES минимизируют ошибку по отношению к норме . Если мы хотим, чтобы они вели себя по-разному, интуитивно нам понадобился бы такой А , чтобы эти две нормы были очень разными. Но для SPD А эти нормы будут вести себя совершенно аналогично.A2AA

Чтобы быть еще более конкретным, на первой итерации с пространством Крылова и CG, и GMRES построят приближение вида x 1 = α b . CG выберет α = ( b , b )К1знак равно{б}Икс1знак равноαб

αзнак равно(б,б)(Aб,б)
αзнак равно(Aб,б)(A2б,б),
A(ε,1,1,1,...)бзнак равно(1,1,0,0,0,...)ε0Aб так что этот коэффициент двух различий сохраняется на протяжении всей итерации, но я сомневаюсь, что он станет еще хуже.
Эндрю Т. Баркер
источник
2
бзнак равно(1,ε,0,0,...)|б|знак равно1+εбTAбзнак равно2εбTA2бзнак равноε1+ε2αCGзнак равноε-1+12~ε-1αGMRESзнак равно21+ε2~2ε-1
Джед Браун
3

Одна вещь состоит в том, что GMRES никогда не используется везде, где может применяться CG. Я не думаю, что имеет смысл сравнивать эти два. Для матриц SPD CG определенно является победителем из-за требований к хранилищу и причин, упомянутых выше. Вопрос, который был бы интересен, состоит в том, чтобы найти расширение CG, которое применимо к задачам, где CG не может быть применен. Существуют такие методы, как BiCG-stab, которые не требуют линейного увеличения памяти, такие как GMRES, но конвергенция не так хороша, как GMRES (иногда даже с перезапущенным GMRES).

user1964178
источник
2
Существуют схемы IDR, которые устраняют разрыв между GMRES и BiCG с точки зрения экономии памяти, стабильности и конвергенции: ta.twi.tudelft.nl/nw/users/gijzen/IDR.html Я не уверен, что согласен с тем, что GMRES не следует использовать, если CG может быть. Если вы можете выполнить холеристскую факторизацию матрицы, которая индуцирует вашу энергетическую норму, то вы можете ввести это в симметричную итерацию Ланцоша и получить трехчастичное рекуррентное решение, которое будет вести себя почти как CG. Конечно, CG - более простой вариант, но он доступен :)
Reid.Atcheson
2
Если вы используете, например, сглаживатель Крылова, тогда GMRES, вероятно, предпочтительнее, поскольку он использует более слабую норму, предназначенную для больших собственных значений, которые, как правило, имеют более высокую частоту.
Джед Браун