Метод Гаусса. Система (1) путем последовательного исключения неизвестных приводится к системе с треугольной матрицей

Система (1) путем последовательного исключения неизвестных приводится к системе с треугольной матрицей, из которой и определяются значения неизвестных.

Процесс исключения неизвестных:

Пусть a11≠0. Разделим первое уравнение на a11 . Затем вычтем из каждого i –го (i≥2) уравнения, полученного после деления, первое, умноженное на ai1. В результате, после преобразований x1 окажется исключенным из всех уравнений кроме первого.

По той же схеме исключается x2, x3 и т.д.

Получается треугольная матрица с единичной главной диагональю.

Общая формула определения неизвестных

Из последнего уравнения сразу определяется xn, далее, подставляя его в предпоследнее уравнение, получаем xn-1 и т.д.

Процесс нахождения неизвестных по способу Гаусса распадается на два этапа:

- Первый – приведение к треугольному виду – прямой ход.

- Второй – определение неизвестных по полученным формулам – обратный ход.

Процесс исключения k –го неизвестного называется k –м шагом прямого хода.

Элементы называются ведущими.

Общие формулы пересчета коэффициентов системы на k -м шаге:

В методе Гаусса происходит деление строк на соответствующие ведущие элементы, поэтому, если на каком-то k –м шаге на главной диагонали окажется нулевой элемент , то среди элементов (i=k+1,..n) следует найти ненулевой и перестановкой строк переместить его на главную диагональ, а затем продолжить вычисления.

Для этого следует воспользоваться, например, методом Гаусса выбора главного элемента в столбце.

Суть которого состоит в определении максимального элемента в столбце текущей строки и перестановке строки с максимальным элементом в столбце с текущей строкой, если такой найден.

'Задание исходных данных For i = 1 To n For j = 1 To n a1(i, j) = a(i, j) 'коэффициенты при неизвестных Next Next For i = 1 To n x(i) = b(i) 'свободные члены Next flag = False
'прямой ход - исключение i-го неизвестного For i = 1 To n 'поиск главного элемента в i-м столбце k = i r = Abs(a1(i, i)) For j = i + 1 To n If Abs(a1(j, i)) > r Then k = j r = Abs(a1(j, i)) End If Next j If r = 0 Then 'определитель системы равен 0 flag = True Exit For End If If k <> i Then 'перестановка i-го и k-го уравнения r = x(k): x(k) = x(i): x(i) = r For j = 1 To n r = a1(k, j): a1(k, j) = a1(i, j): a1(i, j) = r Next j End If ' исключение i-го неизвестного r = a1(i, i) x(i) = x(i) / r For j = i To n a1(i, j) = a1(i, j) / r Next j For k = i + 1 To n r = a1(k, i) x(k) = x(k) - r * x(i) For j = i To n a1(k, j) = a1(k, j) - r * a1(i, j) Next j Next k Next i
'обратный ход – определение неизвестных If flag Then Picture3.Print "матрица вырождена" Else For i = n - 1 To 1 Step -1 For j = i + 1 To n x(i) = x(i) - a1(i, j) * x(j) Next Next

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: