поддерживаю выше заданые вопросы
|
Умножение разреженных матриц
7. Итерационные методы решения СЛАУ
В данном разделе мы рассмотрим методы решения систем линейных уравнений, принципиально отличающиеся от прямых методов поиска точного решения, рассмотренных в предыдущем разделе. Пусть
( 7.49) |
Итерационный метод , предназначенный для решения системы (7.49), генерирует последовательность векторов , каждый из которых может рассматриваться исследователем как приближенное решение системы (7.49). Начальное приближение – вектор – задает исследователь. Итерационный метод называется сходящимся , если для любого начального приближения последовательность , сходится к точному решению , т.е.
( 7.50) |
На практике используют два критерия остановки итерационных методов одновременно: остановку по точности и остановку по числу итераций. Первый критерий определяется условием
( 7.51) |
( 7.52) |
Второй критерий определяется максимальным числом итераций , на которое готов пойти исследователь. Если номер итерации, которую предстоит выполнить, превышает N, итерация не выполняется, метод завершает работу, вектор трактуется как приближенное решение системы и достигнутая точность метода также сообщается исследователю.
При изучении сходимости итерационных методов и при их реализации в качестве векторной нормы обычно используют евклидову норму , , определяемую суммой модулей всех компонент вектора, норму ,определяемую максимальным модулем компоненты, а также энергетическую норму , порождаемую симметричной, положительно определенной матрицей . Так как в конечномерных нормированных пространствах указанные нормы эквивалентны, для доказательства сходимости метода или для его реализации можно пользоваться любой из перечисленных норм.
Метод простой итерации
Последовательный алгоритм
Метод простой итерации относится к классу явных стационарных одношаговых итерационных методов решения линейных систем вида с симметричной положительно определенной матрицей . Метод определяется формулой с симметричной положительно определенной матрицей . Метод определяется формулой
, где – текущее приближение, – следующее приближение, – фиксированное число, являющееся параметром метода.Формула для вычисления нового приближения по предыдущему может быть записана в виде
, где – невязка приближения с номеромДалее нетрудно записать явные формулы для отыскания компонент нового вектора :
Справедлива следующая теорема о сходимости: если матрица симметрична и положительно определена и параметр метода лежит в интервале , где - максимальное собственное число матрицы , метод сходится к точному решению системы (7.49) с любого начального приближения. Известно, что оптимальным значением параметра является значение
, где и – минимальное и максимальное собственные числа матрицы соответственно.Напомним, что погрешностью приближения с номером называют вектор , определяемый как
, где – точное решение системы . Для метода простой итерации с оптимальным параметром справедлива следующая оценка:Здесь через обозначена среднеквадратичная норма вектора, через – число обусловленности матрицы , согласованное с векторной нормой и в силу этого вычисляемое как
Оценим трудоемкость предложенного алгоритма. Анализ расчетных формул показывает, что они включают одну операцию умножения матрицы на вектор и три операции над векторами (сложение, вычитание, умножение на константу). Общее количество операций, выполняемых на одной итерации, составляет
Таким образом, выполнение итераций метода потребует
операций.Параллельный алгоритм
При распараллеливании итерационных методов линейной алгебры (в частности, метода простой итерации) в первую очередь следует учесть, что выполнение итераций метода осуществляется последовательно и, тем самым, наиболее целесообразный подход состоит в распараллеливании вычислений, реализуемых в ходе выполнения итераций.
Анализ последовательного алгоритма показывает, что основные затраты на -й итерации – порядка операций – состоят в умножении матрицы на вектор текущего приближения . Как результат, при организации параллельных вычислений могут быть использованы известные методы параллельного умножения матрицы на вектор (например, параллельный алгоритм матрично-векторного умножения при ленточном горизонтальном разделении матрицы). Дополнительные вычисления, имеющие порядок сложности , представляют собой операции сложения и умножение на скаляр для векторов. Организация таких вычислений также может быть выполнена в многопоточном режиме.
Несмотря на простоту распараллеливания, данный метод редко применяется, т.к. он обладает существенно меньшей скоростью сходимости по сравнению с иными методами, к рассмотрению которых мы переходим.
Метод верхней релаксации
Рассмотрим систему (7.49) с симметричной, положительно определенной матрицей размера . Обозначим через диагональную матрицу такую, что ее главная диагональ совпадает с главной диагональю матрицы . Через обозначим нижнюю треугольную матрицу такую, что ее ненулевые (поддиагональные) элементы также совпадают с элементами , а главная диагональ является нулевой. Аналогично обозначим через верхнюю треугольную матрицу , ненулевые (наддиагональные) элемен- ты которой совпадают с элементами , а главная диагональ также является нулевой. В этом случае для справедливо представление в виде
( 7.5) |
( 7.54) |
Необходимым условием сходимости метода релаксации с любого начального приближения к точному решению задачи является выполнение условия . Если же матрица симметрична и положительно определена, то выполнение данного условия является также и достаточным. При этом если , то говорят о методе нижней релаксации , а при - о методе верхней релаксации , при метод релаксации будет совпадать с известным методом Зейделя .
Скорость сходимости метода верхней релаксации определяется выбором параметра . Известно [4], что при решении некоторых классов разреженных систем уравнений, метод Зейделя требует итераций, а при надлежащем выборе итерационного параметра метод будет сходиться за итераций.
В общем случае нет аналитической формулы для вычисления оптимального параметра , обеспечивающего наилучшую сходимость. Например, для решения систем уравнений, возникающих при аппроксимации дифференциальных уравнений в частных производных, можно использовать эвристические оценки вида
. где – шаг сетки, на которой проводилась дискретизация.В некоторых случаях можно более точно оценить оптимальный параметр. Известной оценкой [17] является выражение
, где – спектральный радиус матрицы, а – из (7.53). Возникающий при этом вопрос об оценке спектрального радиуса может быть решен численно, например, при помощи степенного метода [2].Также следует отметить, что для ряда задач, возникающих при решении задач математической физики методом сеток, оптимальные параметры метода верхней релаксации найдены аналитически.
Последовательный алгоритм
Получим формулы для отыскания по предыдущему приближению в явном виде.
С учетом того, что , получаем
Далее нетрудно записать явные формулы для отыскания компонент нового вектора:
( 7.55) |
Как следует из формулы (7.55), при подсчете -й компоненты нового приближения все компоненты, индекс которых меньше , берутся из нового приближения , а все компоненты, индекс которых больше либо равен – из старого приближения . Таким образом, после того, как -я компонента нового приближения вычислена, -я компонента старого приближения нигде использоваться не будет. Напротив, для подсчета следующих компонент вектора компоненты с индексом, меньшим или равным , будут использоваться "в новой версии". В силу этого обстоятельства для реализации метода достаточно хранить только одно (текущее) приближение , а при расчете следующего приближения использовать формулу (7.55) для всех компонент по порядку и постепенно обновлять вектор .
Организация параллельных вычислений
При распараллеливании метода верхней релаксации также применим подход, который состоит в распараллеливании вычислений, реализуемых в ходе выполнения итераций.
Анализ последовательного алгоритма показывает, что основные затраты на -й итерации – порядка операций – заключаются в операциях матричного умножения и . Однако напрямую распараллелить эти операции не представляется возможным, т.к. в методе верхней релаксации не только итерации осуществляются последовательно, но и вычисление компонент вектора очередного приближения также осуществляется последовательно, начиная с первой.
Применение ленточного разделения данных, аналогично методу простой итерации, приведет к изменению вычислительной схемы алгоритма. Поэтому одним из возможных способов распараллеливания, сохраняющем в точности последовательность действий метода, состоит в распараллеливании операций, необходимых для получения одной компоненты вектора нового приближения. При этом распараллелить можно вычисление сумм в формуле (7.55).