Глава 1. Параллельные вычисления при численном решении уравнений математической физики.
Пример из механики
Рассмотрим пример, в котором одномерный массив из трех типов частиц, взаимодействующих при помощи жестких пружин, описы- вается системой дифференциальных уравнений
m1u¨n
= −k(vn
+ wn−1
— 2un
) − f (1)(t),
n
m2v¨n
= −k(wn
+ un
— 2vn
) − f (2)(t),
(1)
n
m3w¨n
= −k(u
n+1
+ vn
— 2wn
) − f (3)(t),
n
n
n
n
представляющей собой результат применения второго закона Нью- тона, где un, vn, wn суть вертикальные смещения частиц, m1, m2, m3 их массы, k является общей жесткостью пружин, f (1), f (2), f (3)
± ± ±∞
суть внешние силы и n = 0, 1, 2, ..., . Происхождение этой
системы уравнений можно проиллюстрировать с помощью аппрок- симации конечными разностями хорошо известного уравнения ко- лебаний струны (см. [6], [7])
ρu¨ = Tuxx + F (t, x),
T
mu¨n =
h (un+1 + un−1 − 2un) + fn(t), m = ρh, fn(t) = hF (t, xn),
un+1−un − un−un−1
uxx(xn) ∼
h h , xn = hn.
h
−
Мы предполагаем, что временная зависимость внешних сил име- ет вид гармонической функции exp( iωt) с частотой ω. Пользуясь трансляционной инвариантностью предположим, что
n
f (j)( t) = fj exp(− iωt + iKLn) ,
где j = 1 , 2 , 3, K является «квазиимпульсомk - свободным парамет- ром (− π/L < K < π/L), L - период массива. Мы ищем решение
Эту систему можно решить методом Крамера
Пример применения метода Гаусса
Для решения системы (4) мы также можем использовать метод Гаусса - метод последовательных исключений неизвестных. Рас- смотрим пример:
x1 + x2 + 3 x4 = 4 , 2 x1 + x2 − x3 + x4 = 1 ,
3 x1 − x2 − x3 + 2 x4 = −3 ,
− x1 + 2 x2 + 3 x3 − x4 = 4 ,
Прямые исключения дают
1 1 0 3
2 1 −1 1
3 −1 −1 2
−1 2 3 −1
4
1
−
3 ,
4
1 1 0 3
— − −
0 1 1 5
— − −
0 4 1 7
0 3 3 2
4
7
−
−
15 ,
8
1 1 0 3
− − −
0 1 1 5
0 0 3 13
0 0 0 −13
4
−
7
13
−13
.
Теперь рассмотрим обратные замены:
−13x4 = −13, ⇒ x4 = 1, 3x3 + 13x4 = 13 ⇒ x3 = 0,
−x2 − x3 − 5x4 = −7, ⇒ x2 = 2,
Метод исключения Гаусса в общем случае
Рассмотрим систему линейных алгебраических уравнения
a11x1 + a12x2 + ... + a1nxn = f1, a21x1 + a22x2 + ... + a2nxn = f2,
.................................................,
an1x1 + an2x2 + ... + annxn = fn,
который в матричной форме выглядит так: Ax = f , или
(6)
(7)
a11 a12 ... a1n x1
an1 an2 ... ann
xn
f1
fn
a21 a22 ... a2n x2 f2
... ... ... ... ...
...
= .
ǁ ǁ
Здесь A = aij - матрица с индексами i, j = 1, .., n, x =
/
(x1, x2, ..., xn)T и f = (f1, f2, ..., fn)T суть векторы. Вектор x неизве- стен. Предположим, что det A = 0.
≈
Если n имеет большое значение, то методом Крамера потребу- ется много времени для выполнения вычислений, приблизительное количество операций имеет порядок n!. Напротив, метод Гаусса го- раздо быстрее, так как ему нужно приблизительно n3/3 операций. Для примера, если n = 10, тогда 10! = 3628800 в сравнении с 103/3 333. Таким образом метод исключений Гаусса более эф- фективен при численном анализе.
После n шагов по прямому устранению неизвестных мы полу- чаем систему с верхней треугольной матрицей U
|
u12
|
u13
|
...
|
1
|
u23
|
...
|
0
|
1
|
...
|
...
|
...
|
...
|
...
|
0
|
0
|
0
|
...
| 1
Сделав следующий шаг, получим
0 + a
k+1,n
k+1
(k)
k+1,k+1
xk+1 + ... + a(k)
xn = f (k) ,
(9)
xk + uk,k+1xk+1 + ... + uknxn = yk,
nn
n
где
(k)
0 + a
...........................................................,
n,k+1
xk+1
+ ... + a(k)xn
= f (k).
ukj =
(k 1)
, y =
a −
kj
a −
(k 1) k
kk
f (k−1)
a −
(k 1)
k , (10)
kk
a(k) = a(k−1) − a(k−1)ukj, i, j = k + 1, ..., n, (11)
ij ij ik
i
i
ik
f (k) = f (k−1) − a(k−1)yk, (12)
и a(0) = a1j, j = 1, 2, ..., n, f (0) = f1.
1j 1
Эти формулы представляют собой первую часть алгоритма. Они описывают последовательное исключение неизвестных xi. Неиз- вестные могут быть легко найдены из полученной системы с по-
≤ ≤ −
для 1 i n 1, если i = n, мы имеем xn = yn. Эти формулы обеспечивают вторую часть алгоритма. Используя этот алгоритм, мы можем построить компьютерный код.
Трехдиагональные системы
Рассмотрим систему 4 × 4
(14)
= .
a1 b2 c2 0 x2 f2
b1 c1 0 0 x1
0 0 a3 b4
x4
f1
f4
0 a2 b3 c3 x3
f3
Это и есть пример трехдиагональной системы. Решение таких си- стем приводит к конкретным простым результатам по гауссовско- му исключению неизвестных. Применим метод Гаусса для решения такой системы. Прямое исключение на каждом шаге приводит к системе следующего общего вида:
1 c1/d1 0 0
x1 y1
x2 y2
0 1 c2/d2 0
= , (15)
0 0 1 c3/d3 x3
y3
На первом этапе: d1 = b1, y1 = f1/d1.
— −
— −
— −
На втором этапе: d2 = b2 a1c1/d1, y2 = (f1 y1a1)/d2. На третьем этапе: d3 = b3 a2c2/d2, y3 = (f3 y2a2)/d3. На четвертом этапе: d4 = b4 a3c3/d3, y4 = (f4 y3a3)/d4.
Наконец, процедура обратной замены дает ответ
x4 = y4,
x3 = y3 − x4c3/d3, x2 = y2 − x3c2/d2, , x1 = y1 − x2c1/d1.
×
Ясно, что произойдет в общем случае для n n трехдиагональ- ной системы.
На первом этапе: d1 = b1, y1 = f1/d1
Do'stlaringiz bilan baham: |