К решению систем линейных алгебраических уравнений с большим числом неизвестных приводят многие практически важные задачи. Разработано множество методов, предназначенных для решения систем с матрицей того или иного вида. Все эти методы можно разделить на два больших класса: прямые (или точные) и итерационные.
Прямые методы дают решение системы за конечное число арифметических операций. Если коэффициенты системы не содержат погрешностей, а арифметические операции выполняются точно (без округления), то решение получается точным. Недостатки прямых методов: иногда требуется выполнение неприемлемо большого числа арифметических и логических операций; погрешности округления могут очень сильно исказить результат.
Итерационные методы позволяют получить приближенное решение с любой заданной точностью ε. Они дают искомое решение как предел последовательности приближений и различаются способами построения таких последовательностей. Недостатком этих методов является то, что построенные последовательности нередко оказываются расходящимися, т.е. конечного предела таких последовательностей может не существовать. Поэтому оказывается необходимым исследование сходимости.
|
|
Численное решение систем линейных
уравнений методом Гаусса
Система линейных алгебраических уравнений выглядит следующим образом:
в матричной форме такая система выглядит так:
,
где А – матица коэффициентов системы уравнений:
,
– вектор свободных членов (правых частей) уравнений, – вектор неизвестных:
Метод Гаусса (метод последовательного исключения неизвестных) состоит из прямого и обратного хода.
В результате прямого хода матрицы системы за m преобразований приводится к треугольному виду:
.
Количество преобразований исходной матрицы (m) в общем случае равно количеству уравнений в системе (n).
На каждом k -ом шаге преобразования выбирается ведущая строка (k) и ведущий элемент .
Формулы прямого хода метода Гаусса на k -ом шаге преобразования имеют следующий вид: для ведущей строки:
;
для строк, лежащих под ведущей строкой:
.
Элемент называется ведущим.
Обратный ход используется для вычисления значений неизвестных.
Система уравнений с треугольной матрицей А имеет следующий вид:
Очевидно, что
.
Формула обратного хода метода Гаусса (нахождения остальных неизвестных в обратном порядке) имеет вид:
.
При разработке программы необходимо учитывать то, что принципы индексации, принятые в математике и используемые при разработке программы, могут различаться: коэффициенту уравнения соответствует элемент массива А[j,i] (см. пункт«Описания массивов» стр. 38).
|
|
Приведём программу, использующую метод Гаусса для решения системы линейных уравнений (обратите внимание на комментарии, поясняющие назначение ключевых фрагментов программы):
program gauss;
const n = 3;
var A:array[1..n,1..n]of real;
x,b:array[1..n] of real;
i,j,n,p,ii,jj:integer; aii,akk:real;
Begin
{ввод исходных данных}
writeln('введите матрицу коэффициентов');
for j:=1 to n do
Begin