Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_численные_методы(есть опечатки).doc
Скачиваний:
8
Добавлен:
25.08.2019
Размер:
432.64 Кб
Скачать

Решение систем линейных уравнений

(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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]