Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник_Вс.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
13 Мб
Скачать
☆

2.2.2. Решение системы линейных уравнений методом Гаусса с помощью вс типов «решётка» и «линейка»

Рассмотрим широко известный алгоритм рещения СЛАУ отличающийся простотой реализации. Пусть дана система линейных уравнений (2.2.24):

a11 x1 + a12х2 +…+ a1nхn = a1,n+1

a21 x1 + a22 х2 +…+ a2nхn = a2,n+1

… (2.2.24)

an1 x1 + an2 x2 +…+ ann xn = an,n+1

Решение системы уравнений по компактной схеме [25] заключается в последовательном определении хn, xn-1, ..., x1 из системы уравнений:

x1 + c12х2 +…+ c1nхn =c1,n+1

c12 х2 +…+ a1nхn = a2,n+2

…

xn = cn,n+1

Эта система получается как результат разложения исходной матрицы на треугольные матрицы согласно формулам (2.2.25):

(2.2.25)

b

После вычислений «прямого хода» метода Гаусса получается матрица:

Из рекуррентных соотношений следует, что любой (i,j)-элемент матрицы получается как разность между исходным элементом аij и суммой парных произведений ранее определенных значений bik, находящихся в рассматриваемой строке слева, и соответствующих значений сkj, расположенных в рассматриваемом столбце сверху от вычисляемого значения. При определении значений сij необходимо также выполнить деление на значение bii. Использование метода без выбора ведущего элемента пред­полагает, что все bii, i = 1, ... , n, отличны от нуля, и деление на bii не приводит к по­тере точности.

Граф информационных зависимостей алгоритма получения треугольных матриц 4х4 показан на рисунке 2.2.8.

Рисунок 2.2.8. ГУЗ алгоритма получения треугольных матриц для п = 4

Значения xi , i = n, n - 1, ... , 1, вычисляются по формуле:

Значение хn находим при разложении матрицы. Последующие значе­ния хi формируются как разность сi,n+1 и суммы парных произведений предыдущих вычисленных значений хп,..., xi-1 на соответствующие значения сi,n, ... , ci,i-1.

Граф информационных зависимостей для п = 4 показан на рисунке 2.2.9.

2.2.9. Граф информационных зависимостей для п = 4

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

2.2.3. Исполнение алгоритма Гаусса на «решётке» n*n вm

Рассмотрим два характерных случая выполнения алгоритма Гаусса: выполнение на ВС, содержащей n2 ВМ (решетке п*п.) и ВС, состоящей из n ВМ (линейке), где n – число неизвестных системы уравнений.

Пусть ВС с п2 ВМ имеет граф межмодульных связей в котором, каждая вер­шина с индексами (i,j) графа информационных связей, приведенного на рисунке 2.2.8, отображается в соответствующий ВМij, i = 1, ... , п, j = 2, ... , п + 1. Информационным связям между операторами алгоритма соответствуют передачи данных по межмо­дульным линиям связи.

Будем полагать, что для программирования передачи данных в передающем ВМ используется оператор send x (а), где х принимает значение u(up), d(down), l(left), r(right) в за­висимости от того, какому соседу предназначены для передачи данные а. Аналогично, в принимающем ВМ программирование выборки из входных очередей выполняется посредством оператора receiver x (b), где х принимает значения u, d, l, r в зависимос­ти от того, от какой ВМ идёт приём данных. Принятый элемент данных - b.

Предположим, что в каждый ВМij. начиная с j = 3 по j = п + 1 передан соот­ветствующий элемент aij исходной матрицы коэффициентов системы уравнений, а ВМi2 содержат по два элемента аi1 и ai2.

Вычисления начинаются в ВМ12, который определяет значение 1/b11 = 1/а11 и посылает его правому соседу ВМ13, после чего тот вычисляет с12 = а12/b11 и посылает нижнему соседу ВМ22. Прием данных стартует вычисления в ВМ13 и ВМ22.

ВМ13 передает полученное значение 1/b11 своему правому соседу ВМ14 и вычис­ляет с13 = а13/b11. Вычисленное значение с13 передается нижнему соседу ВМ23.

ВМ22, получив с12, пересылает это значение нижнему соседнему ВМ32, затем по­сылает хранящееся в нем значение b21 = а21 правому соседнему ВМ23, а также вычис­ляет 1/b22 = 1/(a22- b21с12). Далее значение 1/b22 передается в ВМ23.

После описанных выше действий стартуют ВМ32, ВМ23 и ВМ14. Таким об­разом вычисления ВМ начинаются при приёме данных. Прямой ход заканчивается в ВМn,n+1.

Обратный ход инициируется ВМn,n+1, который сразу по завершении прямого хода имеет вычисленное значение хn, он передаёт его верхнему соседу ВМn-1,n+1 . Получив это значение, ВМn-1,n+1 передает его верхнему соседнему ВМn-2,n+1, а так­же использует, совместно с полученным от соседнего ВМn-1,n значением сn-1,n, для вычисления xn-l = cn-1,n+l - cn-l,nxn. Далее хп-1 передается в ВМn-2,п+1. Обратный ход завершается определением х1 в ВМ1,n+1.

Представленный способ выполнения параллельных вычислений по алгоритму Гаусса позволяет получить следующую оценку времени реализации [26]: Тn*n = 5n-4 при общем числе операций порядка n3 / 3, что дает оценку ускорения параллельных вы­числений порядка п2 /15.