Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ВМ - Решение СЛАУ.pdf
Скачиваний:
56
Добавлен:
16.04.2015
Размер:
277.22 Кб
Скачать

Перейти к оглавлению на странице: 19

ГЛАВА 2. ТОЧНЫЕ МЕТОДЫ РЕШЕНИЯ СЛАУ

Под точными методами решения СЛАУ понимают методы, которые позволяют за конечное число арифметических операций при отсутствии округлений получить точное решение СЛАУ при точно заданной правой части СЛАУ и и точно заданных элементах её матрицы. Перечислим здесь некоторые из них с указанием алгоритмов их использования.

§1. Методы Гаусса

Методы Гаусса (или методы исключения неизвестных) оптимальны для решения СЛАУ общего вида по количеству арифметических операций, необходимых для нахождения решения этой системы.

Простой метод Гаусса состоит в следующем: в СЛАУ (4.1), записанной в координатной форме, производится деление первого уравнения системы на коэффициент при первом неизвестном, после чего это преобразованное уравнение, будучи умноженным последовательно на все коэффициенты при первом неизвестном из всех нижележащих уравнениях системы, вычитается из соответствующих уравнений. Тем самым первое неизвестное оказывается "исключенным"из всех уравнений системы, кроме первого. Оставив на время в покое первое уравнение, таким же образом исключаем из системы уравнений с номерами 2–n второе неизвестное и так далее. Результатом проделанной работы явится уравнение, содержащее лишь последнее неизвестное системы (4.1), из которого оно и находится. Этот этап преобразований СЛАУ носит название прямого хода метода Гаусса. Вслед за найденным неизвестным находятся поочередно и остальные. Этот этап называется обратным ходом метода Гаусса.

Отметим очевидный недостаток простого метода Гаусса – возможное обращение в нуль ведущих элементов, т.е. тех элементов, на которые приходится делить в прямом ходе метода Гаусса. Легко указать и способ избавления от этого недостатка простого метода Гаусса – перестановка уравнений системы, которая, очевидно, не меняет решения СЛАУ. Ввиду того, что решается СЛАУ с неособой матрицей, при исключении первого неизвестного в первом столбце

7

Перейти к оглавлению на странице: 19

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

Отметим здесь, что если матрица A системы (4.1) обладает свойством диагонального преобладания (см. опр. 2.1), то обращение

внуль ведущих элементов в методе Гаусса не происходит.

Вформульном виде Метод Гаусса выглядит так: имеется СЛАУ, записанная в виде

a11x1 + a12x2 + a13x3 + . . . + a1nxn = b1

a21x1 + a22x2 + a23x3 + . . . + a2nxn = b2

a31x1 + a32x2 + a33x3 + . . . + a3nxn = b3 (1.1)

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

an1x1 + an2x2 + an3x3 + . . . + annxn = bn .

Пусть a11 6= 0, иначе меняем порядок уравнений с тем, чтобы было выполнено данное условие. Разделим первое уравнение на a11 , после чего оно примет вид:

 

x1

+ a(1)x2 + a(1)x3

+ . . . + a(1)xn = b(1)

(1.2)

 

 

12

 

13

1n

1

 

где a(1)

= a1j/a11,

b(1)

= b1/a11 .

 

 

1j

 

 

1

 

 

 

 

Умножим уравнение (1.2) на a21 и вычтем полученное уравнение из второго уравнения системы (1.1). Аналогично преобразуем остальные уравнения. В итоге получим СЛАУ

 

 

a22(1)x2

+ a23(1)x3

+ . . . + a2(1)n xn

= b2(1)

 

x

+ a(1)x

+ a(1)x

+ . . . + a(1)x

= b(1)

1

12 2

13 3

1n n

1

 

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

 

 

 

 

 

 

 

 

 

 

 

(1.3)

 

 

an2 x2 + an3 x3 + . . . + annxn = bn ,

 

 

(1)

(1)

(1)

(1)

 

 

 

 

 

 

 

 

8

 

 

 

Перейти к оглавлению на странице: 19

где введены обозначения

 

 

 

a2(1)j

=

a2j − a1(1)j a21,

a3(1)j = a3j − a1(1)j a31, . . . ,

anj(1)

=

anj − a1(1)j an1,

bj(1) = bj − bj(1)aj1, . . . , j =

 

 

2, n.

Теперь, оставив без изменений первое уравнение системы (1.3), можно применить описанную процедуру к системе из (n − 1)-го уравнений, исключив неизвестное x2 из третьего и последующих уравнений. Получим систему вида

 

 

 

 

x2

+ a23(2)x3

+ . . . + a2(2)n xn

= b2(2)

 

 

x

1

+ a(1)x

2

+ a(1)x

+ . . . + a(1)x

n

= b(1)

 

 

12

13 3

1n

1

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an3 x3

+ . . . + annxn

= bn ,

 

 

 

 

 

 

(2)

(2)

 

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

a2(2)j = a2(1)j /a22(1),

 

b2(2) = b2(1)/a22(1), a3(2)j

= a3(1)j − a2(2)j a32(1), . . .

 

anj(2) = anj(1) − a2(2)j an(1)2 , bj(2) = bj(1) − bj(2)aj(1), . . . , j =

 

 

 

3, n.

Продолжая аналогичные вычисления, в итоге получим эквивалентную исходной треугольную систему

x1 + a(1)12 x2

x2

+a(1)13 x3 + . . . + a(1)1n xn = b(1)1

+a(2)23 x3 + . . . + a(2)2n xn = b(2)2

x3 + . . . + a(3)3n xn = b(3)3

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

xn = b(nn) ,

откуда и находятся последовательно все компоненты решения. Разновидностью метода Гаусса является метод Гаусса-

Жордана, в котором совмещены прямой и обратный ход, т.е. начиная со второго шага метода Гаусса исключение неизвестных производится не только из нижележащих уравнений, но и из вышерасположенных. Все отмеченные разновидности метода требуют O(n3) арифметических операций и являются в этом смысле оптимальными среди точных методов.

§2. Метод квадратного корня

Будем считать, что матрица A симметричная и положительно

9

Перейти к оглавлению на странице: 19

определена. Поставим задачу представить её в виде произведения: A = ST S , где S – правая треугольная матрица:

 

s11

s12

S =

0

s22

 

 

 

 

 

 

.

0. .

.

0. .

. . . s1n

. . . s2n

. . . . . .

. . . snn

.

Умножая матрицу ST на S справа и приравнивая элементы результирующей матрицы соответствующим элементам матрицы A, получим:

s2

= a , s

1i

= a

/s , i =

2, n,

 

11

11

1i

 

11

 

 

 

X

 

 

 

 

 

skk2

= akk − sik2 , k ≥ 2,

 

 

i<k

 

 

/sii, j > i.

 

 

X

 

 

sij = aij k<i skiskj

(2.1)

§3. Метод отражений

Пусть w Rn – вектор единичной длины в евклидовой мет-

рике: wT w = Pn w2 = 1. С его помощью построим матрицу

j=1 j

U= E − 2wwT , где E – единичная матрица n × n. Очевидно, что U = UT и, кроме того,

U2 = UT U = (E−2wwT )T (E−2wwT ) = E−4wwT +4w(wT w)wT = E,

т.е. матрица U является симметричной и ортогональной. Последнее равенство означает, что все собственные числа построенной матрицы U удовлетворяют соотношению: λ2(U) = 1. Проверим, что вектор w является собственным для матрицы U , отвечающим собственному значению λ(U) = −1:

Uw = (E − 2wwT )w = w − 2w(wT w) = −w.

Кроме того, любой вектор v Rn, v w (т.е. wT v = 0) является собственным вектором матрицы U , отвечающим собственному значению λ(U) = +1:

Uv = (E − 2wwT )v = v − 2w(wT v) = v.

10

Перейти к оглавлению на странице: 19

Если рассмотреть произвольный вектор y Rn и разложить его по векторам z, v : y = z + v, где z = αw, v w, то после умножения его на матрицу U получим: Uy = −z + v , т.е. вектор Uy является зеркальным отражением вектора y относительно плоскости, перпендикулярной вектору w .

Пусть y, z – произвольные векторы из Rn . Построим вектор w таким образом, чтобы Uy = αz . Поскольку матрица U является ортогональной и, следовательно, вектор Uy имеет в евклидовой метрике ту же длину, что и y , то α определится из условия ||Uy|| = ||y||, т.е. α = kyk/kzk. Следовательно, положив w = (y −αz)/%, где % = ky − αzk, мы получим искомый вектор.

Используем полученные результаты для упрощения СЛАУ. Возьмём на первом шаге преобразования СЛАУ Ax = b в качестве вектора y первый столбец матрицы A, а в качестве вектора z – орт e1 = (1, 0, . . . , 0)T и построим как указано выше вектор w1 = y − αe1 . Умножив обе части исходной системы на матрицу

U1 = (E − 2w1(w1)T ), получим СЛАУ A1x = b1, A1 = U1A, b1 =

U1b, у которой первый столбец имеет нули во всех строках, кроме первой (если он уже имел такой вид, то никаких преобразований с ним производить не требуется).

На втором шаге положим

z = e1 Rn−1, y = (a122, a132, . . . , a1n2)T Rn−1

(при условии, что второй столбец матрицы A1 не коллинеарен век-

тору e2 = (0, 1, 0, . . . , 0)). Построив матрицу U2 = {u2ij} (размерности (n − 1) × (n − 1)) и умножив обе части СЛАУ A1x = b1 на

матрицу

Uˆ2 =

 

0

u112

 

 

1

0

.

0. .

u. .2.

 

 

 

n−1,1

 

 

 

 

. . . 0

. . . u2

1,n 1

. . . . . .

. . . u2− −

n 1,n 1

,

получим СЛАУ A2x = b2 , у которой в первых двух столбцах под главной диагональю стоят нули. Дальнейшее очевидно. Получив систему с треугольной матрицей, решаем её как и в методе Гаусса. Отметим, что использование ортогональных матриц в процессе

11