Метод холецкого в решении системы линейных уравнений

Содержание
  1. Разложение матриц на треугольные множители. Схема Холецкого
  2. Итерационные методы решения систем линейных алгебраических уравнений
  3. Стандартные итерационные методы
  4. Итерации Якоби и Гаусса — Зейделя
  5. Метод Холецкого (нахождение симметричного треугольного разложения)
  6. Содержание
  7. 1 Разложение Холецкого (метод квадратного корня), базовый точечный вещественный вариант для плотной симметричной положительно определённой матрицы
  8. 1.1 [math]LL^T[/math] -разложение
  9. 1.2 [math]LDL^T[/math] -разложение
  10. 2 Разложение Холецкого, блочный вещественный вариант для плотной симметричной положительно определённой матрицы
  11. 3 Разложение Холецкого, точечный вещественный вариант для разреженной симметричной положительно определённой матрицы
  12. 3.1 Основные отличия от случая плотной матрицы
  13. 3.2 Переупорядочивания для уменьшения количества новых ненулевых элементов
  14. 4 Разложение Холецкого, блочный вещественный вариант для разреженной симметричной положительно определённой матрицы
  15. 5 Разложение Холецкого для симметричной незнакоопределенной (седловой) матрицы
  16. 6 Разложение Холецкого для эрмитовой матрицы
  17. 6.1 Точечный вариант
  18. 6.2 Блочный вариант
  19. 7 Использование разложения Холецкого в итерационных методах
  20. 7.1 Ограничивание заполнения в разложении Холецкого
  21. 7.2 Неполное разложение Холецкого по позициям IC( [math]k[/math] )
  22. 7.3 Приближенное разложение Холецкого по значениям IC( [math]tau[/math] )
  23. 7.4 Приближенное разложение Холецкого второго порядка IC( [math]tau_1,tau_2[/math] )
  24. 7.5 Комбинация разложений Холецкого IC( [math]k,tau[/math] ) и IC( [math]tau,m[/math] )
  25. 8 Использование разложения Холецкого в параллельных итерационных алгоритмах
  26. 8.1 Переупорядочивания для выделения блочности
  27. 8.2 Разложение в независимых блоках
  28. 8.3 Разложение в сепараторах
  29. 8.4 Иерархические и вложенные алгоритмы
  30. 8.5 Блочный метод Якоби
  31. 8.6 Аддитивный метод Шварца
  32. 8.7 Неполное обратное треугольное разложения
  33. 9 Решение линейных систем с треугольной матрицей
  34. 9.1 Решение системы с плотной нижнетреугольной матрицей
  35. 9.2 Решение системы с плотной верхнетреугольной матрицей
  36. 9.3 Решение системы с разреженной нижнетреугольной матрицей
  37. 9.4 Решение системы с комплексной треугольной матрицей
  38. 9.5 Решение систем с блочноокаймленными треугольными матрицами
  39. 💡 Видео

Видео:2_4. LU-разложениеСкачать

2_4. LU-разложение

Разложение матриц на треугольные множители. Схема Холецкого

Лекция 3. Метод Холецкого

Метод Гаусса, подробно рассмотренный выше, был и остается основным инструментом для решения систем линейных уравнений. Основным, но не единственным. Нам следует получить представление еще о двух группах методов: 1) методы разложения матрицы на треугольные множители; 2) итерационные методы.

Рассмотрим метод Холецкого, который предназначен для решения систем с симметричными положительно определенными матрицами. Почему нас интересуют именно такие матрицы?

Во-первых, как известно, матрица жесткости (см (1.1)) является симметричной матрицей.

Во-вторых, вспомним, что при использовании метода конечных элементов потенциальная энергия конструкции определяется выражением

Метод холецкого в решении системы линейных уравнений, (3.1)

где q – вектор перемещений конструкции, а K – ее матрица жесткости.

Аналогично, для кинетической энергии системы получено

Метод холецкого в решении системы линейных уравнений, (3.2)

где M – матрица инерции.

В исходном, недеформированном, состоянии Метод холецкого в решении системы линейных уравненийпотенциальная энергия деформации конструкции равна нулю. В то же время любые перемещения точек конструкции приводят к ее деформации и, значит, к увеличению П по сравнению с недеформированным состоянием. Таким образом, исходя только из соображений физического смысла, мы пришли к выводу о положительной определенности матрицы жесткости. Подобные соображения можно привести и для матрицы инерции.

Теорема Холецкого. Если A – симметричная положительно определенная матрица, то существует действительная невырожденная нижняя треугольная матрица L такая, что Метод холецкого в решении системы линейных уравнений, т.е.

Метод холецкого в решении системы линейных уравнений

Согласно этой теореме мы можем заменить в исходной системе линейных уравнений Метод холецкого в решении системы линейных уравненийматрицу Метод холецкого в решении системы линейных уравненийна ее разложение:

Метод холецкого в решении системы линейных уравнений. (4)

Если мы обозначим Метод холецкого в решении системы линейных уравнений, то можем легко решить задачу в два этапа:

1) Метод холецкого в решении системы линейных уравнений— определяем y;

2) Метод холецкого в решении системы линейных уравнений— определяем x.

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

Остается только научиться строить матрицу L.

Вспомним определение произведения матриц: Метод холецкого в решении системы линейных уравнений. Следовательно, элемент Метод холецкого в решении системы линейных уравненийесть произведение i-й строки матрицы L на j-й столбец матрицы Метод холецкого в решении системы линейных уравнений:

Метод холецкого в решении системы линейных уравнений. (3.5)

Учтем симметричность матрицы A. Это значит, что мы можем ограничиться рассмотрением только элементов нижнего треугольника матрицы A Метод холецкого в решении системы линейных уравнений:

Метод холецкого в решении системы линейных уравнений. (3.6)

Теперь для получения удобных для использования формул полезно записать это выражение отдельно для поддиагональных и для диагональных элементов матрицы A:

Метод холецкого в решении системы линейных уравнений(3.7)

Кстати, эти формулы позволяют понять, почему в теореме Холецкого содержится ограничение, которое требует положительной определенности матрицы Метод холецкого в решении системы линейных уравнений. Если попытаться применить формулы (3.7) к матрице, не являющейся положительно определенной, то это приведет либо к получению отрицательного числа под знаком квадратного корня при вычислении Метод холецкого в решении системы линейных уравнений, либо к некорректной операции деления на ноль при вычислении Метод холецкого в решении системы линейных уравнений.

Пример. Найти по схеме Холецкого решение системы:

Метод холецкого в решении системы линейных уравнений(3.8)

Матрица этой системы

Метод холецкого в решении системы линейных уравнений(3.9)

в результате применения формул (3.7)

Метод холецкого в решении системы линейных уравнений

представляется в виде разложения Метод холецкого в решении системы линейных уравнений, где

Метод холецкого в решении системы линейных уравнений(3.10)

Теперь находим решение исходной системы путем решения двух треугольных систем:

1) Метод холецкого в решении системы линейных уравнений

2) Метод холецкого в решении системы линейных уравнений

Видео:Метод Крамера за 3 минуты. Решение системы линейных уравнений - bezbotvyСкачать

Метод Крамера за 3 минуты. Решение системы линейных уравнений - bezbotvy

Итерационные методы решения систем линейных алгебраических уравнений

Видео:LU Разложение матрицыСкачать

LU Разложение матрицы

Стандартные итерационные методы

В разделах Метод исключения Гаусса и Методы решения систем с симметричными матрицами процедуры решения систем алгебраических уравнений были связаны с разложением матрицы коэффициентов ( A ). Методы такого типа называются прямыми методами. Противоположностью прямым методам являются итерационные методы. Эти методы порождают последовательность приближенных решений ( < x^> ). При оценивании качества итерационных методов в центре внимания вопрос от том, как быстро сходятся итерации ( x^ ).

Итерации Якоби и Гаусса — Зейделя

Простейшей итерационной схемой, возможно, являются итерации Якоби. Они определяются для матриц с ненулевыми диагональными элементами. Идею метода можно представить, используя запись ( 3 times 3 )-системы ( Ax = b ) в следующем виде: $$ begin x_1 &= (b_1 — a_x_2 — a_x_3) / a_, \ x_2 &= (b_2 — a_x_1 — a_x_3) / a_, \ x_3 &= (b_3 — a_x_1 — a_x_2) / a_. \ end $$ Предположим, что ( x^ ) — какое-то приближение к ( x = A^b ). Чтобы получить новое приближение ( x^ ), естественно взять: $$ begin x_1^ &= (b_1 — a_x_2^ — a_x_3^) / a_, \ x_2^ &= (b_2 — a_x_1^ — a_x_3^) / a_, \ x_3^ &= (b_3 — a_x_1^ — a_x_2^) / a_. \ end $$

Эти формулы и определяют итерации Якоби в случае ( n = 3 ). Для произвольных ( n ) мы имеем $$ begin tag x_i^ = left( b_i — sum_^ a_x_j^ — sum_^ a_x_j^ right)/a_, quad i = 1, 2, ldots, n. end $$

Заметим, что в итерациях Якоби при вычислении ( x_i^ ) не используется информация, полученная в самый последний момент. Например, при вычислении ( x_2^ ) используется ( x_1^ ), хотя уже известна компонента ( x_1^ ). Если мы пересмотрим итерации Якоби с тем, чтобы всегда использовать самые последние оценки для ( x_i ), то получим: $$ begin tag x_i^ = left( b_i — sum_^ a_x_j^ — sum_^ a_x_j^ right)/a_, quad i = 1, 2, ldots, n. end $$ Так определяется то, что называется итерациями Гаусса — Зейделя.

Для итераций Якоби и Гаусса — Зейделя переход от ( x^ ) к ( x^ ) в сжатой форме описывается в терминах матриц ( L, D ) и ( U ), определяемых следующим образом: $$ begin L &= begin 0 & 0 &cdots & cdots & 0 \ a_ & 0 &cdots & cdots & 0 \ a_ & a_ & 0 & cdots & 0 \ vdots & vdots & vdots & ddots &vdots\ a_ & a_ & cdots & a_ & 0 end, \ D &= mathrm(a_, a_, ldots, a_), \ U &= begin 0 & a_ &a_ & cdots & a_ \ 0 & 0 & a_ & cdots & a_ \ vdots & vdots & ddots & ddots &vdots\ 0 & 0 & cdots & 0 & a_ \ 0 & 0 & cdots & 0 & 0 end. end $$ Шаг Якоби имеет вид ( M_J x^ = N_J x^ + b ), где ( M_J = D ) и ( N_J = -(L+U) ). С другой стороны, шаг Гаусса — Зейделя определяется как ( M_G x^ = N_G x^ + b ), где ( M_G = (D+L) ) и ( N_G = -U ).

Процедуры Якоби и Гаусса — Зейделя — это типичные представители большого семейства итерационных методов, имеющих вид $$ begin tag M x^ = N x^ + b, end $$ где ( A = M-N ) — расщепление матрицы ( A ). Для практического применения итераций (9) должна «легко» решаться система с матрицей ( M ). Заметим, что для итераций Якоби и Гаусса — Зейделя матрица ( M ) соответственно диагональная и нижняя треугольная.

Сходятся ли итерации (9) к ( x = A^b ), зависит от собственных значений матрицы ( M^N ). Определим спектральный радиус произвольной ( n times n )-матрицы ( G ) как $$ rho(G) = max , $$ тогда если матрица ( M ) невырожденная и ( rho(M^N) —>

Видео:Матричный метод решения систем уравненийСкачать

Матричный метод решения систем уравнений

Метод Холецкого (нахождение симметричного треугольного разложения)

Основные авторы описания: И.Н.Коньшин

Видео:Решение системы уравнений методом ГауссаСкачать

Решение системы уравнений методом Гаусса

Содержание

Видео:Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минутСкачать

Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минут

1 Разложение Холецкого (метод квадратного корня), базовый точечный вещественный вариант для плотной симметричной положительно определённой матрицы

1.1 [math]LL^T[/math] -разложение

Разложение Холецкого — представление симметричной положительно определённой матрицы [math]A=A^Tgt 0[/math] в виде произведения [math]A = LL^T[/math] , где [math]L[/math] — нижняя (Lower) треугольная матрица со строго положительными элементами на диагонали. Иногда разложение удобно записать в эквивалентной форме [math]A = U^TU[/math] , где [math]U = L^T[/math] — верхняя (Upper) треугольная матрица. Для любой симметричной положительно определённой матрицы разложение Холецкого существует и единственно.

Элементы матрицы [math]L[/math] можно вычислить, начиная с верхнего левого угла матрицы [math]A[/math] , по формулам:

Выражение под квадратным корнем всегда положительно, если [math]A[/math] — вещественная симметричная положительно определённая матрица.

Вычисление происходит сверху вниз, слева направо, т.е. сначала вычисляется [math]L_[/math] ( [math]j lt i[/math] ), а уже затем [math]L_[/math] . Вычисления обычно проводятся в одной из следующих последовательностей.

  • Алгоритм Холецкого-Банашевича (Cholesky–Banachiewicz algorithm) или просто алгоритм Холецкого, когда вычисления начинаются с верхнего левого угла матрицы [math]L[/math] и проводятся по строкам. Этот вариант разложения используется наиболее часто, особенно при использовании построчного формата хранения элементов матрицы [math]L[/math] .
  • Краут-вариант алгоритма Холецкого (Cholesky–Crout algorithm), когда вычисления также начинаются с верхнего левого угла матрицы [math]L[/math] , но проводятся по столбцам. Этот вариант разложения используется несколько реже, применяется он при использовании столбцевого формата хранения элементов матрицы [math]L[/math] , а также когда необходимо проводить коррекцию ведущих элементов при выполнении приближенного разложения.

Оба варианта разложения могут быть применены если требуется построить нижнетреугольный сомножитель [math]L[/math] прямо поверх исходной матрицы [math]A[/math] .

В разделе Разложение Холецкого (метод квадратного корня) подробно рассмотрен базовый точечный вещественный вариант для плотной симметричной положительно определённой матрицы.

1.2 [math]LDL^T[/math] -разложение

Иногда удобнее бывает рассматривать [math]LDL^T[/math] вариант симметричного треугольного разложения, в котором матрица [math]L[/math] является нижней унитреугольной (т.е. имеет единицы на главной диагонали), а [math]D[/math] — диагональная матрица с положительными элементами. В этом варианте разложения легко проследить связь как с ранее рассмотренным [math]LL^T[/math] вариантом:

[math]A = LDL^T = LD^D^L^T = (LD^),(LD^)^T = tilde L tilde L^T,[/math]

так и с несимметричным [math]LU[/math] -разложением:

[math]A = LDL^T = L(DL^T) = LU.[/math]

Видео:Линал 3.9. LU-разложениеСкачать

Линал  3.9. LU-разложение

2 Разложение Холецкого, блочный вещественный вариант для плотной симметричной положительно определённой матрицы

Можно также рассмотреть блочный вариант разложения Холецкого. Предположим, что [math]n=MN[/math] , тогда исходную матрицу [math]A[/math] размера [math]ntimes n[/math] можно представить как блочную матрицу размера [math]Ntimes N[/math] с блоками размера [math]Mtimes M[/math] . Все формулы, используемые для получения точечного разложения Холецкого, для блочной матрицы [math]A[/math] останутся практически без изменений. Вместо явного обращения диагональных блоков, эффективнее хранить их в факторизованном виде [math]D_=L_L^T_[/math] , а вместо операции деления использовать соответствующие операции решения для треугольных систем. Общее количество арифметических операций при этом останется практически неизменным, но зато существенно возрастет локальность вычислений. Размер блока [math]M[/math] выбирают таким образом, чтобы все блоки, участвующие в операции исключения, помещались в кэш первого или второго уровня. В этом случае подкачки данных в память будут минимальными.

Аналогичный прием понадобится также и для эффективной реализации параллельной версии разложения Холецкого, что позволит минимизировать как общее количество межпроцессорных обменов, так и количество пересылаемой между процессорами информации. Полезным побочным эффектом применения блочной версии разложения Холецкого может стать повышение скалярной эффективности алгоритма за счет явного использования размера блока [math]M[/math] во внутренних циклах (прием «разворачивание цикла» или «loop unrolling»).

Видео:LU разложение матрицыСкачать

LU разложение матрицы

3 Разложение Холецкого, точечный вещественный вариант для разреженной симметричной положительно определённой матрицы

Если исходная матрица [math]A[/math] представлена в разреженном виде, то для экономии памяти, а также арифметических операций, необходимо учитывать ее разреженность.

3.1 Основные отличия от случая плотной матрицы

В этом разделе необходимо рассмотреть матрицы, характеризующиеся способом хранения ненулевых элементов, и имеющие следующие виды разреженности.

  • Лента — матрица, ненулевые элементы которой сосредоточены внутри ленты шириной [math]2d+1[/math] , т.е. когда [math]a_=0[/math] при [math]|i-j| gt d[/math] . В этом случае, при проведении разложения Холецкого новые ненулевые элементы могут образовываться только внутри этой же ленты (поскольку нет выбора ведущих элементов в силу положительной определенности матрицы [math]A[/math] ). Количество ненулевых элементов в исходной матрице [math]A[/math] , а также в нижнетреугольном множителе [math]L[/math] будет около [math](d+1)n[/math] , а арифметические затраты составят приблизительно [math]d^2n[/math] .
  • Профиль — в более общем случае, заполнение в каждой строке треугольного множителе [math]L[/math] будет определяться позицией первого ненулевого элемента. Сумма по всем строкам расстояний от первого ненулевого элемента строки до главной диагонали и составляет «профиль» матрицы и определяет верхнюю границу количества ненулевых элементов в нижнетреугольном множителе [math]L[/math] .
  • Общая структура разреженности. Верхней границей заполнения треугольного множителя [math]L[/math] , конечно же, будет значение «профиля» матрицы, но учет особенностей структуры ненулевых элементов внутри профиля иногда может дать дополнительный эффект в повышении эффективности вычислений.

При рассмотрении общего случая разреженности необходимо выбрать формат хранения разреженных данных. Таковым может быть, например, формат построчного сжатия данных («compressed sparse row» или CSR формат). В первом вещественном массиве, подряд (обычно в порядке возрастания номеров столбцов) хранятся ненулевые элементы матрицы, во втором, в том же порядке хранятся номера столбцов, в третьем, отдельно сохраняется начало каждой строки. Если общее количество ненулевых элементов в матрице равно nnz («number of nonzeros»), то память для хранения разреженных данных такой матрицы в формате CSR при использовании двойной точности составит [math]3,+n+1[/math] . Оценку количества арифметических операций в общем случае невозможно, т.к. помимо количества ненулевых элементов в исходной матрице оно существенно зависит от структуры ее разреженности.

Для реализации разложения Холецкого в этом случае понадобится несколько операций с разреженными строками:

  • копирование из одной разреженной строки в другую (или во временный «плотный» вектор, операция распаковки данных);
  • выполнение операции исключения для одного из элементов строки;
  • вставка в строку нового ненулевого элемента («fill-in»);
  • сжатие данных с копированием из временного плотного вектора в сжатый разреженный (операция упаковки данных).

3.2 Переупорядочивания для уменьшения количества новых ненулевых элементов

Структура треугольного множителя [math]L[/math] , а также объем памяти им занимаемый зависят от упорядочивания строк и столбцов исходной матрицы [math]A[/math] , в котором проводилось разложение. Существуют алгоритмы, минимизирующие заполнение матрицы [math]L[/math] .

  • В первую очередь это алгоритм RCM (Reverse Cuthill–McKee), который предназначен для уменьшения профиля матрицы. Одновременно с уменьшением профиля происходит и уменьшение заполнения треугольного множителя [math]L[/math] . Это очень широко применяемый, быстрый, но не самый эффективный алгоритм.
  • Алгоритм вложенных сечений (Nested Dissection, ND) — служит именно для минимизации заполнения множителя [math]L[/math] . В некоторых частных случаях доказана его асимптотическая оптимальность.

В общем случае, проблема поиска перестановки, минимизирующей заполнение множителя [math]L[/math] , является NP-полной задачей.

Видео:Решение системы линейных уравнений методом ГауссаСкачать

Решение системы линейных уравнений методом Гаусса

4 Разложение Холецкого, блочный вещественный вариант для разреженной симметричной положительно определённой матрицы

Иногда разреженную симметричную матрицу бывает удобно представить в блочном виде с блоками небольшого размера [math]M[/math] , равного, например, количеству неизвестных функций на узел при конечно-элементной или конечно-разностной аппроксимации уравнений в частных производных. В этом случае структура разреженности хранится для всей блочной структуры разреженности (что позволяет экономить память на хранении целочисленных массивов). Если общее количество ненулевых блоков размера [math]Mtimes M[/math] в матрице равно nnz («number of nonzeros»), то память для хранения разреженных данных такой мелкоблочной матрицы в формате CSR при использовании двойной точности составит [math](2M^2+1),+n/M+1[/math] .

В некоторых случаях, размер блока [math]M[/math] может выбираться из других соображений, например, для повышения эффективности работы процедур нижнего уровня за счет приема разворачивания циклов (loop unrolling).

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

Видео:ПОСМОТРИ это видео, если хочешь решить систему линейных уравнений! Метод ПодстановкиСкачать

ПОСМОТРИ это видео, если хочешь решить систему линейных уравнений! Метод Подстановки

5 Разложение Холецкого для симметричной незнакоопределенной (седловой) матрицы

Если симметричная матрица [math][/math] представима в виде

где [math]A[/math] — симметричная положительно определенная ( [math]A=A^Tgt 0[/math] ) и [math]C[/math] — симметричная неотрицательно определенная ( [math]C=C^Tge0[/math] ) матрицы, то, выполнив один шаг блочного исключения, ее можно преобразовать к виду

[math] begin A & 0 \ 0 & S end , [/math]

где матрица дополнения по Шуру [math]S=-(C+B^TA^B)[/math] является строго отрицательно определенной ( [math]S=S^Tlt 0[/math] ). Это означает, что матрица [math][/math] имеет [math]n_A[/math] положительных и [math]n_C[/math] отрицательных собственных значений, где через [math]n_A[/math] и [math]n_C[/math] обозначены размерности матриц [math]A[/math] и [math]C[/math] , соответственно.

В этом случае существует симметричное треугольное разложение вида [math]=D^T[/math] , где [math][/math] является нижней унитреугольной, а диагональная матрица [math]D[/math] содержит [math]n_A[/math] положительных и [math]n_C[/math] отрицательных элементов на главной диагонали, причем такое разложение может быть получено напрямую без выбора ведущего элемента даже если [math]C[/math] — нулевая матрица.

В общем случае разложения невырожденной незнакоопределенной системы необходимо применять выбор ведущего элемента с главной диагонали матрицы, что соответствует некоторой симметричной перестановке строк и столбцов исходной матрицы [math][/math] .

Видео:Базисные решения систем линейных уравнений (01)Скачать

Базисные решения систем линейных уравнений (01)

6 Разложение Холецкого для эрмитовой матрицы

Эрмитовой (или комплексно-самосопряженной) матрицей называют такую квадратную комплексную матрицу [math]A[/math] , для элементов которой выполняется соотношение [math]a_=overline<a_>[/math] (здесь, если [math]z=a+b,[/math] и [math]^2=-1[/math] , то [math]overline z=a-b,[/math] ). В матричном виде это можно записать как [math]A=overline[/math] или [math]A = A^*[/math] .

6.1 Точечный вариант

Как естественное обобщение точечного разложения Холецкого для симметричной положительно определеной матрицы может быть рассмотрено разложение Холецкого для эрмитовой положительно определеной матрицы. Все формулы для вычисления разложения остаются прежними, только теперь вместо операций над вещественными числами выполняются аналогичные комплексные операции:

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

6.2 Блочный вариант

Реализация блочного варианта разложения Холецкого для эрмитовых матриц аналогична рассмотренному выше блочному варианту для вещественных матриц.

7 Использование разложения Холецкого в итерационных методах

При выполнении разложения Холецкого в арифметике с фиксированной машинной точностью полученные треугольный фактор [math]L[/math] и само решение может оказаться недостаточно точным. Для получения более точного решения может применяться некоторый итерационный метод (например, метод сопряженных градиентов), с использованием полученного разложения [math]LL^T[/math] в качестве предобусловливателя.

Основной причиной формирование неполного или неточного разложения в качестве предобусловливателя чаще всего бывает требование экономии памяти.

7.1 Ограничивание заполнения в разложении Холецкого

При выполнении разложения Холецкого для разреженной матрицы, может образовываться такое большое количество новых ненулевых элементов, что оперативной памяти на хранение полного разложения окажется недостаточно. В этом случае можно построить неполное или приближенное разложение для применения его в дальнейшем в качестве предобусловливателя. В англоязычной литературе для обозначения таких разложения применяют единый термин Incomplete Cholesky factorization, или сокращенно IC-разложение.

7.2 Неполное разложение Холецкого по позициям IC( [math]k[/math] )

Неполное разложение Холецкого можно получить используя заранее выбранные ограничения по структуре заполнения. Чаще всего получают разложение Холецкого на тех же позициях, в которых находятся ненулевые элементы исходной матрицы [math]A[/math] . Такое разложение обозначают IC(0) или просто IC0.

Если качества разложения IC0 оказывается недостаточно, то можно выбрать более широкую структуру треугольного множителя [math]L[/math] , например, разрешить образование одного уровня новых ненулевых элементов от исходной структуры матрицы [math]A[/math] . Формально, это означает заполнение внутри структуры матрицы [math]A^2[/math] , а такое разложение обозначают IC(1).

Можно рассмотреть и более общий случай, с заполнением внутри структуры матрицы [math]A^[/math] , где [math]k geq 0[/math] . Такое разложение обозначают IC( [math]k[/math] ).

Обычно с ростом значения [math]k[/math] точность неполного разложения IC( [math]k[/math] ) возрастает, хотя это совсем не является обязательным даже для симметричных положительно определенных матриц, полное разложение для которых существует и находится однозначно. Из-за неполноты разложения на главной диагонали могут оказаться нулевые или даже отрицательные элементы. Чтобы завершить треугольное разложение в таких случаях применяют предварительный диагональный сдвиг исходной матрицы [math]A+varepsilon I[/math] перед ее разложением. Здесь [math]varepsilongt 0[/math] — малый параметр, а [math]I[/math] — диагональная матрица. Если слишком малый или не положительный диагональный элемент образуется в процессе разложения, то применяют его замену на некоторое заранее выбранное значение. Такую операцию называют диагональной коррекцией разложения.

Неполное разложение IC( [math]k[/math] ) иногда называют также «разложение по позициям».

7.3 Приближенное разложение Холецкого по значениям IC( [math]tau[/math] )

Для контроля заполнения в треугольном множителе [math]L[/math] разложения Холецкого, кроме структурных ограничений, можно также применить ограничение разложения в зависимости от значения самих элементов разложения. Например, можно сохранять только элементы, большие по модулю чем некоторый малый параметр [math]taugt 0[/math] . В этом случае разложение называют приближенным разложением Холецкого или разложением «по значению» и обозначают IC( [math]tau[/math] ). Величину [math]tau[/math] называют «порогом» разложения или «порогом» фильтрации.

Вполне правомерным является ожидание того, что в уменьшением [math]tau[/math] точность полученного разложения будет возрастать, правда за счет роста количества ненулевых элементов в треугольном множителе [math]L[/math] . Недостатком же такого разложения является то, что, в общем случае, предсказать заполнение [math]L[/math] не возможно.

С точки зрения устойчивости разложения вариант приближенного разложения Холецкого является более предпочтительным, хотя применение предварительного диагонального сдвига, а также диагональной коррекции также допускается. Если же описанные приемы не помогаю получить разложения достаточной точности, то можно применить прием модификации диагонали Азиза-Дженингса, который при отбрасывании малого элемента разложения [math]ell_[/math] состоит в добавлении модуля этого элемента к диагональным элементам разложения [math]ell_[/math] и [math]ell_[/math] . Это прием гарантирует существование приближенного разложения для любой симметричной положительно определенной матрицы [math]A[/math] . Наиболее эффективно этот прием модификации главной диагонали можно организовать при использовании Ктаут-версии разложения Холецкого.

7.4 Приближенное разложение Холецкого второго порядка IC( [math]tau_1,tau_2[/math] )

Для повышения точности приближенного разложения можно применить «двухпороговую» версию приближенного разложения Холецкого. Основная идея такого разложения, называемого разложением Тисменецкого-Капорина, состоит в том чтобы вычисление разложения проводить в более высокой точности [math]tau_2[/math] , а сохранять в треугольном множителе только значения, которые по модулю не меньше [math]tau_1[/math] . Обычно полагают [math]tau_1=tau[/math] и [math]tau_2=tau^2[/math] , в этом случае разложение называют разложением «второго порядка», т.к. элементы матрицы ошибок оказываются по модулю меньше чем [math]tau^2[/math] . Для обозначения симметричного порогового разложения второго порядка используют обозначение IC2, которое не следует путать со структурным разложением IC(2) (т.е. разложением IC( [math]k[/math] ), где [math]k=2[/math] ).

Такое разложение обычно используется вместе с приемом Азиза-Дженингса для модификации диагональных элементов, получая вариант «безотказного» разложения для любой симметричной положительно определенной матрицы [math]A[/math] . Этот вариант разложения позволяет получать наиболее точные разложения (при одинаковом заполнении множителя [math]L[/math] ), хотя для их вычисления приходится тратить больше времени на вычисление самого разложения.

7.5 Комбинация разложений Холецкого IC( [math]k,tau[/math] ) и IC( [math]tau,m[/math] )

Для экономии памяти при вычислении неполного или приближенного разложения Холецкого можно использовать следующие два варианта симметричных треугольных разложений.

Для контроля верхней границы заполнения треугольного множителя [math]L[/math] можно предложить использовать заполнение как и для разложения IC( [math]k[/math] ), при некотором выбранном значении [math]k[/math] . Для дальнейшей экономии памяти разложение в заданной структуре разреженности можно вести с использованием порога разложения [math]tau[/math] , как и при проведении разложения IC( [math]tau[/math] ). Такую комбинацию можно назвать IC( [math]k,tau[/math] )-разложением. Применяться она может, например, при необходимости априорных структурных ограничений для минимизации обменов при использовании параллельной версии разложения для распределенной памяти.

Второй вариант структурно-порогового разложения можно описать следующим образом. При проведении обычного порогового IC( [math]tau[/math] ) разложения, наложим дополнительное ограничение на элементы строк матрицы [math]L[/math] : разрешим сохранение только не более чем [math]m[/math] наибольших по модулю элементов рассматриваемой строки множителя [math]L[/math] . При общей размерности задачи [math]n[/math] в матрице [math]L[/math] будет не более чем [math]nm[/math] элементов. Такой подход представляется разумным, например, для матриц полученных в результате дискретизации с достаточно регулярным шаблоном. Наиболее известен несимметричный вариант такого разложения, предложенного Саадом и называемого ILUT-разложением.

Видео:Метод ХалецкогоСкачать

Метод Халецкого

8 Использование разложения Холецкого в параллельных итерационных алгоритмах

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

8.1 Переупорядочивания для выделения блочности

Для того чтобы выделить независимые блоки вычислений, можно использовать симметричные перестановки строк и столбцов исходной матрицы, приводящие ее к блочно окаймленному виду. В этом случае основная часть работы будет сосредоточена в независимых блоках, которые могут обрабатываться параллельно и без обменов данными.

Наиболее простым, но не слишком эффективных способом упорядочивания является предварительное упорядочивание матрицы с помощью обратного алгоритма Катхилла-Макки (RCM, reverse Cuthill—McKee) для минимизации ширины профиля, а затем равномерное разбиение по блокам (процессорам) в новом упорядочивании. После присваивания номера процессора каждой вершине графа матрицы, в независимые блоки можно выделить те вершины графа, которые связаны только с вершинами, имеющими тот же номер процессора (т.е. являющимися внутренними вершинами). Остальные вершины можно объединить в последний блок окаймления, который будет обрабатываться отдельно. Все вычисления внутри блоков будут независимы и могут выполняться параллельно. Для повышения эффективности треугольной факторизации внутренние вершины каждого из блоком можно также упорядочить с помощью метода RCM.

Более эффективными с точки зрения минимизации ширины окаймления будут следущие методы:

  • Метод минимальных сепараторов, который заключается в последовательном нахождении имеющих минимальный размер разделителей (сепараторов), обеспечивающих расщепление оставшихся вершин на два независимых блока.
  • Метод минимальной степени (Minimum Degree, MD). Прямое применение этого метода к матрицах большого размера затруднительно, поэтому используется приближенный метод минимальной степени (Approximate Minimum Degree, AMD).
  • Метод вложенных сечений (Nested Dissection, ND). Это рекурсивный алгоритм, на каждом шаге разделяющий множество вершин на два независимых блока, представленые в [math]2times2[/math] блочно-окаймленном виде.

В качестве побочного положительного эффекта от такого упорядочивания, для некоторого вида матриц доказано, что полное разложение будет иметь почти минимально возможное количество ненулевых элементов. Нахождение оптимальной перестановки в общем случае является NP-полной задачей.

Существуют и другие алгоритмы упорядочивания матриц для наиболее оптимального их распределения по процессорам. Наиболее популярными являются последовательные пакеты METIS, JOSTLE, SCOTCH, CHACO, PARTY, а также параллельные коды PARMETIS, JOSTLE, PT-SCOTCH и ZOLTAN. Многие из них являются свободно распространяемыми.

8.2 Разложение в независимых блоках

Вычисления в независимых блоках полностью независимы и могут выполняться параллельно без обменов данными между процессорами. Единственным недостатком может быть лишь то, что для пороговых разложений количество арифметических операций на различных процессорах может различаться, что может привести к некоторой несбалансированности вычислений.

8.3 Разложение в сепараторах

Последний блок, в котором собраны сепараторы всех блоков при небольшом количестве используемых процессоров может обрабатываться, например, на одном головном процессоре. Если же процессоров достаточно много, но обработку сепараторов также необходимо производить совместно.

8.4 Иерархические и вложенные алгоритмы

Для обработки сепараторов могут быть применены те же алгоритмы упорядочивания и выделения независимых блоков что и для исходной задачи. Этот же прием может быть применен и на следующем шаге, с получением иерархического или вложенного алгоритма.

В случае применения порогового разложения такие построения могут быть явно применены к построенному дополнению по Шуру. Для структурных факторизаций существуют приложения сразу строящие многоуровневые упорядочивания и обеспечивающие минимальность заполнения и обменов.

8.5 Блочный метод Якоби

Описанные выше подходы относились к типу «прямого» или «явного» разложения, когда при отбрасывании элементов разложения в расчет принимались только их абсолютные значения. Структурные свойства при этом являлись подчиненными и на отбрасывание элементов никак не влияли.

Альтернативным является подход, когда из-за соображений увеличения ресурса параллелизма некоторые элементы отбрасываются исключительно из структурных соображений. Например, можно сначала распределить строки матрицы по процессорам, а затем перед проведением разложения просто отбросить все элементы связывающие один процессор с другим. В этом случае разложение будет проходить полностью независимо в каждом из блоков. Внутри каждого блока может проводиться любой из структурных или пороговых вариантов разложения Холецкого. Построение такого предобусловливателя называют блочным методом Якоби без перекрытия блоков (Block Jacobi, BJ). Такое предобусловливание является наиболее простым, применение его наиболее параллельным (полностью без обменов данными), правда сходимость может оставлять желать лучшего, почти независимо от качества разложения внутри каждого из блоков.

8.6 Аддитивный метод Шварца

Разложение гораздо более высокого качества по сравнению с методом Якоби можно получить применяя аддитивный метод Шварца (Additive Schwarz, AS). Иногда этот метод называют также методом Якоби с перекрытиями. Суть его заключается в расширении структуры каждого из блоков матрицы за счет добавления нескольких слоев близлежащих строк матрицы. Треугольное разложение строится для расширенной матрицы, таким образом на каждом из процессоров происходит решение расширенной подзадачи с привлечением данных от других процессоров. После нахождения решения подзадачи на каждом из процессоров обычно происходит отбрасывание не локальных компонент решения. Такой вариант метода называют аддитивный метод Шварца с ограничениями (Restricted Additive Schwarz, RAS).

Сходимость аддитивного метода Шварца бывает гораздо выше чем сходимость метода Якоби, и обычно монотонно улучшается с ростом размера перекрытия. Несмотря на дополнительные вычисление и обмены, общее время решения на параллельном компьютере может быть существенно меньше.

8.7 Неполное обратное треугольное разложения

Существует и другой вариант аддитивного разложения, который кроме несколько более быстрой сходимости опирается на построение перекрытий блоков только в одну сторону («назад», т.е. в сторону меньших номеров строк). Название этого метода блочное неполного обратного разложения Холецкого, имеющее только английскую аббревиатуру BIIC (Block Incomplete Inverse Cholesky). Позднее, вместе с рассмотрением несимметричного варианта разложения (BIILU), этот метод стал называться методом неполного обратного треугольного разложения, или НОТ-разложения.

Комбинация этого метода с неполным симметричным треугольным разложением второго порядка IC2 внутри каждого из блоков имеет обозначение BIIC2.

Идея этого метода впервые была предложена И.Е.Капориным в виде последовательного алгоритма. В литературе встречается также название этого метода как метод Капорина-Коньшина, по имени авторов впервые представивших его параллельную реализацию и проанализировавших ее свойства.

Видео:Система линейных уравнений. Метод обратной матрицы. Матричный метод.Скачать

Система линейных уравнений. Метод обратной матрицы. Матричный метод.

9 Решение линейных систем с треугольной матрицей

Разложение Холецкого может применяться для решения системы линейных уравнений [math]Ax = b[/math] , если матрица [math]A[/math] симметрична и положительно определена. Выполнив разложение [math]A = LL^T[/math] , решение [math]x[/math] получается последовательным решением двух треугольных систем уравнений [math]Ly = b[/math] и [math]L^T x = y[/math] .

9.1 Решение системы с плотной нижнетреугольной матрицей

Решение линейной системы с плотной нижнетреугольной матрицей [math]L y = b[/math] можно представить в виде «прямого» хода, т.е. цепочки вычислений, начиная с верхнего угла матрицы [math]L[/math] по возрастанию номера строки [math]i[/math] :

[math] begin y_ & = b_, \ y_ & = b_ — sum_^ ell_ y_, quad i = 2. n. end [/math]

В разделе Прямая_подстановка_(вещественный_вариант) содержится подробное описание алгоритма и его анализ.

9.2 Решение системы с плотной верхнетреугольной матрицей

Решение линейной системы с плотной верхнетреугольной матрицей [math]U x = y[/math] (где, например, [math]U=L^T[/math] ) можно представить в виде «обратного» хода, т.е. цепочки вычислений, начиная с нижнего угла матрицы [math]U[/math] при убываниии номера строки [math]i[/math] :

[math] begin x_ & = y_/u_, \ x_ & = left (y_ — sum_^ u_ x_ right ) / u_, quad i = n — 1. 1. end [/math]

В разделе Обратная_подстановка_(вещественный_вариант) содержится подробное описание алгоритма и его анализ.

9.3 Решение системы с разреженной нижнетреугольной матрицей

Решение линейных систем с разреженной нижне- или верхнетреугольной матрицей аналогично рассмотренным алгоритмам для плотных матриц, при этом подстановки ведутся исключительно для ненулевых элементов с учетом идеи работы с разреженными матрицами.

9.4 Решение системы с комплексной треугольной матрицей

Решение линейных систем с комплексной нижне- или верхнетреугольной матрицей аналогично рассмотренным алгоритмам для вещественных матриц, при этом арифметические операции выполняются в комплексной арифметике, аналогично операциям раздела факторизации эрмитовых матриц.

9.5 Решение систем с блочноокаймленными треугольными матрицами

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

💡 Видео

Решение системы линейных уравнений с двумя переменными способом подстановки. 6 класс.Скачать

Решение системы линейных уравнений с двумя переменными способом подстановки. 6 класс.

Математика без Ху!ни. Метод Гаусса. Совместность системы. Ранг матрицы.Скачать

Математика без Ху!ни. Метод Гаусса. Совместность системы. Ранг матрицы.

А.7.34 LU-факториризация, LUP-факторизация и разложение ХолецкогоСкачать

А.7.34 LU-факториризация, LUP-факторизация и разложение Холецкого

2.1 Точные методы решения СЛАУ (Крамера, Гаусса, Жордана, прогонки)Скачать

2.1 Точные методы решения СЛАУ (Крамера, Гаусса, Жордана, прогонки)

Вычислительная математика, 5 семестр. Лекция 3Скачать

Вычислительная математика, 5 семестр. Лекция 3

Решение системы уравнений методом Крамера 2x2Скачать

Решение системы уравнений методом Крамера 2x2
Поделиться или сохранить к себе: