Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

[ООП] / Лекции / Lecture_10

.pdf
Скачиваний:
57
Добавлен:
07.02.2016
Размер:
223.44 Кб
Скачать

Лекция 10

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

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

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

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

Мы изучим смысл итерационных методов решения линейных систем на примере метода Якоби. Пусть необходимо решить систему уравнений:

Ax = f ,

 

 

(1)

где матрица

A = [aij ],

i, j =1, 2,K, m

имеет обратную,

x = (x1, x2 ,K, xm )Τ,

f = (f1, f2 ,K, fm )Τ .

Систему (1) можно преобразовать к виду

1

 

 

 

 

 

 

 

 

 

 

xi =

 

 

 

aij x j +fi

, i =1, 2,K, m

(2)

a

 

 

 

ii

j i

 

 

 

Например, при m=3 систему

a11x1 +a12 x2 +a13 x3 = f1 ; a21x1 +a22 x2 +a23 x3 = f2 ; a31x1 +a32 x2 +a33 x3 = f3 ,

можно преобразовать к виду

x1 = a1 (0 a12 x2 a13x3 + f1 ); 11

x

2

=

 

1

 

(a

x +0 a

 

x + f

2

);

 

 

 

 

 

 

a22

21 1

 

 

23

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x =

 

1

(a x a x

2

+0 + f

3

).

 

 

 

3

 

 

31 1

32

 

 

 

 

 

 

 

a33

 

 

 

 

 

 

 

 

 

Метод Якоби заключается в представлении формулы (2) в виде итераций:

 

 

 

 

 

 

 

 

 

 

 

2

n+1

1

 

 

 

 

n

 

 

 

 

 

 

 

 

xi

=

 

 

 

aij x j +fi , i =1, 2,K, m , n = 0,1,K, N

(3)

a

 

 

 

 

ii

 

j i

 

 

где n – номер итерации, а значения

x0 задаются произвольно. Окончание итерационного

 

 

 

 

 

 

 

 

 

 

i

 

процесса определяется либо заданием некоторого максимального значения N, либо условием

max

 

xn+1

xn

 

< ε

 

(4)

 

 

 

1im

 

i

 

i

 

 

 

 

 

 

 

 

 

 

 

где ε некоторое положительное, наперед заданное число.

 

Нам понадобится также матричная форма записи метода Якоби. Обозначим через

D = diag[a11, a22 ,K, amm

] - диагональную матрицу с той же диагональю, что и у матрицы A.

Тогда уравнение (1) можно записать следующим образом:

 

Dx +

(A D)x = f ;

 

 

или

(D A)x + f .

 

 

Dx =

 

 

Умножая слева и справа это уравнение на D1

D1Dx = D1(D A)x + D1 f

ивведя новые обозначения : H = D1(D A) , d = D1 f , окончательно получим:

x= Hx +d .

Сучетом полученной матричной формы метод Якоби можно записать как

xn+1 = Hxn +d .

(5)

Матрицу H называют переходной матрицей. Из полученных уравнений видно, что организовать решение линейной системы (1) можно путем циклического вычисления правой части уравнения (3) или (5). Причем, в последнем случае – это многократное умножение матрицы на вектор. Параллельные и векторные методы умножения матрицы на вектор мы рассматривали ранее.

Решение уравнения Пуассона методом Якоби

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

Одной из задач такого типа является уравнение в частных производных, называемое уравнением Пуассона:

2u

+

2u

= f (x, y)

(6)

x2

 

y2

 

 

Если f (x, y)0 , то мы получим уравнение Лапласа. Не теряя общности, предположим, что х

и у принадлежат множеству вещественных чисел в диапазоне [0,1], которое образует прямоугольную область на плоскости xy. Пусть функция u имеет начальные значения на границах области, а правая часть f (x, y)– заданная функция. Тогда эту задачу ещё называют зада-

чей Дирихле для уравнения Пуассона.

Используя выражения для конечных разностей и рассматривая область определения как сетку с шагом h (рис.10.1), частные производные в уравнении Лапласа можно аппроксимировать центральными конечными разностями второго порядка:

2u

=

ui+1, j 2ui, j +ui1, j

+O(h2 )

(7)

x2

h2

 

 

 

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

3

2u

=

ui, j +1 2ui, j +ui, j 1

+O(h2 )

y2

 

h2

 

 

 

 

 

 

 

 

Рис.10.1

Если выражения (7) подставить в уравнение Пуассона, то, пренебрегая членами второго порядка малости, получим:

ui +1, j +ui 1, j +ui, j +1 +ui, j 1 4ui, j = h2 fij , i, j = 0,1,K, M .

(8)

Записав это соотношение для каждой точки с учётом того, что начальные условия на границах области заданы, получим систему из M -1 линейных уравнений. Эту систему можно решить методом Якоби. Для этого перепишем систему (8) в виде:

uijn+1 =

1

(uin+1, j +uin1, j +uin, j 1 +uin, j +1 h2 fij ), n = 0,1,K, N .

(9)

4

Обратите внимание, что каждая итерация в точке сетки есть среднее арифметическое четырёх соседних точек предыдущей итерации минус некоторая заданная функция.

M 2

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

стоящую из M 2 узлов, а число процессоров равно Р, то каждый из них должен обработать

m =

M 2

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

P

 

 

ближайшими соседями, причем, максимальное число соседей равно четырем, минимальное – двум. Число граничных узлов равно q = m = MP . Один из вариантов разбиения показан на

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

Для организации параллельных вычислений, как показано на рисунке, необходимо ввести дополнительные слои, называемые теневыми (обозначены как sh и sv), которые обеспе-

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

4

чивают граничные условия для каждой области. В эти области после каждой итерации заносятся результаты, полученные для первого внутреннего слоя соседней области. На рис.10.3 показаны графики зависимости количества внутренних узлов m (объем вычислений) и граничных узлов q (объем пересылок) от размерности сетки M.

Рис.10.2

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

Рис.10.3

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

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

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

5

Векторизация метода Якоби

Рассмотрим реализацию метода Якоби для уравнения Пуассона на векторном процессоре. Для представления всех узлов сетки, включая граничные условия нам необходим массив размера (N+2)×(N+2). Тогда алгоритм можно записать так:

for(j=1;j<=N;j++)

for(i=1;i<=N;i++)

u[i][j]=0,25*(u[i][j+1]+ u[i][j-1]+ u[i+1][j]+ u[i-1][j]-f[i][j]);

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

Рис.10.4

Процесс, показанный на рис.10.4. представляет всего лишь одну итерацию по одному столбцу рассматриваемой плоской сетки (рис.10.1). Ясно, что затем, необходимо аналогичные векторные операции провести с другими столбцами. Когда все столбцы будут пересчитаны, завершится первая итерация. Далее необходимо продолжить процесс, снова начиная с первого и т.д. пока не выполнится условие (4). Рассмотренная схема вычислений относится к случаю, когда длина векторных регистров процессора равна числу узлов вдоль одного измерения сетки. В реальных задачах, понятно, дрина регистра значительно меньше, поэтому всю сетку делят на слои, равные по ширине длине векторного регистра и вычисления выполняют по слоям. Крооме того, Итерационный процесс существенно может зависеть от других архитектурных особенностей процессора: числа векторных регистров, возможности совмещения арифметических операций с операциями загрузки и сдвига, наличия регистров для хранения промежуточных результатов.

Векторизация метода Якоби с использованием матричного умножения

Рассмотрим ещё одну возможность векторизации процесса решения уравнений типа Пуассона методом Якоби. Воспользуемся таким примером. Пусть имеется область, на которой ищется решение =[0,1]*[0,1]; Разобьем её с шагом n следующим образом:

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

6

Рис.10.5

Тогда можно составить 9 уравнений в центральных конечных разностях:

u11 = 14 (u01 +u21 +u10 +u12 h2 f11); u12 = 14 (u02 +u22 +u11 +u13 h2 f12 ); u13 = 14 (u03 +u23 +u12 +u14 h2 f13 );

. . . . . . . . . . . . . . . . . . . . . .

u33 = 14 (u23 +u43 +u32 +u34 h2 f33 );

Введём обозначения:

x1 = u11 , x2 =u12 , x3 =u13 , x4 = u21 , x5 =u22 , x6 = u23 , x7 = u31 , x8 = u32 , x9 = u33 .

Тогда запишем систему в виде:

4x1 x2 +0 x4 +0 +0 +0 +0 +0 =u01 +u10 h2 f11 ; x1 +4x2 x3 +0 x5 +0 +0 +0 +0 =u02 h2 f12 ; 0 x2 +4x3 +0 +0 x6 +0 +0 +0 =u03 +u14 h2 f13 ;

. . . .. . . . . . . . . . . . . . . . . . . . . .

0 +0 +0 +0 +0 x6 +0 x8 +4x9 =u34 +u43 h2 f33 .

В матричном виде эта система будет иметь вид:

Ax = f ,

где

x = (x1, x2 ,K, x9 )Τ ;

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

7

 

 

 

4 1

 

 

 

0

 

 

1 0 0

 

 

 

0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 4

 

1

 

 

 

0 1 0

 

 

 

0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

4

 

 

 

 

 

0

 

 

 

0

 

 

 

1

 

 

 

 

 

 

0

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

 

 

 

0

 

 

 

4 1 0

 

 

1 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A =

 

0

 

 

1

 

 

 

0

 

 

1 4 1

 

 

 

0 1 0

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0

 

 

 

1

 

 

 

0 1 4

 

 

 

0 0 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0

 

 

 

 

0

 

 

 

1 0 0

 

 

 

4 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0

 

 

 

 

 

0

 

 

 

0 1 0

 

 

1 4 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0

 

 

 

 

 

0

 

 

 

0 0 1

 

 

 

0 1 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+u

 

 

 

 

h

2

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

02

 

h2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f = u

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

03

 

+u

 

 

 

 

h2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

34

 

+u

43

 

h2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначим блоки матрицы A следующим образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 1

 

 

0

 

 

 

 

 

 

 

1 0

0

 

 

 

 

 

 

0 0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T = −1 4

 

1

I = 0

 

 

1 0

= 0 0

 

 

 

0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

0

 

 

0 1

 

 

 

 

 

 

0 0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

I

 

 

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = − I

 

 

 

 

 

 

 

I .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получим переходную матрицу H

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

0

0

 

 

 

 

 

 

 

 

 

 

 

 

0.25

0

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

G

 

 

 

 

I

O

 

 

 

 

 

 

 

 

 

0

1

0

D =

0 O 0

, D1 =

 

 

0

 

 

 

 

O

 

 

 

 

0 ,

 

D A = I G

 

 

I

, G = 1 0

1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.25

 

 

 

 

 

 

 

 

 

O

 

 

 

 

G

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

0

 

 

 

0.25

 

 

0

 

0.25

 

 

 

 

 

0

0

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.25

0

 

 

0.25

 

0

0.25

0

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0.25

 

 

0

 

0

 

 

 

 

 

0

0.25

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.25

0

 

 

0

 

0

0.25

0

 

0.25

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H = D1(D A)=

0

 

 

 

0.25

 

 

0

 

0.25

 

 

 

 

 

0

0.25

 

 

 

0

 

0.25

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

0.25

 

0

0.25

0

 

 

 

0

 

 

 

 

 

 

0

 

 

0.25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

0

 

0.25

 

 

 

 

 

0

0

 

 

 

0

 

0.25

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

0

 

0

0.25

0

 

0.25

 

 

 

 

 

 

0

 

 

0.25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

0

 

0

 

 

 

 

 

0

0.25

 

 

 

0

 

0.25

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

8

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

Высокопроизводительные вычислительные системы и параллельное программирование. Кудерметов Р.К.

Соседние файлы в папке Лекции