37832

Решение систем линейных алгебраических уравнений методом Гаусса с выбором главного элемента

Лабораторная работа

Математика и математический анализ

Метод Гаусса К необходимости решения систем линейных алгебраических уравнений СЛАУ приводят многие прикладные задачи физики радиофизики электроники других областей науки и техники. Из прямых методов популярным у вычислителей является метод Гаусса исключения переменных с выбором главного максимального по модулю элемента в столбце.1 Процесс ее решения методом Гаусса делится на два этапа называемых соответственно прямым и обратным ходом.

Русский

2013-09-25

207.5 KB

99 чел.

Лабораторная работа № 1

РЕШЕНИЕ  систем  линейных

алгебраичЕских  уравнений  МЕТОДОМ

ГАУССА  С  ВЫБОРОМ  ГЛАВНОГО  ЭЛЕМЕНТА

ЦЕЛЬ РАБОТЫ: изучить и программно реализовать на языке высокого уровня метод Гаусса с выбором главного элемента по столбцу, исследовать его точность и эффективность на тестовых задачах.

Метод Гаусса

К необходимости решения систем линейных алгебраических уравнений (СЛАУ) приводят многие прикладные задачи физики, радиофизики, электроники, других областей науки и техники. По этой причине разработке и исследованию методов решения СЛАУ уделяется повышенное внимание.

Для решения СЛАУ используются как прямые методы, позволяющие получить в случае отсутствия ошибок округления точное решение за конечное, заранее известное количество арифметических операций, так и итерационные методы. Итерационные методы используются для решения СЛАУ большого порядка, а также для уточнения решения, полученного прямыми методами.

Из прямых методов популярным у вычислителей является метод Гаусса (исключения переменных) с выбором главного (максимального по модулю) элемента в столбце. Поиск главного элемента позволяет, с одной стороны, ограничить рост коэффициентов на каждом шаге исключения и, следовательно, уменьшить влияние ошибок округления на точность решения, с другой, обеспечить для невырожденных систем выполнение условия  (отсутствие аварийных остановов вследствие деления на нуль).

Пусть задана система линейных алгебраических уравнений

 (1.1)

Процесс ее решения методом Гаусса делится на два этапа, называемых соответственно прямым и обратным ходом.

На первом этапе система (1.1) путем последовательного исключе-

ния переменных  сводится к эквивалентной системе с верхней треугольной матрицей коэффициентов:

 (1.2)

Исключение переменной  (k-й шаг прямого хода Гаусса) включает вычисление k-й строки треугольной матрицы:

 (1.3)

k-го свободного члена:

 (1.4)

преобразование уравнений системы (1.1) с номерами :

 (1.5)

В соотношениях (1.5) переменной внутреннего цикла является j, переменной внешнего цикла – i. Полное число шагов, за которое выполняется прямой ход Гаусса, равно n, т. е. расчеты по формулам (1.3) ÷ (1.5) выполняются для .

На втором этапе (обратный ход Гаусса) решают систему (1.2):

, (1.6)

последовательно определяя неизвестные

Описание алгоритма

Алгоритм решения СЛАУ методом Гаусса с выбором главного элемента по столбцу выглядит следующим образом:

Алгоритм 1.1

1. Присвоить компонентам массива перестановок  IOR(k)  исходные значения:

принять, после этого, .

2. Найти индекс , для которого

Это можно сделать так:

2.1. Положить AKK=0;

2.2. Вычислить в цикле ():

2.2.1. ;

2.2.2. Если , то перейти к п. 2.2.1;

2.2.3. .

3. Поменять местами значения  и , если :

и выбрать ведущий элемент

.

Если , то выйти из программы с информацией об ошибке ().

4. Исключить переменную  с помощью соотношений (1.3) ÷ (1.5) (прямой ход Гаусса):

4.1.

4.2.

4.3. Вычислить в цикле по i ():

4.3.1.

4.3.2.

4.3.3. .

5. Увеличить значение  на единицу и вернуться к п. 2, если  , иначе завершить прямой ход, вычислив

Если , то выйти из программы с сообщением .

6. Выполнить в цикле для  (обратный ход Гаусса):

.

Сделаем комментарии к описанному алгоритму. Выбор ведущего элемента  предполагает перестановку строк системы (1.1). Программно это нетрудно сделать, переставляя соответствующие строки матрицы коэффициентов и соответствующие компоненты вектора свободных членов. Подобную операцию можно и не выполнять, если ввести вспомогательный одномерный массив перестановок .  Первоначально в пункте 1 алгоритма его элементам ,  присваиваются исходные значения . Обратиться к элементу  матрицы коэффициентов с привлечением массива перестановок, значит использовать элемент , так как первоначально . Если , то обращение к элементам , приводит к использованию коэффициентов го уравнения системы. Следовательно, вместо перестановок строк матрицы коэффициентов достаточно поменять местами  и . Такой подход реализован в приведенном алгоритме при выборе ведущего элемента.

Выбор ведущего элемента по столбцу обеспечивает выполнение условия , если матрица решаемой системы не вырождена. Сообщение  в пунктах 3 и 5 алгоритма свидетельствует о вырожденности матрицы.

Задание

  1.  Написать, отладить и исследовать на задачах (табл. 1.1), предложенных преподавателем, программу численного решения систем линейных алгебраических уравнений методом Гаусса с выбором главного элемента по столбцу.
  2.  Вычислить для каждой задачи вектор невязки  (для этого до начала выполнения прямого хода Гаусса матрицу  и вектор  необходимо сохранить)

и  оценить его норму

.

Содержание электронного  отчета

  1.  Текст программы.
  2.  Задачи, результаты их решения, вычисленные значения нормы вектора невязки.

Таблица 1.1

Матрица коэффициентов A

Вектор b

1

6

13

-17

13

29

-38

-17

-38

50

2

4

-5

2

1

-1

0

2

-2

1

1

2

1

1

1

2

3

2.30

3.50

1.70

5.70

-2.70

2.30

-0.80

5.30

-1.80

-6.49

19.20

-5.09

4

2.75

3.28

1.15

1.78

0.71

2.70

1.11

1.15

3.58

15.71

43.78

37.11

5

8.64

-6.39

4.21

1.71

4.25

7.92

5.42

1.84

-3.41

10.21

 3.41

12.29

6

21.547

10.223

51.218

-95.510

-91.065

12.264

-96.121

 -7.343

86.457

-49.930

-12.465

 60.812

7

2.60

3.00

-6.00

-4.50

3.00

3.50

-2.00

4.30

3.00

19.07

 3.21

-18.25

8

2.31

4.21

3.49

31.49

22.42

 4.85

1.52

3.85

28.72

40.95

30.24

42.81

9

2.50

-3.50

-6.50

-3.00

2.60

-3.50

4.60

1.50

7.30

-1.05

-14.46

-17.73

10

0.14

1.07

0.64

0.24

-0.83

0.43

-0.84

0.56

-0.38

1.11

0.48

-0.83

11

2.74

1.12

0.81

-1.18

0.83

1.27

3.17

-2.16

0.76

2.18

-1.15

3.23

12

1.80

3.10

4.51

2.50

2.30

-1.80

4.60

-1.20

3.60

2.20

3.60

-1.70

Продолжение табл. 1.1

Матрица коэффициентов A

Вектор b

13

2.0

0.4

0.3

1.0

1.0

0.5

-1.0

0.2

-0.1

4.0

1.0

2.5

1.0

-8.5

5.2

-1.0

1.0

2.0

3.0

-1.0

14

2.21

8.30

3.92

3.77

3.65

2.62

8.45

7.21

1.69

4.10

7.78

8.04

6.99

1.90

2.46

2.28

-8.35

-10.65

12.21

15.45

15

3.81

2.25

5.31

9.39

0.25

1.32

6.28

2.45

1.28

4.58

0.98

3.35

0.75

0.49

1.04

2.28

4.21

6.47

2.38

10.48

16

7.90

8.50

4.30

3.20

5.60

-4.80

4.20

-1.40

5.70

0.80

-3.20

-8.90

-7.20

3.50

9.30

3.30

6.68

9.95

8.60

1.00

17

0.1582

0.1968

0.2368

1.1161

1.1675

0.2071

0.2471

0.1254

0.1768

1.2168

0.2568

0.1397

0.1871

0.2271

1.2671

0.1490

1.6471

1.7471

1.8471

1.5471

18

4.11

-1.26

3.18

1.29

-1.26

2.00

-1.97

3.81

-5.99

4.00

0.49

-1.56

1.29

0.00

-1.00

0.00

-0.75

1.08

3.38

0.87

19

1

1

2

3

1

2

0

1

1

-2

1

2

1

3

0

2

10

11

5

19

20

2

1

2

1

3

1

1

1

11

5

3

3

5

2

2

4

2

1

-3

-3

9


 

А также другие работы, которые могут Вас заинтересовать

20434. Программное обеспечение промежуточного уровня 110.5 KB
  Программное обеспечение промежуточного уровня Ни распределенные ни сетевые операционные системы не соответствуют нашему определению распределенных систем данному в разделе 1. На ум приходит вопрос: а возможно ли вообще разработать распределенную систему которая объединяла бы в себе преимущества двух миров масштабируемость и открытость сетевых операционных систем и прозрачность и относительную простоту в использовании распределенных операционных систем Решение было найдено в виде дополнительного уровня программного обеспечения который...
20435. Систе́ма управле́ния ба́зами да́нных 159 KB
  Основные функции СУБД управление данными во внешней памяти на дисках; управление данными в оперативной памяти с использованием дискового кэша; журнализация изменений резервное копирование и восстановление базы данных после сбоев; поддержка языков БД язык определения данных язык манипулирования данными. Обычно современная СУБД содержит следующие компоненты: ядро которое отвечает за управление данными во внешней и оперативной памяти и журнализацию процессор языка базы данных обеспечивающий оптимизацию запросов на извлечение и...
20436. Модель клиент-сервер 39 KB
  Модель клиентсервер До этого момента мы вряд ли сказали чтото о действительной организации распределенных систем более интересуясь тем как в этих системах организованы процессы. Они пришли к выводу о том что мышление в понятиях клиентов запрашивающих службы с серверов помогает понять сложность распределенных систем и управляться с ней. В этом разделе мы кратко рассмотрим модель клиентсервер. Клиенты и серверы В базовой модели клиентсервер все процессы в распределенных системах делятся на две возможно перекрывающиеся группы.
20437. Разделение приложений по уровням 76 KB
  Например сервер распределенной базы данных может постоянно выступать клиентом передающим запросы на различные файловые серверы отвечающие за реализацию таблиц этой базы данных. В этом случае сервер баз данных сам по себе не делает ничего кроме обработки запросов. Однако рассматривая множество приложений типа клиентсервер предназначенных для организации доступа пользователей к базам данных многие рекомендовали разделять их на три уровня: уровень пользовательского интерфейса; уровень обработки; уровень данных. Уровень обработки обычно...
20438. CASE-средства 1.81 MB
  В предыдущей лекции было рассказано о видах диаграмм UML и даны некоторые рекомендации относительно последовательности их построения. Мы уже знаем что нотация UML специально разрабатывалась в расчете на то чтобы диаграммы можно было легко рисовать от руки. В этой лекции мы познакомимся с некоторыми подобными пакетами а именно: IBM Rational Rose; Borland Together; Microsoft Visio; Sparx Systems Enterprise Architect; Gentleware Poseidon; SmartDraw; Dia; Telelogic TAU G2; StarUML; другие программы UML отличное средство моделирования но как...
20439. Rational Rose DataModeler 29.5 KB
  Унифицированный язык объектноориентированного моделирования Unified Modeling Language UML явился средством достижения компромисса между этими подходами. Существует достаточное количество инструментальных средств поддерживающих с помощью UML жизненный цикл информационных систем и одновременно UML является достаточно гибким для настройки и поддержки специфики деятельности различных команд разработчиков. Таким языком оказался UML. Создание UML началось в октябре 1994 г.
20440. CASE-средства 39.5 KB
  Microsoft Visio Visio решение для построения диаграмм от Microsoft. По словам разработчиков Visio помогает преобразовать технические и бизнесконцепции в визуальную форму. Visio имеет некоторые дополнительные возможности но все же повторим по большей мере это только средство для иллюстрирования документов MS Office не дотягивающее до уровня пакетов которые мы описывали ранее. Изобразительные же возможности Visio действительно весьма широки: Используя предопределенные фигуры Visio Professional draganddrop и мастера вы можете...
20441. Эволюция CASE-средств 99.5 KB
  Таким образом CASEтехнологии не могут считаться самостоятельными методологиями они только делают более эффективными пути их применения. CASE ≈ не революция в программо технике: современные CASEсредства являются естественным продолжением эволюции всей отрасли средств разработки ПО. Традиционно выделяют шесть периодов качественно отличающихся применяемой техникой и методами разработки ПО которые характеризуются использованием в качестве инструментальных следующих средств: ассемблеров дампов памяти анализаторов компиляторов...
20442. Варианты архитектуры клиент-сервер 122 KB
  Варианты архитектуры клиентсервер Разделение на три логических уровня обсуждавшееся в предыдущем пункте наводит на мысль о множестве вариантов физического распределения по отдельным компьютерам приложений в модели клиентсервер. Серверы реализующие все остальное то есть уровни обработки и данных. Проблема подобной организации состоит в том что на самом деле система не является распределенной: все происходит на сервере а клиент представляет собой не что иное как простой терминал. Многозвенные архитектуры Один из подходов к организации...