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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

µние в СЛАУ, получим LUx = b, или Ux = L-1b. Т.е. процесс решения СЛАУ сводится к двум простым этапам.

На первом этапе решается СЛАУ Lz = b. Поскольку матрица системы - нижняя треугольная, решение можно записать в явном виде:

 

, , .

 

На втором этапе решается СЛАУ Ux = z с верхней треугольной матрицей. Здесь, как и на предыдущем этапе, решение представляется в явном виде:

 

, , .

 

Отметим, что второй этап эквивалентен обратному ходу методу Гаусса, тогда как первый соответствует преобразованию правой части СЛАУ в процессе прямого хода.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1 - Структурная схема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2 - Схема Шнейдермана

 

 

3. Реализация проекта

 

.1 Требования к программе

 

Программа работает на ПК под управлением ОС Windows 95/98/Me или Windows NT/2000/XP/2003/Vista/Seven. Работа всех компонентов под управлением Windows 95 возможна только, начиная с версии Windows 95 OSR2 (v.4.00.950B). Минимальные требования к конфигурации ПК совпадают с таковыми для соответствующих ОС, однако корректная работа программы возможна только при наличии не менее 32 Мб оперативной памяти, установленной на компьютере. ПК должен полностью поддерживать систему команд процессора i80386.

Следует установить все рекомендуемые производителем ОС критические обновления. Если поддержка ОС производителем прекращена, рекомендуется перейти на более современную версию системы.

Размер свободного дискового пространства не менее 600 Кбайт (для выполняемого модуля программы).

 

3.2 Описание модульных структур

 

Программа состоит из четырех модулей: main - отвечает за вывод результатов выполнения программы, vvod - отвечает за ввод данных и загрузку текстового примера, gausss_lu - решение системы линейных уравнений, opro - содержит информацию о программе.

Совокупность данных модулей представляет собой монолитно-модульную структуру программы (рисунок 3).

 

 

 

 

 

 

 

 

Рисунок 3 - Монолитно - модульная структура программы

 

Сцепление модулей main и vvod - по образцу (3). Сцепление main и gausss_lu - по образцу (3). Сцепление main и opro - по данным (1).

Уровень связности модуля main - процедурный (сила связности 5), vvod - информационный (сила связности 9), gauss_lu - процедурный (сила связности 5), opro - функциональный (сила связности 10).

1) Модуль gauss_lu.

Типы: matr - двумерный массив действительных чисел максимальной размерности 1010. vect - одномерный массив действительных чисел максимальной размерности 10.

Процедура LU(A, n, L, U, norm) находит LU разложения.

Переменные: n (тип integer) - размерность матрицы, A (тип matr) - исходная матрица, norm (тип real) - норма матрицы, L, U (тип matr) - матрицы LU - разложения.

Процедура PRINT_MATR(A, n) выводит матрицу.

Переменные: n (тип integer) - размерность матрицы, A (тип matr) - исходная матрица.

Процедура SLU(L, U, n, B, x) решает системы линейных уравнений.

Переменные: n (тип integer) - размерность матрицы, L, U (тип matr) - матрицы LU - разложения. B (тип vect) - вектор правых частей. X (тип vect) - решение системы.

Процедура Det(L, U, n, d) вычисляет определитель.

Переменные: n (тип integer) - размерность матрицы, L, U (тип matr) - матрицы LU - разложения, d (тип real)- определитель матрицы.

Процедура Obr(L, U, n, O) обращает матрицу.

Переменные: n (тип integer) - размерность матрицы, L, U (тип matr) - матрицы LU - разложения. O (тип matr)- обратная матрица.

2) Модуль VVOD

Процедура SpinEdit1Change изменяет размеры таблицы ввода исходных данных.

Процедура FormCreate загружает тестовый пример.

) Модуль MAIN.

Процедура aVyhodExecute позволяет выходить из программы.

Процедура aVvodExecute вызывает окно ввода данных.

Процедура aGaussExecute управляющая процедура метода Гаусса.

Процедура aOprgExecute выводит информацию о программе.

 

3.3 Описание диалога с пользователем

 

Для запуска необходимо выполнить следующую последовательность действий:

) нажать кнопку Пуск Выполнить Обзор;

) найти файл с именем GAUSS.EXE и установить на него указатель;

) нажать Ввести ОК.

После запуска на экране монитора компьютера появляется главное окно программы (рисунок 4).

 

 

Рисунок 4 - Вид экрана программы

 

Состав окна:

главное меню, расположенное в верхней строке окна (рисунок 5).

 

Рисунок 5 - Состав главного меню

 

инструментальная панель с кнопками управления, дублирующими наиболее часто используемые команды меню (рисунок 6).

 

 

 

 

 

Рисунок 6 - Инструментальная панель

 

область вывода решения (рисунок 7).

 

Рисунок 7 - Область вывода решения

 

. Ввод данных.

Пользователю необходимо выбрать из меню Файл команду Ввод данных (или нажать кнопку ввода данных). На экран выводится форма ввода (рисунок 8).

 

Рисунок 8 - Ввод данных

 

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

. После ввода исходных данных пользователю необходимо из меню Решение выбрать команду Метод Гаусса (ил?/p>