Для решения систем линейных уравнений используется два основных метода решений, прямые методы, также называемые точными и итерационные методы, при использовании которых ответ в любом случае будет приближённым.
Особенность прямых методов состоит в том, что вычисления в них всегда проводятся точно, например, с использованием целых чисел, но при этом эти методы трудно применимы для вычисления решений для больших систем. К прямому методу относится, например, метод Крамера.
Ниже подробно рассмотрены итерационные методы решения СЛАУ.
Сущность итерационных методов решения систем линейных уравнений
Как уже отмечалось выше, итерационные методы в принципе являются приближёнными. Их сущность состоит в том, что сначала записывается некоторая последовательность столбцов матрицы, после чего производится поочередное вычисление каждого столбца. Каждый новый столбец вычисляется на основе вычисленных предыдущих, при этом с каждым вычислением получается всё более точное приближение искомого решения. Когда достигнута необходимая точность, процесс вычисления прерывают и в качестве решения используют последний вычисленный столбец.
Процесс вычисления одного столбца называется итерацией.
Различают несколько основных способов итерационного решения СЛАУ:
- Метод Гаусса-Зейделя;
- Метод Якоби.
Метод Якоби (метод простых итераций СЛАУ)
Рассмотрим систему уравнений, с коэффициентами, которые можно записать в виде матрицы:
A=(a11a12…a1na21a22…a2n…………an1an2…ann)
Саму же систему уравнений можно записать в виде равенства A⋅X=F, где X — вектор-столбец собственных значений системы, а F — вектор-столбец свободных членов.
Метод состоит в том, чтобы в каждом уравнении системы выразить соответственно x1,x2,…,xn и затем получить новую матрицу B, у которой элементы главной диагонали принимают нулевые значения.
В общем виде формула для вычисления корней уравнений записывается так: →x=B→x+→g
Добиться такого вида от системы можно следующими способами:
B=E–D−1A=D−1(D−A),→g=D−1→b;
B=−D−1(L+U)=−D−1(A−D),→g=D−1→b;
D−1ii=1Dii,Dii≠0,i=1,2,…,n.
Здесь D — матрица, у которой нулевые все элементы, кроме элементов на главной диагонали, а на главной диагонали находятся соответствующие элементы матрицы A. Матрицы U и L означают верхнетреугольную матрицу и нижнетреугольную соответственно; их значимые элементы соответствуют частям матрицы A. Буквой Е же обозначается единичная матрица соответствующей размерности.
Процедура нахождения корней тогда запишется так:
→x(k+1)=B→x(k)+→g
Для конкретного элемента она будет выглядеть так:
xk+1i=1aii(bi−∑i≠jaij⋅x(jk)(1), где i=1,2,…,n
буквой (k) во всех формулах выше обозначается номер итерации, сама же формула (1) называется рекуррентной.
Окончание вычисления происходит в том случае, если разница между вычислениями в двух соседних итераций составляет не более чем ε_1:
||x^{(n+1)}-x^{(n)}||
В упрощённой форме условие окончания итераций выглядит как ||x^{(n+1)}-x^{(n)}||
Порядок решения СЛАУ методом Якоби такой:
- Приведение системы уравнений к виду, в котором на каждой строчке выражено какое-либо неизвестное значение системы.
- Произвольный выбор нулевого решения, в качестве него можно взять вектор-столбец свободных членов.
- Производим подстановку произвольного нулевого решения в систему уравнений, полученную под пунктом 1.
- Осуществление дополнительных итераций, для каждой из которых используется решение, полученное на предыдущем этапе.
Метод Гаусса-Зейделя
Сущность этого метода состоит в том, что в нём переносятся в правые части все члены уравнений, индекс при которых больше индекса, выражаемого x. В краткой форме это можно записать так:
(L + D) \cdot \overrightarrow{x} = -U\overrightarrow{x} + \overrightarrow{b}
Сами итерации в методе Гаусса-Зейделя производятся по формуле:
(L +D)\overrightarrow{x}^{(k+1)}=-U\overrightarrow{x}^{(k)} + \overrightarrow{b}
Метод Гаусса-Зейделя похож на метод Якоби, но здесь полученные значения переменных используются не исключительно для следующей итерации, а сразу для следующего вычисления значения x.
Метод простых итераций: пример решения
Дана система уравнений:
\begin{cases} 10x_1 – x_2 + 2x_3 = 6 \\ -x_1 + 11x_2 – x_3 + 3x_4 = 25 \\ 2x_1- x_2 + 10x_3 -x_4 = -11 \\ 3x_2 – x_3 + 8x_4 = 15 \end{cases}
Решите данную систему с помощью метода простых итераций.
Выберем в качестве нулевого приближения корни (0; 0; 0; 0) и подставим их в преобразованную систему:
\begin{cases} x_1 = (6 + 0 – (2 \cdot 0))/10 = 0,6 \\ x_2 = (25 + 0 – 0 – (3 \cdot 0))/11 = 25/11 = 2,2727 // x_3 = (-11 – (2 \cdot 0) + 0 + 0) /10 = -1,1 \\ x_4 = (15 – (3 \cdot 0) + 0) / 8 = 1,875\\ \end{cases}
Проведём 5 итераций, используя на каждой результат, полученный с предыдущей и для них получим следующую таблицу:
Рисунок 1. Таблица итераций для решения СЛАУ. Автор24 — интернет-биржа студенческих работ
Продолжать вычисление можно до достижения заданной требуемой точности. Точный ответ системы — (1; 2; -1; 1).