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

Страницы работы

Фрагмент текста работы

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

R – номер процесса.( 0 или 1)


5.2.3. Решение системы линейных алгебраических  уравнений методом Гаусса

Целью является решение системы уравнений вида  методом Гаусса, где A -квадратная матрица размерности М,  – вектор-столбец неизвестных,  – вектор-столбец правых частей системы. К матрице А добавляется вектор правых частей и эта расширенная матрица    разрезается на N полос равной ширины (N выбирается кратным М), каждая из которых загружается в свой процессор. Далее в нулевом (активном) процессоре первая (ведущая) строка делится на первый (ведущий) элемент и она передается всем остальным процессорам. Во всех процессорах с помощью этой строки элементарными преобразованиями все  элементы первого столбца матрицы А (за исключением первой строки активного процессора) преобразовываются в нулевые. Затем в активном процессоре ведущей становится следующая строка, ведущим – ее первый ненулевой элемент и процесс продолжается до исчерпания строк в активном процессоре. После этого активным становится следующий (первый) процессор и все повторяется снова до тех пор, пока не исчерпаются все ведущие строки во всех процессорах. В результате матрица А приведется к верхней треугольной матрице, распределенной по всем процессорам. На этом прямой ход метода Гаусса заканчивается. Далее активным становится (N-1)-ый процессор и аналогичным образом организуется обратный ход, в результате которого матрица А приводится к единичной. На этом этапе каждая ведущая строка состоит только из одного ненулевого элемента и после приведения матрицы А к единичной на месте последнего столбца расширенной матрицы оказываются значения вектора-столбца  искомого  решения .

 
            


Раздел 5.2.4. Разностная схема продольно-поперечной прогонки

Двухшаговая разностная схема продольно-поперечной прогонки порядка  для нелинейного уравнения (1)  записывается в виде

(3)

где: .

Такая разностная схема правильно аппроксимирует поток тепла, который является непрерывной функцией даже в том случае, когда коэффициенты уравнения (1) являются разрывными функциями.

По каждому из неявных направлений разностная схема по-прежнему является линейной и может быть записана в виде :

              (4)

где

и соответственно

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

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

, k= 1, …, N-1.  Из граничных условий на левой (нижней) границах определяются значения прогоночных коэффициентов на левой границе и  на верхней соответственно. После этого, учитывая, что на левой и на правой границах, обратной прогонкой находятся все значения сеточной функции на - ом   n+1 –ом    временном слоях.

Блок схема алгоритма.


5.2.5
5.2.6. Написать блок-схему алгоритма распараллеливания для решения двумерного уравнения Пуассона  . в области D{ 0 <= x <= 1; 0 <= y <= 1; t > 0 } с помощью поточечного метода Зейделя (задача Дирихле).

Поточечный  метод Зейдея иногда называют итерационным методом и записывают разностную схему домноженную на hx2* hy2.

            На равномерной прямоугольной сетке уравнений (1) аппроксимируется следующей разностной схемой

                 

n – номер итерации.

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

,   где  .

Значения  находятся по формуле

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

Реализация алгоритма проста: разделяем ось OX на N частей, где N – количество параллельных ветвей. Какая-либо ветвь вычисляет значения функции для “своих” значений X, после этого передает верхний вычисленный слой ветви, с вышестоящим рангом, для того, чтобы на следующим шаге ветвь с вышестоящим рангом могла вычислить все свои значения функции. Также вышестоящая ветвь передает на каждом шаге нижний слой области нижестоящему рангу.



5.2.7. Написать блок-схему алгоритма распараллеливания для решения двумерного уравнения Пуассона  . в области D{ 0 <= x <= 1; 0 <= y <= 1; t > 0 } с помощью блочного метода

Похожие материалы

Информация о работе