Основы вычислительной математики
.pdfВведите точность вычислений eps: 0.00001 Ступенчатый вид матрицы:
8.000 |
7.000 |
6.000 |
5.000 |
0.000 |
1.625 |
3.250 |
4.875 |
0.000 |
0.000 |
0.000 |
0.000 |
0.000 |
0.000 |
0.000 |
0.000 |
Ранг матрицы = 2 Определитель матрицы = 0.000
Во втором случае вводится матрица размера 3 × 4 максимального ранга:
Введите размеры матрицы n, m: 3 4 Введите элементы матрицы:
1 0 2 1
2 1 0 -1
1 0 1 0
Введите точность вычислений eps: 0.00001
Ступенчатый вид матрицы: |
0.000 |
-1.000 |
|
2.000 |
1.000 |
||
0.000 |
0.500 |
-2.000 |
-1.500 |
0.000 |
0.000 |
-1.000 |
-1.000 |
Ранг матрицы = 3 |
|
|
|
Глава 5 РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
Линейные системы. К решению систем линейных уравнений сводятся многочисленные практические задачи. Можно с полным основанием утверждать, что решение линейных систем является одной из самых распространенных и важных задач вычислительной математики.
Запишем систему п линейных алгебраических уравнений с п неизвестными:
a11x1 + a12 x2 + ... + a1n xn = b1, |
|
a21x1 + a22 x2 + ... +a2n xn = b2 |
, |
. . . . . . . . . . . . . . . . . . |
(5.1) |
|
an1x1 + an2 x2 + ... + ann xn = bn .
Совокупность коэффициентов этой системы запишем в виде таблицы:
a11 a12 . . . a1n |
|
||||
a |
a |
. . . |
a |
|
|
A = |
21 |
22 |
|
2n . |
|
|
. . . . . . . . . . |
||||
a |
a |
. . . |
a |
|
|
|
n1 |
n2 |
|
nn |
|
Данная таблица п2 элементов, состоящая из п строк и п столбцов, называется квадратной матрицей порядка . Если подобная таблица содержит тп элементов, расположенных в m строках и п столбцах, то она называется
прямоугольной матрицей.
Используя понятие матрицы А, систему уравнений (5.1) можно записать в матричном виде:
(5.2)
где x и b — вектор-столбец неизвестных и вектор-столбец правых частей соответственно:
x1 |
|
b1 |
|
||
x |
|
b |
|
||
|
2 |
|
|
2 |
|
. |
|
|
. |
|
|
x = |
|
, |
b = |
|
, |
. |
|
|
. |
|
|
. |
|
|
. |
|
|
|
|
|
|
|
|
x |
|
b |
|
||
|
n |
|
|
n |
|
или, в более компактной записи, |
|
|
|
|
|
x ={x1, x2 , . . . xn}., |
b ={b1, b2 , . . . bn}. |
||||
В ряде случаев получаются системы уравнений с некоторыми специальными видами матриц. Вот некоторые примеры таких матриц:
|
2 |
1 |
−1 |
|
|
|
|
1 2 3 |
|
|
|
|
|||
|
1 3 2 |
|
|
|
|
|
0 −1 1 |
|
, |
|
|
|
|||
A = |
, |
|
|
|
B = |
|
|
|
|
||||||
|
−1 2 4 |
|
|
|
|
|
0 0 2 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
1 2 1 0 0 0 |
|
|
3 |
2 0 0 0 0 |
|
|||||||||
|
2 −1 2 0 0 0 |
|
|
|
1 2 −1 0 0 0 |
|
|
||||||||
|
|
|
|
|
|
||||||||||
|
3 |
1 |
−1 0 0 0 |
|
, |
|
0 |
3 −2 2 0 0 |
|
, |
|||||
C = |
0 |
0 |
0 |
4 −1 1 |
|
F = |
0 |
0 1 |
|
2 −1 0 |
|
||||
|
|
|
|
|
|
|
|||||||||
|
0 |
0 |
0 |
−1 4 −1 |
|
|
|
0 |
0 0 1 3 1 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
0 |
0 0 0 −1 3 |
|
|
|||
|
2 1 1 |
|
|
|
|
||||||||||
|
1 0 |
0 |
0 |
|
|
|
0 0 0 |
|
0 |
|
|
||||
|
0 |
1 0 |
0 |
|
|
|
|
0 0 0 |
|
0 |
|
|
|
||
E = |
, |
|
|
O = |
|
. |
|
|
|||||||
|
0 |
0 |
1 0 |
|
|
|
|
0 0 0 |
|
0 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|||||||
|
0 |
0 |
0 |
1 |
|
|
|
|
0 0 0 |
|
0 |
|
|
|
|
Здесь:
А — симметрическая матрица (ее элементы расположены симметрично относительно главной диагонали
( ));
В — верхняя треугольная матрица с равными нулю элементами, расположенными ниже диагонали; С — клеточная матрица (ее ненулевые элементы составляют отдельные группы (клетки));
F — ленточная матрица (ее ненулевые элементы составляют «ленту», параллельную диагонали (в данном случае ленточная матрица D одновременно является тфакже трехдиагональной));
Е — единичная матрица (частный случай диагональной); О — нулевая матрица.
Определителем (детерминантом) матрицы А n-го порядка называется число D, равное
|
a11 |
a12 |
D = det A = |
a21 |
a22 |
|
. . . . . |
|
|
an1 |
an2 |
. . . a1n
.. .... a.2n. = ∑(−1)k a1α a2β ...anω. (5.3)
. . . ann
Здесь индексы
. . . , 

пробегают все возможные n! перестановок номеров 1, 2, ..., п; k — число инверсий
в данной перестановке.
Необходимым и достаточным условием существования единственного решения системы линейных уравнений является условие D
0. В случае равенства нулю определителя системы матрица называется вырожденной, при этом система линейных уравнений (5.1) либо не имеет решения, либо имеет их
бесчисленное множество. |
|
Все эти случаи легко проиллюстрировать геометрически для системы |
|
a1x +b1 y = c1, |
(5.4) |
a2 x +b2 y = c2. |
Каждое уравнение описывает прямую на плоскости; координаты точки пересечения указанных прямых являются решением системы (5.4).
Рассмотрим три возможных случая взаимного расположения двух прямых на плоскости: 1) прямые пересекаются — коэффициенты системы (5.4) не пропорциональны:
|
|
a1 |
|
|
|
b1 |
|
|
|
(5.5) |
||
|
|
|
|
≠ b |
; |
|
||||||
|
|
a |
2 |
|
|
|||||||
|
|
|
|
|
|
2 |
|
|
|
|
||
2) прямые параллельны — коэффициенты системы (5.4) подчиняются условиям |
|
|||||||||||
|
a1 |
= |
b1 |
|
≠ |
c1 |
; |
(5.6) |
||||
|
|
b2 |
|
c2 |
||||||||
|
a2 |
|
|
|
|
|
|
|
||||
3) прямые совпадают — все коэффициенты (5.4) пропорциональны:
|
a1 |
|
= |
b1 |
= |
|
|
c1 |
. |
(5.7) |
||
|
a |
b |
|
|
|
|||||||
|
|
|
|
c |
|
|
|
|||||
2 |
|
2 |
2 |
|
|
|
|
|||||
Запишем определитель D системы (5.4) в виде |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
D = |
|
a1 |
b1 |
|
. |
|||
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
a |
b |
|
|
|
|
|
|
|
|
|
|
2 |
2 |
|
|
||
Отметим, что при выполнении условия (5.5) D
0, и система (5.4) имеет единственное решение. В случаях
отсутствия решения или при бесчисленном множестве решений имеют место соответственно соотношения (5.6) или (5.7), из которых получаем D=0.
На практике, особенно при вычислениях на ЭВМ, когда происходят округление или отбрасывание младших разрядов чисел, далеко не всегда удается получить точное равенство определителя нулю. При D

0 прямые
могут оказаться почти параллельными (в случае системы двух уравнений); координаты точки пересечения этих прямых весьма чувствительны к изменению коэффициентов системы.
Таким образом, малые погрешности вычислений пли исходных данных могут привести к существенным погрешностям в решении. Такие системы уравнений называются плохо обусловленными.
Заметим, что условие D
0 является необходимым для плохой обусловленности системы линейных уравне-
ний, но не достаточным. Например, система уравнений n-го порядка с диагольной матрицей с элементами aii=0.1 не является плохо обусловленной, хотя ее определитель мал (D =10-n).
Геометрическая иллюстрация системы двух уравнений; при малом изменении параметров одной из прямых координаты точки пересечения мало изменяются в случае а и заметно изменяются в случае b
Приведенные соображения справедливы и для любого числа уравнений системы (5.1) хотя в случае п>3 нельзя привести простые геометрические иллюстрации. При п = 3 каждое уравнение описывает плоскость в пространстве, и в случае почти параллельных плоскостей или линий их опарного пересечения получаем плохо обусловленную систему трех уравнений.
О методах решения линейных систем. Методы решения систем линейных уравнений делятся на две группы
— прямые и итерационные. Прямые методы используют конечные соотношения (формулы) для вычисления неизвестных. Они дают решение после выполнения заранее известного числа операций. Эти методы сравнительно просты и наиболее универсальны, т. е. пригодны для решения широкого класса линейных систем.
Вместе с тем прямые методы имеют и ряд недостатков. Как правило, они требуют хранения в оперативной памяти компьютера сразу всей матрицы, и при больших значениях п расходуется много места в памяти. Далее, прямые методы обычно не учитывают структуру матрицы — при большом числе нулевых элементов в разреженных матрицах (например, клеточных или ленточных) эти элементы занимают место в памяти машины, и над ними проводятся арифметические действия. Существенным недостатком прямых методов является также накапливание погрешностей в процессе решения, поскольку вычисления на любом этапе используют результаты предыдущих операций. Это особенно опасно для больших систем, когда резко возрастает общее число операций, а также для плохо обусловленных систем, весьма чувствительных к погрешностям. В связи с этим прямые методы используются обычно для сравнительно небольших (п ≤200) систем с плотно заполненной матрицей и не близким к нулю определителем.
Отметим еще, что прямые методы решения линейных систем иногда называют точными, поскольку решение выражается в виде точных формул через коэффициенты системы. Однако точное решение может быть получено лишь при выполнении вычислений с бесконечным числом разрядов (разумеется, при точных значениях коэффициентов системы). На практике при использовании ЭВМ вычисления проводятся с ограниченным числом знаков, определяемым разрядностью машины. Поэтому неизбежны погрешности в окончательных результатах.
Итерационные методы — это методы последовательных приближений. В них необходимо задать некоторое приближенное решение — начальное приближение. После этого с помощью некоторого алгоритма проводится один цикл вычислений, называемый итерацией. В результате итерации находят новое приближение. Итерации проводятся до получения решения с требуемой точностью. Алгоритмы решения линейных систем с использованием итерационных методов обычно более сложные по сравнению с прямыми методами. Объем вычислений заранее определить трудно.
Тем не менее итерационные методы в ряде случаев предпочтительнее. Они требуют хранения в памяти машины не всей матрицы системы, а лишь нескольких векторов с п компонентами. Иногда элементы матрицы можно совсем не хранить, а вычислять их по мере необходимости. Погрешности окончательных результатов при использовании итерационных методов не накапливаются, поскольку точность вычислений в каждой итерации определяется лишь результатами предыдущей итерации и практически не зависит от ранее выполненных вычислений. Эти достоинства итерационных методов делают их особенно полезными в случае большого числа уравнений, а также плохо обусловленных систем. Следует отметить, что при этом сходимость итераций может быть очень медленной; поэтому ищутся эффективные пути ее ускорения.
Итерационные методы могут использоваться для уточнения решений, полученных с помощью прямых методов. Такие смешанные алгоритмы обычно довольно эффективны, особенно для плохо обусловленных систем. В последнем случае могут также применяться методы регуляризации.
Другие задачи линейной алгебры. Кроме решения систем линейных уравнений существуют другие задачи линейной алгебры — вычисление определителя, обратной матрицы, собственных значений матрицы и др. Легко вычисляются лишь определители невысоких порядков и некоторые специальные типы определителей. В частности, для определителей второго и третьего порядков соответственно имеем
|
|
|
|
|
a11 |
a12 |
= a a −a a , |
|||
|
|
|
|
|
a21 |
a22 |
11 |
12 |
12 |
21 |
|
|
|
|
|
|
|
|
|
||
a11 |
a12 |
a13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
a21 |
a22 |
a23 |
|
= a11a22a33 +a12a23a31 +a21a32a13 −a31a22a13 −a21a12a33 −a32a23a11. |
||||||
a31 |
a32 |
a33 |
|
|
|
|
|
|
|
|
Определитель треугольной матрицы равен произведению ее элементов, расположенных на главной диагонали: D=a11a22…ann. Отсюда также следует, что определитель единичной матрицы равен единице, а
нулевой — нулю: detE=1, det O=0.
В общем случае вычисление определителя оказывается значительно более трудоемким. Определитель D порядка n имеет вид (5.3)
D = ∑(−1)k a1α a2β ...anω.
Из этого выражения следует, что определитель равен сумме п\ слагаемых, каждое из которых является произведением п элементов. Поэтому для вычисления определителя порядка п (без использования специальных приемов) требуется (п— 1)n! умножений и n! — 1 сложений, т. е. общее число арифметических операций равно
N = n n!−1≈ n n! |
(5.8) |
Оценим значения N в зависимости от порядка п определителя:
Можно подсчитать время вычисления таких определителей на компьютере с заданным быстродействием. Примем для определенности среднее быстродействие равным 10 млн. операций в секунду. Тогда для вычисления определителя 10-го порядка потребуется около 3.6 сек, а при п = 20—свыше 150 тыс. лет.
Приведенные оценки указывают на необходимость разработки и использования экономичных численных методов, позволяющих эффективно проводить вычисления определителей.
Матрица A-1 называется, обратной по отношению к квадратной матрице А, если их произведение равно единичной матрице: AA-1 = A-1A =Е. В линейной алгебре доказывается, что всякая невырожденная матрица А (т. е. с отличным от нуля определителем D) имеет обратную. При этом
det A−1 =1/ D.
Запишем исходную матрицу в виде |
|
|
|
|
|
|
... |
a1 j |
... |
a1n |
|
a11 |
|
||||
. . . . . . . . . . . |
|
||||
A = a |
... |
a |
... |
a |
. |
i1 |
|
ij |
|
in |
|
|
|
|
|
|
|
. . . . . . . . . . . |
|
||||
a |
... |
a |
... |
a |
|
n1 |
|
nj |
|
nn |
|
Минором элемента |
называется определитель (n-1)-го порядка, образованный из определителя матрицы А |
||
|
|
||
зачеркиванием i-й строки и j-го столбца. |
|
||
Алгебраическим дополнением |
элемента |
называется его минор, взятый со знаком плюс, если сумма |
|
|
|
|
|
i+j номеров строки i и столбца j четная, и со знаком минус, если эта сумма нечетная, т. е.
|
a11 |
... |
a1, j−1 |
a1, j+1 |
... |
a1n |
|
. . . . . . . . . . . . . . . . . . . . . |
|||||
Aij = (−1)i+ j |
a |
... |
a |
a |
... |
a |
a i−1,1 |
... |
a i−1, j−1 |
a i−1, j+1 |
... |
a i−1,n |
|
|
i+1,1 |
|
i+1, j−1 |
i+1, j+1 |
|
i+1,n |
|
. . . . . . . . . . . . . . . . . . . . . |
|||||
|
an1 |
... |
an, j−1 |
an, j+1 |
... |
ann |
.
.
.
Каждый элемент (i,j = l, ..., n) обратной матрицы Z=A-1 равен отношению алгебраического дополнения Aij
элемента aji (не aij) исходной матрицы А к значению ее определителя D:
|
A11 |
|
|
|
|
A21 |
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
D |
|
|
|
A12 |
|
|
|
|
A22 |
|
|
|
|
|
|
|
||
Z = A−1 = |
D |
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
. . . . . . |
|
||||||
|
A |
|
|
|
|
A |
|
|
1n |
|
|
|
|
2n |
|
|
D |
|
|
|
|
D |
|
... An1
D
... An2
D
. . . . . . .
... Ann
D
Здесь, как и выше, можно также подсчитать число операций, необходимое для вычисления обратной матрицы без использования специальных методов. Это число равно сумме числа операций, с помощью которых вычисляются
алгебраических дополнений, каждое из которых является определителем (п-1)-го порядка, и 

делений алгебраических до полyчений на определитель D. Таким образом, общее число операций для вычислений обратной матрицы равно
N = (n −1) (n −1)!−1 n2 + n2 + n n!−1= n2 n!−1.
Важной задачей линейной алгебры является также вычисление собственных значений матрицы.
§1. Прямые методы. Метод Гаусса. Метод главных диагоналей. Определитель и обратная матрица. Метод прогонки.
1.1 Прямые методы
Вводные замечания. Одним из способов решения системы линейных уравнений является правило Крамера, согласно которому каждое неизвестное представляется в виде отношения определителей. Запишем его для системы
|
|
|
|
|
a1x +b1 y = c1 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
a2 x +b2 y = c2 |
|
|
|
|
|
|
|
|||||
Тогда |
x = D1 / D, y = D1 / D, |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
||||||||||
D = |
|
a1 b1 |
|
, |
D |
= |
|
c1 b1 |
|
, |
D |
= |
|
a1 c1 |
|
. |
|
|
|
|
|
|
|
||||||||||||
|
|
a2 b2 |
|
|
1 |
|
|
c2 b2 |
|
|
2 |
|
|
a2 |
c2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Можно попытаться использовать это правило для решения систем уравнений произвольного порядка. Однако при большом числе уравнений потребуется выполнить огромное число арифметических операций, поскольку для вычислений п неизвестных необходимо найти значения определителей, число которых n+1. Количество арифметических операций можно оценить с учетом формулы (8). При этом предполагаем, что определители вычисляются непосредственно — без использования экономичных методов. Тогда получим
N = (n +1)(n n!−1) + n.
Поэтому правило Крамера молено использовать лишь для решения систем, состоящих из нескольких уравнений.
Известен также метод решения линейной системы с использованием обратной матрицы. Система записывается в виде Аx =b . Тогда, умножая обе части этого векторного уравнения слева на обратную матрицу A-1, получаем x= A-1b. Однако если не использовать экономичных схем для вычисления обратной матрицы, этот способ также непригоден для практического решения линейных систем при больших значениях п из-за большого объема вычислений.
Наиболее распространенными среди прямых методов являются метод исключения Гаусса и его модификации.
Ниже рассматривается применение метода исключения для решения систем линейных уравнений, а также для вычисления определителя и нахождения обратной матрицы.
1.2 Метод Гаусса.
Он основан на приведении матрицы системы к треугольному виду. Это достигается последовательным исключением неизвестных из уравнений системы. Сначала с помощью первого уравнения исключается xi из всех последующих уравнений системы. Затем с помощью второго уравнения исключается х2 из третьего и всех последующих уравнений. Этот процесс, называемый прямым ходом метода Гаусса, продолжается до тех пор, пока в левой части последнего (n-го) уравнения не останется лишь один член с неизвестным хп, т. е. матрица системы будет приведена к треугольному виду. (Заметим, что к такому виду приводится лишь невырожденная матрица, в противном случае метод Гаусса неприменим).
Обратный ход метода Гаусса состоит в последовательном вычислении искомых неизвестных: решая последнее сравнение, находим единственное неизвестное хп. Далее, используя это значение, из предыдущего уравнения вычисляем хп-1 и т. д. Последним найдем x1 из первого уравнения.
Рассмотрим применение метода Гаусса для системы
a11x1 + a12 x2 + a13x3 = b1,
a21x1 |
+ a22 x2 + a33x3 = b2 , |
(5.9) |
a31x1 + a32 x2 + a33x3 = b3. |
|
|
Для исключения x1 из второго уравнения прибавим к нему первое, умноженное на -а21/ а11. Затем, умножив первое уравнение на –а31/ а11 и прибавив результат к третьему уравнению, также исключаем из него x1. Получив равносильную систему уравнений вида
a11x1 + a12 x2 + a13x3 = b1, |
|
|||||||
|
a '22 x2 + a '23 x2 = b '2 , |
|
||||||
|
a '32 x2 + a '33 x2 = b '3; |
|
||||||
a 'ij = aij − |
ai1 |
a1 j , |
i, j = 2,3, |
(5.10) |
||||
|
|
|||||||
|
|
|
|
a11 |
|
|
||
b ' |
= b |
− |
ai1 |
b , |
i = 2,3. |
|
||
|
|
|||||||
i |
i |
1 |
|
|
||||
|
|
|
a11 |
|
|
|||
Теперь из третьего уравнения системы (5.10) нужно исключить х2. Для этого умножим второе уравнение на – а’32/ а’22 и прибавим результат к третьему. Получим
a11x1 + a12 x2 + a13x3 = b1, |
|
|
|
|
|
|||||
a '22 x2 + a '23 x3 = b '2 , |
|
|
|
|
|
|||||
a ''33 |
x3 = b ''3; |
|
|
|
|
|
|
|
(5.11) |
|
|
|
− a '32 |
|
|
|
|
a '32 |
|
|
|
a '' |
= a ' |
a ' |
|
, b '' |
= b ' − |
b ' |
|
. |
||
|
|
|
||||||||
33 |
33 |
a '22 |
|
23 |
3 |
3 |
a '22 |
2 |
|
|
Матрица системы (5.11) имеет треугольный вид. На этом заканчивается прямой ход метода Гаусса.
Заметим, что в процессе исключения неизвестных приходится выполнять операции деления на коэффициенты a11, a΄22 и т. д. Поэтому они должны быть отличными от нуля; в противном случае необходимо соответственным образом переставить уравнения системы. Перестановка уравнений должна быть предусмотрена в вычислительном алгоритме при его реализации на компьютере.
Обратный ход начинается с решения третьего уравнения системы (5.11)
x3 = b3'' / a3'' .
Используя это значение, можно найти х2 из второго уравнения, а затем х1 из первого:
Рисунок 5.1 !!!!!
x2 = a122' (b2' −a23' x3 ),
x1 = a1 (b1 −a12 x2 −a13x3 ). 11
Аналогично строится вычислительный алгоритм для линейной системы с произвольным числом уравнений.
Левая часть блок-схемы соответствует прямому ходу. Поясним смысл индексов: i — номер уравнения, из которого исключается неизвестное xk; j-номер столбца; k — номер неизвестного, которое исключается из оставшихся n-k уравнений (а также номер того уравнения, с помощью которого исключается из оставшихся n-k уравнений). Операция перестановки уравнений (т. е. перестановки соответствующих коэффициентов) служит для предотвращения деления на нулевой элемент. Правая часть блок-схемы описывает процесс обратного хода. Здесь i - номер неизвестного, которое определяется из i-го уравнения; j = i + 1, i + 2, ...-
номера уже найденных неизвестных.
Одной из модификаций метода Гаусса является схема с выбором главного элемента. Она состоит в том, что требование неравенства нулю диагональных элементов akk, на которые происходит деление в процессе исключения, заменяется более жестким: из всех оставшихся в k-м столбце элементов нужно выбрать наибольший по модулю и переставить уравнения так, чтобы этот элемент оказался на месте элемента akk.
Рисунок 5.2 !!!!!
Блок-схема алгоритма выбора главного элемента приведена на Рисунок 5.1 . Она дополняет блок-схему метода Гаусса
Здесь введены новые индексы: l— помер наибольшего по абсолютной величине элемента матрицы в столбце с номером k (т. е. среди элементов akk, …, akm,…, akn); m — текущий номер элемента, с которым происходит сравнение. Заметим, что диагональные элементы матрицы называются ведущими элементами; ведущий элемент akk — это коэффициент при k-м неизвестном в k-м уравнении на k-м шаге исключения.
Благодаря выбору наибольшего по модулю ведущего элемента уменьшаются множители, используемые для преобразовании уравнений, что способствует снижению погрешностей вычислений. Поэтому метод Гаусса с выбором главного элемента обеспечивает приемлемую точность решения для сравнительно небольшого числа (n< 100) уравнений. И только для плохо обусловленных систем решения, полученные по этому методу, ненадежны.
Метод Гаусса целесообразно использовать для решения систем с плотно заполненной матрицей. Все элементы матрицы и правые части системы уравнений находятся в оперативной памяти машины. Объем вычислений определяется порядком системы n: число арифметических операций примерно равно (2/3) п3.
Пример. Рассмотрим алгоритм решения линейной системы методом Гаусса и некоторые особенности этого метода для случая трех уравнений:
10x1 −7x2 |
= 7, |
−3x1 +3x2 +6x3 = 4,
5x1 − x2 +5x3 = 6.
Исключим x1 из второго и третьего уравнений. Для этого сначала умножим первое уравнение на 0.3 и результат прибавим ко второму, а затем умножим первое же уравнение на -0.5 и результат прибавим к третьему. Получим
10x1 −7x2 |
= 7, |
−0.1x2 +6x3 = 6.1,
2.5x2 +5x3 = 2.5.
Прежде чем исключать х2 из третьего уравнения, заметим, что коэффициент при х2 во втором уравнении (ведущий элемент) мал; поэтому было бы лучше переставить второе и третье уравнения. Однако мы проводим сейчас вычисления в рамках точной арифметики и погрешности округлении не опасны, поэтому продолжим исключение. Умножим второе уравнение на 25 и результат сложим с третьим уравнением. Получим систему в треугольном виде:
10x1 −7x2 |
= 7, |
−0.1x2 +6x3 = 6.1, 155x3 =155.
На этом заканчивается прямой ход метода Гаусcа.
Обратный ход состоит в последовательном вычислении х3, х2, х1 соответственно из третьего, второго, первого уравнений. Проведем эти вычисления:
x |
= |
155 |
=1, x |
|
= |
6x3 −6.1 |
= −1, |
x |
= |
7x2 +7 |
= 0. |
155 |
|
0.1 |
10 |
||||||||
3 |
|
|
2 |
|
|
1 |
|
|
Подстановкой в исходную систему легко убедиться, что (0, - 1, 1) и есть ее решение.
Изменим теперь слегка коэффициенты системы таким образом, чтобы сохранить прежним решение и вместе с тем при вычислениях использовать округления. Таким условиям, в частности, соответствует система
10x1 −7x2 = 7,
−3x1 + 2.099x2 +6x3 = 3.901,
5x1 − x2 +5x3 = 6.
Здесь изменены коэффициент при х2 и правая часть второго уравнения. Будем снова вести процесс исключения, причем вычисления проведем в рамках арифметики с плавающей точкой, сохраняя пять разрядов числа. После первого шага исключения получим
10x1 −7x2 = 7, −0.001x2 +6x3 = 6.001,
2.5x2 +5x3 = 2.5.
Следующий шаг исключения проводим при малом ведущем элементе (-0.001). Чтобы исключить х2 из третьего уравнения, мы вынуждены умножить второе уравнение на 2500. При умножении получаем число 15002,5, которое нужно округлить до пяти разрядов. В результате получаем третье уравнение в виде
15005x3 =15006.
Отсюда х3 = 15 006/15 005 = 1.0001. Из второго и первого уравнений найдем |
|
|||||
x = |
6.001−6 1.0001 |
|
= −0.4, |
x = |
7 +7 (−0.4) |
= 0.42. |
|
|
|||||
2 |
−0.001 |
|
1 |
10 |
|
|
|
|
|
|
|||
Вычисления проводились с усечением до пяти разрядов по аналогии с процессом вычислений на компьютере. В результате этого было получено решение (0.42, - 0.4, 1.0001) вместо (0, - 1,1).
Такая большая неточность результатов объясняется малой величиной ведущего элемента. В подтверждение этому переставим сначала уравнения системы:
10x1 −7x2 = 7,
2.5x2 +5x3 = 2.5,
−0.001x2 +6x3 = 6.001.
Исключим теперь х2 из третьего уравнения, прибавив к нему второе, умноженное на 0.0004 (ведущий элемент
