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

Автор работы: Пользователь скрыл имя, 26 Октября 2010 в 22:52, Не определен

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

Курсовая работа

Файлы: 1 файл

курсовая по программированию.doc

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

Федеральное агентство по образованию 
 

Государственное образовательное учреждение 
высшего профессионального образования 
"Липецкий государственный технический университет"
 
 

Кафедра автоматизированных систем управления 
 

Курсовая  работа 

по программированию 

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

      Студент:  ____________  Писаренко И.М.

                                  подпись,  дата

      Группа:                                                         АИ-09-1
 

      Руководитель:      

      ______________ ____________  Ведищев В.В.

            учёная степень, звание  подпись, дата 
 
 
 
 
 
 
 
 
 

Липецк  – 2010 г.

 

 
АННОТАЦИЯ
 

С. 36. Ил. 4. Библиогр.: 8 назв.

В отчёте представлено описание использованного метода решения системы линейных уравнений (метода Гаусса), описание разработанной программы, описание применения, руководство программиста, описание контрольного примера, текст программы.

 

ОГЛАВЛЕНИЕ 

1. ОПИСАНИЕ ПРОГРАММЫ        5 1.1.ОБЩИЕ СВЕДЕНИЯ        5

      1.2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ     5

      1.3. ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ    6

      1.4. ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА   8

      1.5.ВЫЗОВ И ЗАГРУЗКА        8

      1.6. ВХОДНЫЕ ДАННЫЕ        8

      1.7. ВЫХОДНЫЕ ДАННЫЕ       8

2. ОПИСАНИЕ ПРИМЕНЕНИЯ        9

      2.1. НАЗНАЧЕНИЕ ПРОГРАММЫ      9

      2.2. УСЛОВИЯ ПРИМЕНЕНИЯ       9

      2.3. ОПИСАНИЕ ЗАДАЧИ        9

      2.4 ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ     11

3. РУКОВОДСТВО ПРОГРАММИСТА      11

      3.1. НАЗНАЧЕНИЕ И УСЛОВИЯ  ПРИМЕНЕНИЯ ПРОГРАММЫ 11

      3.2. ХАРАКТЕРИСТИКА ПРОГРАММЫ     12

      3.3. ОБРАЩЕНИЕ К ПРОГРАММЕ      12

      3.4. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ     12

      3.5. СООБЩЕНИЯ         13

4. ОПИСАНИЕ КОНТРОЛЬНОГО ПРИМЕРА     15

      4.1. ОБЪЕКТ ИСПЫТАНИЙ       15

      4.2. ЦЕЛЬ ИСПЫТАНИЙ        15

      4.3. ТРЕБОВАНИЯ К ПРОГРАММЕ      15

            4.3.1. КОРРЕКТНЫЕ ВХОДНЫЕ  ДАННЫЕ    16

            4.3.2. ОШИБОЧНЫЕ ВХОДНЫЕ  ДАННЫЕ    18

5. ТЕКСТ ПРОГРАММЫ         19

ЗАКЛЮЧЕНИЕ           35

БИБЛИОГРАФИЧЕСКИЙ СПИСОК       36

 

1. ОПИСАНИЕ ПРОГРАММЫ 

1.1.ОБЩИЕ СВЕДЕНИЯ 

    Обозначение и наименование программы: решение системы линейных уравнений методом Гаусса; имя программы – Gauss.exe.

    Программное обеспечение, необходимое для функционирования программы: операционная система MS Windows XP или MS Windows Vista.

    Используемый  язык программирования: С. 

1.2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ 

    Классы  решаемых задач: системы линейных алгебраических уравнений.

    Назначение  программы: решение систем линейных алгебраических уравнений методом Гаусса. 

 

1.3. ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ

 

 

1.4. ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА 

    Компьютер IBM PC совместимый. 

1.5.ВЫЗОВ И ЗАГРУЗКА 

    Запуск  программы осуществляется указанием  имени программного модуля (Gauss.exe) командной строке. Установка программы не требуется. 

1.6. ВХОДНЫЕ ДАННЫЕ 

    Входными  данными являются навигационные символы "h", "q", "s" в нижнем регистре при английской раскладке клавиатуры; размер расширенной матрицы, записанный в виде двух целых положительных чисел (в записи должны содержаться только цифры от 0 до 9), не превосходящих 2147483648, разделённых символом "*" (количество строк в расширенной матрице должно быть на единицу меньше количества столбцов); элементы расширенной матрицы записанные в виде целых или вещественных чисел (в записи должны содержаться только цифры от 0 до 9, в вещественных числах целая часть от дробной должна отделяться с помощью символа ",", при вводе отрицательных чисел следует использовать символ "-"). 

1.7. ВЫХОДНЫЕ ДАННЫЕ 

    Выходными данными являются пошаговое решение  системы линейных алгебраических уравнений, сообщения о возможных ошибках, полученный ответ, выведенные на консоль. Формат выходных данных: символьная информация, целые и вещественные числа в арифметическом виде; в вещественных числах целая часть от дробной отделяется символом ",". 

 

2. ОПИСАНИЕ ПРИМЕНЕНИЯ 

2.1. НАЗНАЧЕНИЕ ПРОГРАММЫ 

    Программа предназначена для решения систем линейных алгебраических уравнений в которых число уравнений совпадает с числом неизвестных. Ограничение на количество неизвестных определяется размером оперативной памяти. Модуль элемента расширенной матрицы не должен превышать 1073741823. Вещественные числа выводятся с точностью до 5-ти знаков после запятой. 

2.2. УСЛОВИЯ ПРИМЕНЕНИЯ 

    Операционная  система MS Windows XP или MS Windows Vista, процессор с частотой 1 ГГц, 256 Мб ОЗУ, 20 КБ свободного места на жёстком диске, видеокарта без ограничений, клавиатура.

    Входная информация вводится с клавиатуры, выходная информация выводится на консоль. 

2.3. ОПИСАНИЕ ЗАДАЧИ 

    В разделе «Численные методы линейной алгебры» рассматриваются численные  методы решения систем линейных алгебраических уравнений (СЛАУ) и численные методы решения задач на собственные значения и собственные векторы матриц.

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

    Из  прямых методов решения СЛАУ рассмотрим методы Гаусса.

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

    На  первом шаге алгоритма Гаусса выберем  диагональный элемент a11 (если он равен 0, то первую строку переставляем с какой-либо нижележащей строкой) и объявляем его ведущим, а соответствующую строку и столбец, на пересечении которых он стоит - ведущими. Обнулим элементы a21, ..., an1 ведущего столбца. Для этого сформируем числа (–a21/a11);...;(-an1/a11). Умножая ведущую строку на число (–a21/a11), складывая со второй строкой и ставя результат на место второй строки, получим вместо элемента a21 нуль, а вместо элементов aj1 j от 2 до n, b2 – соответственно элементы a12j = a2j + a1j * (-a21/a11), j от 2 до n, b12 = b2 + b1 * (-a21/a11) и т.д. Умножая ведущую строку на число (-an1/a11), складывая с n-ой строкой и ставя результат на место n-ой строки, получим вместо элемента an1 нуль, а остальные элементы будут иметь вид: a1nj = anj + a1j * (-an1/a11), b1n = bn + b1 * (-an1/a11).

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

    В обратном ходе алгоритма Гаусса из последнего уравнения сразу определяется xn, из предпоследнего – xn-1 и т.д. Из первого уравнения определяется x1.При обработке результатов также необходимо учитывать следующее:

    • если элементы какой-либо строки матрицы системы в результате преобразований стали равными нулю, а правая часть не равна нулю, то СЛАУ несовместна, поскольку не выполняются условия теоремы Кронекера-Капелли;
    • если элементы какой-либо строки матрицы системы и правая часть в результате преобразований стали равными нулю, то СЛАУ совместна, но имеет бесконечное множество решений.
 

 

2.4 ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 

    Входными  данными являются навигационные  символы "h" (вызов справки), "q" (выход из программы или возврат в предыдущий пункт меню), "s" (начало ввода необходимы числовых данных или переход в другой раздел меню) в нижнем регистре при английской раскладке клавиатуры; размер расширенной матрицы, записанный в виде двух целых положительных чисел (в записи должны содержаться только цифры от 0 до 9), не превосходящих 2147483648, разделённых символом "*" (количество строк в расширенной матрице должно быть на единицу меньше количества столбцов); элементы расширенной матрицы записанные в виде целых или вещественных чисел (в записи должны содержаться только цифры от 0 до 9, в вещественных числах целая часть от дробной должна отделяться с помощью символа ",", при вводе отрицательных чисел следует использовать символ "-").

    Выходными данными являются пошаговое решение системы линейных алгебраических уравнений, сообщения о возможных ошибках, полученный ответ, выведенные на консоль. Формат выходных данных: символьная информация, целые и вещественные числа в арифметическом виде; в вещественных числах целая часть от дробной отделяется символом ",". 

3. РУКОВОДСТВО ПРОГРАММИСТА 

3.1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ 

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

    Для функционирования программы необходимы следующие периферийные устройства: клавиатура и монитор. Необходимый объём оперативной памяти 1,6 МБ. 

3.2. ХАРАКТЕРИСТИКА ПРОГРАММЫ  

    Программа предназначена для решения систем линейных алгебраических уравнений  в которых число уравнений  совпадает с числом неизвестных. Ограничение на количество неизвестных  определяется размером оперативной памяти. Модуль элемента расширенной матрицы не должен превышать 1073741823. Вещественные числа выводятся с точностью до 5-ти знаков после запятой.

    Временные характеристики: менее секунды. Средство контроля правильности выполнения: ручное. 

3.3. ОБРАЩЕНИЕ К ПРОГРАММЕ 

    Вызов программы осуществляется указанием  её имени (Gauss.exe) в командной строке. 

3.4. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 

    Входными  данными являются навигационные  символы "h" (вызов справки), "q" (выход из программы или возврат в предыдущий пункт меню), "s" (начало ввода необходимы числовых данных или переход в другой раздел меню) в нижнем регистре при английской раскладке клавиатуры; размер расширенной матрицы, записанный в виде двух целых положительных чисел (в записи должны содержаться только цифры от 0 до 9), не превосходящих 2147483648, разделённых символом "*" (количество строк в расширенной матрице должно быть на единицу меньше количества столбцов); элементы расширенной матрицы записанные в виде целых или вещественных чисел (в записи должны содержаться только цифры от 0 до 9, в вещественных числах целая часть от дробной должна отделяться с помощью символа ",", при вводе отрицательных чисел следует использовать символ "-").

    Выходными данными являются пошаговое решение  системы линейных алгебраических уравнений, сообщения о возможных ошибках, полученный ответ, выведенные на консоль. Формат выходных данных: символьная информация, целые и вещественные числа в арифметическом виде; в вещественных числах целая часть от дробной отделяется символом ",". 

3.5. СООБЩЕНИЯ 

    Для навигации в этом разделе меню вы можете использовать только клавиши "s", "h" и "q" в нижнем регистре (убедитесь, что не активирован Caps Lock). Раскладка клавиатуры должна быть английской. 

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

Информация о работе Разработка программного комплекса решения математической задачи численными методами