Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Метод обобщенных минимальных невязок




Пусть пространства K и L связаны соотношением L = A K, причем в качестве K используется подпространство Крылова Km (n 1, A) с выбором n 1= r 0/b, b=|| r 0||2. Для построения ортонормированного базиса воспользуемся ортогонализацией Арнольди. Вместо проектирования (2.16) рассмотрим эквивалентную задачу минимизации функционала f (x)=|| r x||22 на пространстве K. Так как любой вектор x из пространства (x 0+ K m) может быть записан в виде

x=x0+V m y,

где y вектор размера m. Таким образом, задачу минимизации функционала можно переписать как

y m =argminy||b–A(x0+Vmy)||22.

Вычислительная схема, построенная с использованием таких предпосылок, называется методом обобщенных минимальных невязок (GMRES).

С использованием определения вектора n 1 и соотношений (2.30), (2.32) имеем

r=b–A(x0+V m y)=V m +1(be1 y).

Поскольку матрица V m +1 составлена из ортонормированных столбцов, справедливо равенство

y(y)=f(x0+V m y)=||be1 y||22. (2.47)

Таким образом, для нахождения коэффициентов линейного комбинирования векторов { n i } в GMRES необходимо решить СЛАУ

. (2.48)

которая является переопределенной (так как матрица имеет размерность (m +1)´ m).

Матрица системы (2.48) имеет верхнюю хессенбергову форму. Поэтому (2.48) проще всего решать с помощью предварительного приведения к верхнетреугольному виду; последняя строка при этом обнуляется. С учетом хессенберговой формы наиболее простым вариантом оказываются вращения Гивенса. Всего необходимо m таких вращений G 1, G 2,…, G m, причем G k строится так, чтобы его применение к (hkk, hk +1, k) T обнуляло второй компонент этого вектора.

Структура матриц G 1 и G 2 имеет вид

Числа s и c связаны соотношением s 2+ c 2=1 (это позволяет их интерпретировать как синус и косинус некоторого угла) и определяются как:

Очевидно, что при программной реализации нет необходимости в непосредственном хранении матриц вращения G i, так как каждая такая матрица полностью определяется двумя числами – косинусом и синусом угла поворота – и индексами компонент вектора, к которым применяется вращение.

Основной проблемой в GMRES является выбор размерности m пространства K; хранение базисных векторов этого пространства определяет основные затраты памяти при программной реализации метода, составляющие mN чисел. Наиболее распространенной модификацией GMRES является перезапускаемый GMRES или GMRES(m). Выбирается некоторая размерность m < N, определяемая, по существу, лишь доступным объемом памяти, и после обновления решения x = x 0+ V m y m оно принимается за новое начальное приближение, после чего процесс повторяется.

Далее приведен алгоритм предобусловленного метода GMRES(m) с вращениями Гивенса.

Алгоритм метода GMRES( m ) с вращениями Гивенса

Если необходимо построить матрицу предобусловливателя M
Выбрать m < N и произвольное начальное приближение x(0)
z = b – A x(0)
g=||z||2
Найти r(0) из системы M r(0) =z
b = ||r(0)||2
Создать ((m + 1) ´ m) - матрицу H
Создать вектор (m + 1) - вектор q
Для Nit =1, 2, … до сходимости или до Nitmax
H = 0; q= b e1
n1= r(0)/b
Для i =1,…, m
z=An( i )
Найти w из системы Mw=z
Для k =1,…, i
hki =(w, n( k))
w=w– hki n( k )
увеличить k
hi +1, i =||w||2
n( i +1)=w/ hi +1 ,i
Для k =1,…, i –1
(h 1 i ,…, hi +1 ,i ) T =G k (h 1 i ,…, hi +1 ,i ) T
увеличить k
Построить G i так, что [G ih ×, i ] i +1=0
q=G i q
увеличить i
Решить треугольную СЛАУ H1: p ,1: p y=q1: p
z=b–Ax(0)
Найти r0 из системы Mr0=z
b=||r(0)||2
Продолжать пока b/g³ tol

Алгоритм начинается с того, что требуется задать произвольное начальное условие x( 0) (третий параметр метода). Итерационный процесс продолжается до тех пор, пока не будет получено решение, с точностью определяемое параметром tol (четвертый параметр)или при достижении максимального числа итераций Nitmax (пятый параметр). Также необходимо, чтобы пользователь определил размерности m (шестой параметр).В случае необходимости использовать метод без предобусловливани необходимо инициализировать седьмой параметр нулем. В противном случае необходимо задать:

- 10 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме строки;

- 11 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме столбца;

- 12 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме матрицы;

-20 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме строки;

- 21 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме столбца;

-22 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме матрицы.

Также для использования метода с предобусловливанием необходимо задать точность обнуления (t) определяемую восьмым параметром.

Пример использования метода GMRES(m) с вращениями Гивенса в системе TALGAT:

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

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




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 1814; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.