Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория / 2 / 06-SLAY.DOC
Скачиваний:
79
Добавлен:
30.04.2013
Размер:
440.32 Кб
Скачать

Блок-схема метода Гаусса

Ввод n , {A} , {b}

For k = 1 to n-1 do

For i = k+1 to n do

For j=k+1 to n do

For i = n - 1 downto 1 do

S=0

For j = i+1 to n do

S = S + aij * xj

xi = (bi - S)/aii

Вывод {x}

Одной из модификаций метода Гаусса является схема с выбором главного элемента. Она состоит в том, что требование неравенства нулю диагональных элементов akk на которые происходит деление в процессе исключения, заменяется более жестким: из всех оставшихся в k-ом столбце элементов нужно выбрать наибольший по модулю и переставить уравнение так, чтобы этот элемент оказался на месте элемента akk.

Благодаря выбору наибольшего по модулю ведущего элемента уменьшаются множители, используемые для преобразования уравнений, что способствует снижению погрешностей вычислений.

Метод Гаусса целесообразно использовать для решения систем с плотно заполненной матрицей. Все элементы матрицы и правые части системы уравнений находятся в оперативной памяти ЭВМ. Объем вычислений определяется порядком системы n :число арифметических операций примерно равно (2.3)n3 .

Пример. Решить систему

10х1 - 7х2 = 7

-3х1 + 2.099х2 + 6х3 = 3.901

1 - х2 + 5х3 = 6

используя арифметику с плавающей точкой и сохраняя пять разрядов числа.

1) Сначала необходимо исключить х1 из второго и третьего уравнения. Для этого сначала умножим первое уравнение на 0.3 и сложим со вторым: А после этого, первое уравнение умножим на -0.5 и сложим с третьим. В результате будет получена система

10х1 - 7х2 =7

-0.001х2 +6х3 = 6.001

2.5х2 + 5х3 = 2.5

2) Чтобы исключить х2 из третьего уравнения необходимо умножить второе уравнение на 2500 и сложить с третьим. При умножении 6.001 на 2500 будет получено число 15002.5, которое необходимо округлить до 15002. Аналогично, при сложении 15002 + 2.5 будет получено 15004 . В результате получится система

10х1 - 7х2 =7

-0.001х2 +6х3 = 6.001

15005х3 = 15004.

3) Отсюда

х3 = 15004/15005 = 0.99993 .

Если подставить полученные значения в исходные уравнения, то можно убедиться, что ничего хорошего не получилось:

10*(-0.35) - 7*(-1.5) = 7 (7=7)

-3*(-0.35)+2.099*(-1.5) + 6*0.99993 = 1.05 -3.1485 +5.9995 = 3.9008 (3.9008 ¹ 3.901)

5*(-0.35) - (-1.5) + 5*0.99993 = -1.75 + 1.5 + 4.9996 = 4.7496 (4.7496 ¹ 6) .

Такая большая неточность результатов объясняется малой величиной ведущего элемента. В подтверждение этого, после первого шага переставим местами второе и третье уравнения системы:

10х1 - 7х2 =7

2.5х2 + 5х3 = 2.5

-0.001х2 +6х3 = 6.001

Исключим теперь х2 из третьего уравнения, умножив его на 0.0004. Тогда третье уравнение примет вид

6.002х3 = 6.002

Отсюда можно найти х3 = 1 . С помощью второго и третьего уравнений находим

Таким образом, в результате выбора наибольшего по модулю из оставшихся в данном столбце элементов, погрешность решения в рамках данной точности исчезла.

Итерационные методы решения слау

При решении СЛАУ итерационными методами можно выделить следующие этапы:

1. Приведение системы к итерационной форме или составление приведенной формы системы.

2. Анализ сходимости решения.

3. Выполнение итерации или расчет элементов вектора очередного приближения к решению.

4. Проверка условия окончания решения.

Соседние файлы в папке 2