Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы: Lab3.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
287 Кб
Скачать
☆

Метод гаусса

О дним из самых известных прямых методов является метод Гаусса. Суть его в том, что система (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

  1. FOR J=1 TO N

  1. READ A(I,J) Ввод данных системы

  1. NEXT J

  1. READ B(I)

1 60 NEXT I

170 FOR I=1 TO N - 1

  1. FOR J=I+1 TO N

  1. A(J,I) = -A(J,I) / A(I,I)

  1. FOR K=I+1 TO N

  1. A(J,K)=A(J,K)+A(J,I)*A(I,K) Прямой ход

  1. NEXT К

  1. B(J)=A(J,I)*B(I)+B(J)

  1. NEXT J

250 NEXT I

2 60 X(N)=B(N)/A(N,N)

270 FOR I=N -1 TO 1 STEP -1

  1. H=B(I)

  1. FOR J=I+1 TO N

  1. H=H - A(I,J)*X(J) Обратный ход

  1. NEXT J

  1. X(I)=H / A(I,I)

3 30 NEXT I

3 40 FOR I=1 TO N

  1. PRINT "X("; I; ")="; X(I) Вывод на печать

360 NEXT I

370 END