Одна вещь, которую CG имеет в свою пользу, это то, что она не минимизирует дискретную норму L2 для своих остаточных полиномов (что делает GMRES). Вместо этого она сводит к минимуму матрично-индуцированную норму, и очень часто эта матрично-индуцированная норма оказывается очень близкой к энергетической норме для дискретизации физических задач, и зачастую это гораздо более разумная норма для измерения погрешности из-за появления свойств сохранения из физики.
На самом деле вы можете добиться такого же эффекта и с GMRES, если выполнение факторизации массива Холецкого не слишком дорого, вы можете заставить внутренние продукты быть энергетическими внутренними продуктами, которые вы хотите.
Тогда случаи, когда следует ожидать, что CG будет работать совершенно иначе, чем GMRES, - это когда константы, подразумеваемые в эквивалентности норм, сильно отличаются. Это может быть справедливо, например, в методе спектрального Галеркина высокого порядка, где дискретная норма L2 используемая в GMRES, рассматривает все степени свободы как равные, когда в действительности полиномиальные градиенты являются самыми острыми вблизи границ (следовательно, кластеризация узлов), и поэтому константы эквивалентности нормы между этой нормой и, скажем, непрерывной нормой L2 задаваемой матрицей масс, могут быть очень большими.
Я подозреваю, что вообще нет большой разницы между GMRES и CG для матрицы SPD.
Скажем , мы решаем х = Ь с А симметричным положительно определенным и исходным предположением х 0 = 0 и порождающей итерацией с CG и GMRES, назовем их х с к и х г к . Оба итерационных метода будут строитьA x = b A Икс0= 0 ИкссК ИксграммК из одного и того же пространства Крылова K k = { b , A b , A 2 b , … } . Они будут делать это по-разному.ИксК КК= { b , A b , 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
GMRES минимизирует вместо этого невязку и делает это в дискретной норме ℓ 2 , так что ( r k , r k ) = ( b - A x g k , b - A x g kрК= Б - хграммК ℓ2
Чтобы быть еще более конкретным, на первой итерации с пространством Крылова и CG, и GMRES построят приближение вида x 1 = α b . CG выберет α = ( b , b )К1= { b } Икс1= α b
источник
Одна вещь состоит в том, что GMRES никогда не используется везде, где может применяться CG. Я не думаю, что имеет смысл сравнивать эти два. Для матриц SPD CG определенно является победителем из-за требований к хранилищу и причин, упомянутых выше. Вопрос, который был бы интересен, состоит в том, чтобы найти расширение CG, которое применимо к задачам, где CG не может быть применен. Существуют такие методы, как BiCG-stab, которые не требуют линейного увеличения памяти, такие как GMRES, но конвергенция не так хороша, как GMRES (иногда даже с перезапущенным GMRES).
источник