Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу.docx
Скачиваний:
107
Добавлен:
24.02.2016
Размер:
2.8 Mб
Скачать

19.2. Прямые методы решения слау

19.2.1 Метод Гаусса

Метод основан на приведении с помощью преобразований, не меняю­щих решение, исходной СЛАУ (19.1) с произвольной матрицей к СЛАУ с верхней треугольной матрицей вида

aUxi + а12 x2 + ... + ainxn = b1

a22 x2 + ... + a2nxn = b2

(19.2)

aix

nn n

b'

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

Решение системы с верхней треугольной матрицей (19.2), как легко ви­деть, находится по формулам, называемым обратным ходом метода Гаусса:

a

1

кк

i+1

akixi

к

n

1,

n

1.. (19.3)

Прямой ход метода Гаусса осуществляется следующим образом: вы­чтем из каждого /72-го уравнения (m=2..n) первое уравнение, умноженное на am1I a11, и вместо m-го уравнения оставим полученное. В результате в матри­це системы исключаются все коэффициенты 1-го столбца ниже диагонально­го. Затем, используя 2-е полученное уравнение, аналогично исключим эле­менты второго столбца (m=3..n) ниже диагонального и т.д. Такое исключение называется циклом метода Гаусса. Проделывая последовательно эту опера­цию с расположенными ниже k-го уравнениями (к=1, 2 n-1), мы приходим

к системе вида (19.2). При указанных операциях решение СЛАУ не изменяет­ся.

На каждом kшаге преобразований прямого хода элементы матриц изменяются по формулам прямого хода метода Гаусса:

a

ami = ami - aki—, k = 1 n - 1 i = k, n;

kk (19.4)

bm = bm - bh— , m = k + 1 n.

Элементы akk называются главными. Заметим, что если в ходе расчетов

по данному алгоритму на главной диагонали окажется нулевой элемент akk = 0, то произойдет сбой в ЭВМ. Для того чтобы избежать этого, следует

каждый цикл по k начинать с перестановки строк: среди элементов k-го столбца amk, k < m < n находят номер p главного, т.е. наибольшего по моду­лю, и меняют местами строки k и p. Такой выбор главного элемента значи­тельно повышает устойчивость алгоритма к ошибкам округления, т.к. в фор­мулах (19.4) при этом производится умножение на числа amk /akk меньшие

единицы и ошибка, возникшая ранее, уменьшается.

(19.5)

или коротко эту систему записывают в виде

(19.6)

piXi-1+qiXi + riXi+1=di

p x 1 + q x = d , 2 < i < n -1.

В этом случае расчетные формулы метода Гаусса значительно упроща­ются. После исключения поддиагональных элементов в результате прямого хода метода Гаусса и последующего деления каждого уравнения на диаго­нальный элемент систему (19.5) можно привести к виду

0 0

1

0

1 -6

0 0

0 1 -6

00 00

0 0

0 0

0 0

1

1 -6-

0

x1

1

x2

X

=

xn-1

nn-1

x

n

(19.7)

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

6 =г + РЛгli = (di - Рг1г-1)1(Яг + РЛ-^ (19.8)

i = 2,3,..., n -1.

Когда такое преобразование (прямой ход) сделано, формулы обратного хода метода Гаусса получаются в виде

xn = (dn - pnnn-1)l(qn + Pn6n-1);

x =6ixt+1 + 1i , (19.9)

i = n -1, n - 2, 1.

Расчетные формулы (19.8), (19.9) получили название "метод прогонки". Достаточным условием того, что в формулах метода прогонки не произойдет деления на ноль и расчет будет устойчив относительно погрешностей округ­ления, является выполнение неравенства |^|>|pt\ + (хотя бы для одного i

должно быть строгое неравенство).

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

Метод предназначен для решения СЛАУ с симметричной матрицей. Этот метод основан на представлении такой матрицы в виде произведения

трех матриц: A = S ■ D ■ S, где D - диаганальная с элементами di=±1; S - верх­няя треугольная (sik = 0, если i>k, причем sii > 0), S - транспонированная

нижняя треугольная. Матрицу S можно по аналогии с числами трактовать как корень квадратный из матрицы A, отсюда и название метода.

Если S и D известны, то решение исходной системы

A ■ x = S ■ D ■ S ■ x = b сводится к последовательному решению трех систем -двух треуголь ных и одной диагональной:

ST ■ z = b; Dy = z; Sx = y . (19.10)

Здесь z = DSx, y = Sx .

Решение систем (19.10) ввиду треугольности матрицы S осуществляется по формулам, аналогичным обратному ходу метода Гаусса: i-1

У\ = bi 1 si A; yi = (bi - Z dkykski) 1 siidi; i = 2,3,..., n;

к=1

n

Xn = yn 1 Snn; Xi = (yi - Z Vk)ISii; i = П - 1 П - 2,...,1.

к=i +1

Нахождение элементов матрицы S (извлечение корня из А) осуществля­ется по рекуррентным формулам:

к-1 2

dk = sign(-Zdi\stk\ );

i=1

(19.11)

k-1 2

akk- Z dAsik\

i=1

Z dt\sik

i=1

к = 1, 2, n;

к-1

Skj = (akj - Z diSikSij)I(Skkdk ); i=1

j = к +1, к + 2, n.

В этих формулах сначала полагаем к=1 и последовательно вычисляем

d1 = sign(a11); s11 = ^|an| и все элементы первой строки матрицы S(s1 j, j > 1),

затем полагаем к=2, вычисляем s22 и вторую строку s1 j для j>2 и т.д.

Метод квадратного корня почти вдвое эффективнее метода Гаусса, т.к. полезно использует симметричность матрицы.

Функция sign(x) возвращает -1 для всех x<0 и +1 для всех x>0.