Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы решения задач строительства на ЭВМ..pdf
Скачиваний:
45
Добавлен:
15.11.2022
Размер:
16.27 Mб
Скачать

Глава 2. Численные методы решения задач линейной алгебры

«75% всех расчетных математических задач приходится на решение систем линейных алгебраических уравнений»

Е. Валях

Применение численных методов, в принципе, сводит все задачи к алгебраическим. Традиционно выделяют четыре основных задачи линейной алгебры:

решение систем линейных алгебраических уравнений (СЛАУ);

вычисление определителя;

нахождение обратной матрицы;

определение собственных значений и собственных векторов матрицы.

2.1. Системы линейных алгебраических уравнений

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

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

Система линейных алгебраических уравнений в общем

случае имеет вид

 

а\\х \ + ап х г + •.......

+ *,»*« =ЬХ

а 2\Х| + а22х 2 + ........

+ “ь1х„ =Ь2

 

(2.1)

Я„!*1 +«„2*2 + ■........

+ атх„ =Ь„

 

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

T , aUxJ =b‘>

(2.1 а)

j =I

(1 = 1,2,...,и)

 

или в матричной форме

А х Х = В ,

(2.16)

где А - матрица системы, X - вектор решения, В - вектор свободных членов.

*1 1

* 1 2

 

~Х\

V

А = * 2 1

* 2 2

« 2 я ;

Х = Х2 ;

в = Ь2

_ а п \

*/»2

а ,т _

- Х п _

А _

Решение систем линейных алгебраических уравнений представляет собой типичный образец численных расчетов, которыми занимались еще в древности. Это основной “строительный блок” для алгоритмов решения большинства задач, в которых используются математические модели.

Система (2.1) имеет единственное решение [5, 8], если матрица А невырождена (tlet А.Ф0). Это решение, если использовать понятие обратной матрицы (А'1), можно записать

Х = А ~ 'И .

(2.2)

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

В курсе линейной алгебры решение системы (2.1) обычно находится по формулам Крамера в виде отношения определителей:

а\\

а\2

 

 

а\2

а\!1

а2\

а22

«2„

b2

°22

^2п

 

 

 

D\ =

 

 

а,л

ап2

^пп

К

^п2

^пп

аII

А.

а\п

 

 

 

D2 = <>2 \

ъ2

^2п

ит.д.

 

 

 

 

 

лпI

 

 

 

 

 

 

 

v

D\

D2

. И Т . Д .

 

 

 

^ 2 =

Для численного решения системы эти формулы непригодны, так как требуют вычисления (w+l)-ro определителя. Даже при выборе наилучшего метода вычисление одного определителя требует такого же времени, что и решение системы линейных алгебраических уравнений современными численными методами.

Все методы решения СЛАУ можно условно разбить на два класса: прямые (или точные) и итерационные. Имеются и гибридные методы.

Прямые методы позволяют за конечное число действий получить точное решение системы. Слова “точное решение” нужно понимать условно, как характеристику алгоритма, а не реального вычислительного процесса.

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

Выбор того или иного метода зависит от многих обстоятельств:

от вида матрицы коэффициентов; от порядка системы; от имеющихся программ;

от объема оперативной памяти ЭВМ и др.

2.2. Прямые методы решения систем линейных

алгебраических уравнений

Прямые методы решения систем линейных алгебраических уравнений основаны на сведении матрицы системы А к матрице простой структуры - диагональной (и тогда решение очевидно) или треугольной - и тогда решение отыскивается с помощью последовательных подстановок корней. Сведение матрицы А к одному из указанных видов осуществляется при помощи конечного числа эквивалентных преобразований:

перемена местами двух уравнений в системе;

умножение какого-либо уравнения системы на действительное число с^О;

прибавление к одному уравнению другого уравнения, умноженного на произвольное число.

2.2.1. Метод Гаусса

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

Процесс состоит из двух этапов: прямого и обратного хода.

В результате прямого хода система приводится к треугольному виду, а при выполнении обратного хода вычисляются все неизвестные [8, 12].

Продемонстрируем метод Гаусса на примере системы из трех уравнений. Обозначим каждое уравнение буквами А В ^ \ (здесь (/) соответствует номеру шага).

(2.3.)

Прямой ход

Шаг L Допустим ведущий1 элемент ап отличен от нуля. Разделим первое уравнение на а,, и, используя полученное при этом уравнение, домножим его последовательно на коэффициенты (-а21) и (-я 3, ) и суммируем с соответствующими элементами 2-й и 3-й строк.

Выполняемые действия показаны справа от системы уравнений. В результате выполнения этого шага из всех уравнений, кроме 1-го, исключается неизвестное х\т

Действия:

Шаг 2. Выполняя аналогичные действия со вторым и третьим уравнениями (1-е уравнение при этом остается неизменным), исключаем неизвестное х2из них:

Действия:

Ведущий (главный) элемент - элемент, стоящий на главной диагонали.

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

Обратный ход. Из последней строки полученной системы (2.3,6) находим значение неизвестного *з

_ъ\Р

а(2) ' аъъ

Подставляя его во вторую строку системы (2.3,6), получим значение x-i

х2 =Ь^2) - « 23);с3

 

Имея х2,х 3, аналогичным образом найдем х, из

первого

уравнения этой же системы:

 

х ^ Ь ^ - а ^ - а ^ .

 

Перед обобщением метода на случай п уравнений с п неизвестными рассмотрим простой численный пример.

Пример 2.1. Методом Гаусса решить систему уравнений:

2х{ +Лх7+Злг3 = 4,

3JC +х2 -2х3 = -2,

4*, +1 \х2 +7*з = 7.

Составим матрицу коэффициентов, включая свободные члены (расширенную матрицу):

2 4 3 4 ' Л<°> = 3 1 -2 i -2 4 11 7 7

Прямой ход

1-й шаг 1-ю строку матрицы делим на аи -2; Умножаем полученную строку сначала на (-3) и складываем со 2-й, а затем на (-4) и складываем с 3-й:

1

2

1,5

2

Ат = 0

-5

-6,5

-8

0

3

1

- 1-1

2-й шаг 2-ю строку матрицы Ат делим на а22 - —5; Умножаем полученную строку на (-3) и складываем с 3-й строкой этой же матрицы:

1 2

1,5

2

Л(2)= 0

1

1,3

i 1,6

О

0

-2,9

|-5,8

Обратный ход

Из последнего уравнения (3-я строка матрицы) получаем

Из 2-го уравнения находим х2 = 1,6 -1,3 • х3 = 1,6 -1,3 • 2 = -1.

Из 1-го уравнения получаем х, = 2 -2 х2-1,5-х3 = 2—2 • (—1)—1,5-2 = 1

Таким образом, полученное решение имеет вид Х(1, -1,2).

Аналогично методом Гаусса решается система линейных алгебраических уравнений и-го порядка. Процесс расчета представим в виде, удобном для дальнейшего программирования.

Запишем систему уравнений п -го порядка в виде

//

(2.4)

(J -1,2,...,и).

(2-5)

Если aj)0) Ф0, а также ведущие элементы остальных строк,

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

х, +

7=/-И

(/=1,2, ...п).

Коэффициенты системы при этом вычисляются по формулам

 

 

 

 

- тГ ] ■

\

(2.6)

 

 

 

 

 

где

т(к-1)

а(к~])

 

(2.7)

__

 

 

 

я,{к-1) 5

 

 

 

(Л=1,2,..., п\

/=£+!,..., п\ j=k+\,...,n).

 

Обратный ход осуществляется по формулам:

 

 

 

х»

Л(»-1) *

 

(2.8)

 

 

 

 

 

 

XJ =bj n - X X f

■** •

(2.9)

 

 

 

*=;+!

 

 

 

 

(/=»-1,-, 1).

 

 

 

Решение этого примера с использованием электронных

таблиц Excel приведено в разделе 2.9.1.

 

 

Н

Алгоритм метода Гаусса:

 

 

 

1) Ввести все коэффициенты а*р ,b}0^

 

 

2) Для

I до п

 

Для j=k+1 до п

вычислить параметры т по формулам (2.7).

Для /=А+1 до п вычислить коэффициенты а и в по формулам (2.6).

Конец по /. Конец поj.

Конец по к.

3)Вычислить хппо формуле (2.8).

4)Для j=n-1до 1

вычислить х) по формулам (2.9). 5) Конец.

Впроцессе решения системы возможны три случая:

1)Решение системы существует и является единственным,

когда матрица коэффициентов не вырождена (при этом на последнем шаге решения получается одно уравнение с одним неизвестным).

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

3)Система уравнений имеет бесконечное множество решений (это получается, когда на некотором шаге в системе получается строка, в которой все коэффициенты и свободный член равны нулю).

$ При практическом применении метода Гаусса следует обратить внимание на следующие моменты:

1.Если в ходе приведения матрицы А к треугольному виду на главной диагонали окажется элемент, равный нулю, эта схема расчета формально непригодна, хотя система может иметь единственное решение.2

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