Метод гаусса
О
дним
из самых известных прямых методов
является метод Гаусса. Суть его в том,
что система (1) приводится к треугольному
виду :
(2)
и в tаkom виде легко решается: сначала находится корень хn, затем xn-1 и т.д. Процесс приведения системы (1) к виду (2) называется прямым ходом, а процесс решения системы (2) - обратным ходом. Прямой ход можно выполнить разными способами (расчетными схемами) . Рассмотрим один из наиболее простых.
Предположим, что A11 0. (Если это не так, то уравнения в системе (1) меняют местами.) Тогда первое уравнение системы (1) оставляют без изменений, а остальные уравнения путем домножения на коэффициенты и сложения между собой заменяют эквивалентными уравнениями, не содержащими х1. Система приобретает следующий вид:
(3)
Все уравнения системы (3) кроме первого образуют систему вида (1), но на единицу меньшего порядка. К ней применяется аналогичный процесс по исключению переменной x2 и т.д. В конце концов мы придем к системе вида (2).
Погрешность решения, получаемого методом Гаусса, складывается из неустранимой погрешности исходных данных (если коэффициенты и сбободные члены системы приближенные числа) и погрешностей округления. Поскольку в процессе вычислений приходится выполнять очень много арифметических действий, то учесть погрешность результата очень трудно. При ручных вычислениях обычно в промежуточных результатах оставляют после запятой на 1-2 цифры больше, чем требуется в окончательном результате. Точность же в смысле малости модулей невязок проверяется непосредственно после получения решения.
Программное приложение
Приведем простую программу на языке Бейсик, реализующую метод Гаусса. Эта программа не универсальна. Она не отрабатывает случаи, когда возникает деление на нуль (при возникновении подобной ситуации следует либо поменять местами уравнения, либо установить, что определитель системы det А = 0). Тем he менее на практике данная программа обычно справляется со своей задачей, причем с минимальными затратами времени. Более сложные программы, отрабатывающие ситуации деления на нуль, можно найти в учебниках или справочниках по вычислительной математике.
1
Блок данных:
порядок системы и данные, записанные
построчно.
0
DATA < N >
20 DATA <Коэффициенты A(I,J) и свободные члены В(I) >
30 DATA .....……………
………………………………………………..
1
00
READ N
Ввод
порядка системы
110 FOR 1=1 ТО N
FOR J=1 TO N
READ A(I,J) Ввод данных системы
NEXT J
READ B(I)
1
60
NEXT I
170 FOR I=1 TO N - 1
FOR J=I+1 TO N
A(J,I) = -A(J,I) / A(I,I)
FOR K=I+1 TO N
A(J,K)=A(J,K)+A(J,I)*A(I,K) Прямой ход
NEXT К
B(J)=A(J,I)*B(I)+B(J)
NEXT J
250 NEXT I
2
60
X(N)=B(N)/A(N,N)
270 FOR I=N -1 TO 1 STEP -1
H=B(I)
FOR J=I+1 TO N
H=H - A(I,J)*X(J) Обратный ход
NEXT J
X(I)=H / A(I,I)
3 30 NEXT I
3
40
FOR I=1 TO N
PRINT "X("; I; ")="; X(I) Вывод на печать
360 NEXT I
370 END
