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

Автор работы: Пользователь скрыл имя, 24 Сентября 2012 в 19:48, курсовая работа

Описание работы

Целью данной курсовой работы является следующее: исследовать область применения метода Гаусса к решению различных прикладных задач и
разработать программу «Решение задач методом Гаусса», выполняющую следующие операции:
1) Решение СЛАУ методом Гаусса
2) Нахождение обратной матрицы методом Гаусса
3) Вычисление определителей методом Гаусса

Содержание работы

Введение
1 Теоретические сведения 4
1.1 Решение системы алгебраических линейных уравнений методом Гаусса 4
1.2 Вычисление обратной матрицы методом Гаусса 8
1.3 Вычисление определителя методом Гаусса 9
2 Практическая часть 11
2.1 Декомпозиция задачи 11
2.2 Схема взаимодействия интерфейсных форм 12
2.3 Схема взаимодействия модулей 14
2.4 Описание процедур и функций 15
2.5 Обоснование выбора структуры представления данных 15
2.6 Руководство пользователю 15
2.7 Тестирование 19
Заключение 30
Список использованных источников 31
Приложение А - Символьная схема алгоритма 32
Приложение Б – Код программы 41

Файлы: 1 файл

курсовая работа.doc

— 647.00 Кб (Скачать файл)

 

 

Рисунок 2.2.5 - Диаграмма переходов состояний интерфейса программы

 

 

2.3 Схема взаимодействия  модулей 

 

Программа состоит из двух модулей:

  • Модуль интерфейса,
  • Модуль решения СЛАУ методом Гаусса.

Модуль решения СЛАУ методом Гаусса состоит из трех процедур:

  • Процедура нахождения СЛАУ методом Гаусса
  • Процедура нахождения обратной матрицы методом Гаусса
  • Процедура нахождения определителя методом Гаусса

 

Схема взаимодействия модулей представлена на рисунке 2.3.1

Рисунок 2.3.1 - Схема взаимодействия процедур модуля

 

 

 

 

 

 

2.4 Описание  процедур и функций 

 

Описание процедур и  функций программы, приведенное в таблице 2.4.1, включает название процедуры, входные и выходные параметры и назначение процедуры.

 

Таблица 2.4.1 - Описание процедур и функций

 

Название процедуры

Входные параметры

Выходные параметры

Назначение процедуры

Procedure Gauss (a:matrica; b:massiv;

n:integer;

var x:massiv;

var pr:byte)

a-матрица коэффициентов при неизвестных

b-вектор свободных членов

n-размерность СЛАУ

x-массив решений СЛАУ

Pr-признак существования

Нахождение корней

СЛАУ

  Function Opredelitel

(a:matrica; n:integer):real;

a-матрица коэффициентов при неизвестных

n-размерность СЛАУ

Det-значение определителя матрицы

Нахождение определителя матрицы

 

Procedure Obr_matrica

(a:matrica; n:integer;

var h:matrica;

var pr:byte)

a-матрица коэффициентов при неизвестных

n-размерность СЛАУ

h-обратная матрица

Pr-признак существования

Нахождение обратной матрицы


 

 

2.5 Обоснование  выбора структуры представления данных

 

Основными данными, которые необходимо представлять в программе, являются матрицы и векторы. В качестве структуры представления данных были выбраны динамические массивы, поскольку они позволяют задавать количество строк и столбцов матрицы (элементов в векторе) в процессе выполнения программы. Также динамические массивы можно удалять из памяти в процессе выполнения программы. Это позволяет экономить память.

 

 

2.6 Руководство  пользователю

 

Для того чтобы решить СЛАУ методом Гаусса необходимо ввести матрицу коэффициентов и векторов свободных членов (рисунок 2.6.1).

 

Рисунок 2.6.1 – Панель ввода данных

 

Количество коэффициентов матрицы вектора свободных членов можно ввести, нажав на соответствующую кнопку (рисунок 2.6.2).

 

Рисунок 2.6.2 – Кнопка введения количества коэффициентов матрицы и вектора свободных членов

 

Для решения СЛАУ методом  Гаусса необходимо нажать кнопку (рисунок 2.6.3).

 

Рисунок 2.6.3 – Кнопка запуска программы решения СЛАУ методом Гаусса

 

Результат решения СЛАУ будет представлен в векторе  неизвестных (рисунок 2.6.4).

 

Рисунок 2.6.4 – Панель результата решения СЛАУ

 

Для нахождения обратной матрицы необходимо ввести коэффициенты квадратной матрицы (рисунок 2.6.5), количество коэффициентов можно ввести с помощью кнопки (рисунок 2.6.6).

 

 

 

Рисунок 2.6.5 – Панель ввода квадратной матрицы

 

Рисунок 2.6.6 – Кнопка выбора количества коэффициентов матрицы

 

Для нахождения обратной матрицы необходимо нажать кнопку (рисунок 2.6.7).

 

Рисунок 2.6.7 – Кнопка запуска программы нахождения обратной матрицы

 

Результат работы программы  будет представлен на панели (рисунок 2.6.8)

 

 

Рисунок 2.6.8 – Панель результата нахождения обратной матрицы

 

Для нахождения определителя необходимо ввести коэффициенты квадратной матрицы (рисунок 2.6.9), количество коэффициентов можно ввести с помощью соответствующей кнопки (рисунок 2.6.10).

 

Рисунок 2.6.9 – Панель ввода квадратной матрицы

 

Рисунок 2.6.10 – Кнопка выбора количества коэффициентов матрицы

 

Для запуска программы необходимо нажать кнопку (рисунок 2.6.11).

 

Рисунок 2.6.11 – Кнопка запуска программы определителя матрицы 

 

Результат работы программы  будет представлен на панели (рисунок 2.6.12)

 

Рисунок 2.6.12 – Панель результата нахождения определителя

 

Данные в программу можно ввести двумя способами: с клавиатуры, либо открыть из файла.

При вводе с клавиатуры необходимо задать количество строк/столбцов матрицы и ввести сами элементы матрицы (в случае решения СЛАУ необходимо ввести еще элементы вектора свободных членов).

Для того чтобы очистить форму, нужно нажать на соответствующую  кнопку (рисунок 2.6.13).

 

Рисунок 2.6.13 – Кнопка «Очистить форму»

 

Для того, чтобы открыть  данные из файла, нужно нажать на соответствующую  кнопку (рисунок 2.6.14) и выбрать необходимый файл.

 

Рисунок 2.6.14 – Кнопка «Открыть данные из файла»

 

Кроме того, программа  позволяет сохранять в файл исходные данные и полученный результат. Для  этого необходимо нажать на кнопки, представленные на рисунках 2.6.15 и 2.6.16 соответственно.

 

Рисунок 2.6.15 – Кнопка « Сохранить данные в файл»»

 

Рисунок 2.6.16 – Кнопка «Сохранить результаты в файл»

 

 

 

Для того, чтобы  выйти  из файла, нужно нажать на соответствующую  кнопку (рисунок 2.6.17)

 

Рисунок 2.6.17 – Кнопка «Выход»

 

 

2.7 Тестирование

 

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

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

  • «белого» или «прозрачного ящика» (крайний правый подход);
  • «черного ящика» (крайний левый подход).

При тестировании с использованием стратегии «белого ящика» тесты  стараются подобрать так, чтобы хотя бы один раз пройти по каждой ветви алгоритма. Стратегия имеет существенный недостаток: по ней принципиально невозможно обнаружить пропущенный маршрут.

  При тестировании  с использованием стратегии «черного  ящика» структура программы считается неизвестной, и тесты подбираются так, чтобы проверить выполнение всех функций программы, а затем отследить реакцию на ввод некорректных данных.

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

 

 

 

 

 

 

 

 

 

 

 

 

Тест №1. Решение СЛАУ  методом Гаусса. Случай, когда СЛАУ имеет единственное решение (3 параметра, 3 уравнения).

Исходные данные:

Ожидаемый результат:

Результат работы программы: при занесении исходных данных, программа  выдала результат, приведенный на рисунке 2.7.1

 

Рисунок 2.7.1 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №2. Решение СЛАУ методом Гаусса. Случай, когда  СЛАУ имеет единственное решение (4 параметра, 4 уравнения).

Исходные данные:

Ожидаемый результат:

Результат работы программы: при исходных данных выше, программа  выдала результат, приведенный на рисунке 2.7.2.

 

Рисунок 2.7.2 -  Окно с  результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №3. Решение СЛАУ методом Гаусса. Ввод некорректных данных (не все коэффициенты матицы, вектора свободных членов введены).

Исходные данные:

Ожидаемый результат: элементы матрицы коэффициентов  и вектора свободных членов не введены или введены неверно.

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный на рисунке 2.7.3.

 

Рисунок 2.7.3 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №4. Решение СЛАУ методом Гаусса. Случай, когда СЛАУ не имеет решения (4 параметра, 4 уравнения).

Исходные данные:

Ожидаемый результат: система  не имеет решения.

Результаты работы программы: при занесении исходных данных выше, программа выдала результат, приведенный  на рисунке 2.7.4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2.7.4 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №5. Решение СЛАУ методом Гаусса. Случай, когда СЛАУ имеет множество решений (3 параметра, 3 уравнения).

Исходные данные:

Ожидаемый результат: система  имеет множество решений (вывод одного из базисных решений).

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный  на рисунке 2.7.5.

 

Рисунок 2.7.5 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №6. Обратная матрица. Случай, когда матрица имеет обратную матрицу.

Исходные данные:

Ожидаемый результат: с  помощью пакета Mathcat был получен следующий результат:

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный на рисунке 2.7.6.

 

 

 

 

 

 

 

Рисунок 2.7.6 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №7. Обратная матрица. Случай, когда матрица не имеет обратную матрицу.

Исходные данные:

Ожидаемый результат: обратная матрица не существует.

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный на рисунке 2.7.7.

 

 

 

 

Рисунок 2.7.7 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №8. Вычисление определителя. Случай, когда значение определителя равно числу.

Исходные данные:

Ожидаемый результат: 12

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный на рисунке 2.7.8.

Рисунок 2.7.7 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

 

Тест №9. Вычисление определителя. Случай, когда значение определителя равно числу.

Исходные данные:

Ожидаемый результат: 1120

Результат работы программы: при занесении исходных данных выше, программа выдала результат, приведенный на рисунке 2.7.9.

 

Рисунок 2.7.9 – Окно программы  с результатом решения

 

Анализ результата: полученный результат совпадает с ожидаемым.

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