Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие_методы решения СЛАУ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
799.74 Кб
Скачать

2.4.2 Метод бисопряженных градиентов

Ранее была описана биортогонализация Ланцоша, которая в отличие от ортогонализации Арнольди, использует для построения базиса экономичные трехчленные формулы. Выбрав в качестве пространства K пространство Крылова Km(r(0), A), а в качестве Lm( , AT), где вектор удовлетворяет условию (r(0), )0, строят метод бисопряженных градиентов BiCG.

Далее приведен алгоритм предобусловленного метода бисопряженных градиентов.

Алгоритм метода BiCG

Если необходимо построить матрицу предобусловливателя M

Выбрать начальное приближение x(0)

r(0) = bA x(0)

Выбрать вектор , удовлетворяющий условию (r(0), ) 0 (например, = r(0))

Для i = 1, 2, … до сходимости или до Nitmax

Найти z(i–1) из системы M z(i–1) = r(i–1)

Найти из системы MT =

i 1 = (z(i–1), )

Еслиi1 = 0

то метод не может решить данную систему

Если i = 1

Иначе

i1 = i1 / i2

q(i) = A p(i)

= AT

i = i–1 / ( , q(i))

x(i) = x(i–1) + i p(i)

r(i) = r(i–1) – i q(i)

= – i

Если ||r(i)||2 / ||r(0)||2tol

то КОНЕЦ (x(i)полученное решение)

увеличить i

Первые пять параметров метода BiCG, которые необходимо задать, совпадают с аналогичными параметрами метода GMRES. Шестым параметром является тип предобусловливания (0, 10-12 или 20-22). Седьмым является точность обнуления ().

Пример использования метода BiCG в системе TALGAT:

- действительный случай: SET "solve" BICG_r real_m right_r 0. 1.e-8 250 10 1.e-4;

- комплексный случай: SET "solve" BICG complex_m right_c 0. 1.e-8 250 10 1.e-4.

2.4.3 Стабилизированный метод бисопряженных градиентов

К сожалению, описанный алгоритм BiCG зачастую обнаруживает в экспериментах неустойчивость и осциллирующее поведение нормы невязки. Более того, итерационный процесс может полностью оборваться, без возможности его дальнейшего продления. Это происходит если коэффициент j=0. К тому же метод BiCG плохо поддается реализации на многопроцессорных вычислительных системах с распределенной памятью за счет использования операций с транспонированной матрицей. Эти возникающие проблемы привели к разработке целого класса методов, в которых операция с транспонированной матрицей не используется.

Алгебраически это может быть достигнуто за счет изменения специальным образом полинома pm, которому удовлетворяет последовательность невязок в методах, использующих подпространства Крылова. Из числа методов, свободных от транспонирования, в настоящее время широко применяется стабилизированный метод бисопряженных градиентов (BiCGStab), использующий соотношение rm=pm(A)qm(A)r(0), где qm– специальным образом строящийся полином, такой, что произведение pmqm не содержит нечетных степеней.

Далее приведен алгоритм стабилизированного метода бисопряженных градиентов.

Алгоритм метода BiCGStab

Если необходимо построить матрицу предобусловливателя M

Выбрать начальное приближение x(0)

r(0) = bA x(0)

Выбрать вектор , удовлетворяющий условию (r(0), )  0 (например, = r(0))

Для i = 1, 2, … до сходимости или до Nitmax

i 1 = ( , r(i–1))

Еслиi1 = 0

то метод не может решить данную систему

Если i = 1

p(i) = r(i–1)

Иначе

i–1 = (i–1 / i–2) (i–1 / i–1)

p(i) = r(i–1) + i–1(p(i–1) – i–1 v(i–1))

Найти p* из системы M = p(i)

v(i) = A

i = i–1 / ( , v(i))

s = r(i–1) – i v(i)

Если ||s||2 / ||r(0)||2 tol

то КОНЕЦ (x(i) = x(i1) +i полученное решение)

Найти из системы M = s

t = A

i = (t, s) / (t, t)

x(i) =x(i–1) +i +i

r(i) =s – i t

Если ||r||2 / ||r(0)||2tol

то КОНЕЦ (x(i)полученное решение)

увеличить i

Параметры метода полностью совпадают с параметрами метода BiCG.

Пример использования метода BiCGStab в системе TALGAT:

- действительный случай: SET "solve" BICGSTAB_r real_m right_r 0. 1.e-8 150 10 5.e-4;

- комплексный случай: SET "solve" BICGSTAB complex_m right_c 0. 1.e-8 150 10 5.e-4.