![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Разработка программы для решения систем линейных уравнений |
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАВТ РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ Пояснительная записка Курсовая работа по дисциплине &quo ;Информатика&quo ; ТПЖА.12203-01 81 01 ПЗ Разработал студент гр. СК-00 /А. И. Иванов/ Руководитель преподаватель ФАВТ / К. И. Петров/ Курсовая работа защищена с оценкой“ ” “ ” 2002 г. Киров 2002 Реферат А. И. Иванов. Разработка программы для решения систем линейных уравнений: ТПЖА 12203-01 81 01 ПЗ. Курсовая работа/ВятГУ, ФАВТ, рук. К. И. Петров – Киров, 2002. ПЗ 7 с., 3 табл., 8 рис., 4 источника, 4 прил.; програм. докум. 18 л. СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ, МЕТОД ЗЕЙДЕЛЯ, МЕТОД ПРОСТЫХ ИТЕРАЦИЙ, МАТРИЦА КОЭФФИЦИЕНТОВ, ВЕКТОР СВОБОДНЫХ ЧЛЕНОВ, УСЛОВИЕ СХОДИМОСТИ Объектом исследования являются итерационные методы решения систем линейных алгебраических уравнений (далее СЛАУ): метод простых итераций и метод Зейделя. Цель работы – разработка программы для решения СЛАУ с произвольным количеством уравнений. Для получения вектора решений СЛАУ реализованы методы Зейделя и простых итераций. Недостатком исследуемого метода – невозможность нахождения решения за конечное число итераций даже при отсутствии вычислительной погрешности. Результаты проведённой работы могут быть использованы при решении СЛАУ с произвольным количеством уравнений. Среда программирования – Borla d C. Содержание Введение2 1Анализ задания и выбор метода решения3 1.1Анализ задания3 1.2Выбор метода решения3 1.2.1 Метод простых итераций4 1.2.2 Метод Зейделя4 2Реализация метода решения задачи5 2.1Контроль входной информации5 2.2Формат вывода выходной информации5 2.3Выбор типов входных, рабочих и выходных переменных, используемых в программе6 2.4Проектирование программы6 2.5Анализ результата6 Заключение7 Приложение А (обязательное) Разработка программы для решения систем линейных уравнений. Описание программы. ТПЖА.12203-01 13 018 Приложение Б (обязательное). Разработка программы для решения систем линейных уравнений. Руководство пользователя. ТПЖА.12203-01 34 01. Приложение В (обязательное). Разработка программы для решения систем линейных уравнений. Текст программы. ТПЖА.12203-01 12 0123 Приложение Г (справочное)45 Введение Решение СЛАУ является одной из важных вычислительных задач, часто встречающихся в прикладной математике. К решению систем линейных уравнений сводится ряд задач анализа, связанных с приближением функций, решение систем дифференциальных уравнений и интегральных уравнений и т.д. В связи с использованием большого количества переменных в системе ручной расчёт СЛАУ довольно трудоёмкий и может занять много времени. Актуальность данной курсовой работы заключается в том, что вышеописанная проблема разрешается с помощью разработанной курсовой программы. Курсовая работа носит учебный характер. В ходе её программист реализовал имеющиеся знания из курса линейной алгебры по решению СЛАУ в программной интерпретации на языке программирования С. А знание компьютера и наличие опыта в программировании в наше время особенно приветствуется в фирмах, работающих в сфере информационных технологий.
1 Анализ задания и выбор метода решения 1.1 Анализ задания В соответствии с заданием на курсовую работу необходимо разработать программу для решения СЛАУ методом простых итераций и методом Зейделя. Предусмотреть ввод числа уравнений, матрицы коэффициентов и вектора свободных членов, а также вывод вектора решений на экран. Для удобства тестирования программа должна обладать понятным и логичным интерфейсом, рассчитанным на неопытного пользователя. 1.2 Выбор метода решения В соответствии с заданием на курсовую работу в программе реализованы итерационные методы: простых итераций и Зейделя. Пусть ищется решение невырожденной системы уравнений . (1) Первым шагом в итерационном методе является преобразование исходной системы к виду , (2) где матрицы С, В и вектор d определяются по матрицы А и вектору b. Причём системы (1) и (2) являются эквивалентными, т.е. их решения совпадают, а построение обратной матрицы С-1 проще, чем А-1. Вторым шагом является расстановка индексов или номеров приближений в (2) и задание нулевого приближения. Например, (3) где - заданный вектор Третьим шагом итерационного метода является обоснование сходимости последовательных приближений , полученных из (3), к точному решению х системы и оценка погрешности k-го приближения (4) Оценка (4) при заданном позволяет остановить итерационный про-цесс (3). Различные итерационные методы отличаются первыми двумя шагами, а выбор конкретного метода должен производиться на основании оценки(4). 1.2.1 Метод простых итераций В методе простых итераций матрица С (2) выбирается единичной: С=Е. Итерационный процесс описывается формулой (5) где - заданный вектор. 1.2.2 Метод Зейделя Отличие метода Зейделя от простой итерации состоит лишь в том, что при вычислении (k 1)-го приближения полученные компоненты вектора сразу же используются в вычислениях. В матричной записи это можно представить так: где матрицы U и L получены разложением В в сумму: матрица U – верхняя треугольная часть B, включая диагональ; L – нижняя поддиагональная часть В. Таким образом метод Зейделя можно записать в следующей форме (6) Заметим, что построение матрицы, обратной , не представляет труда, так как это нижняя треугольная матрица. 2 Реализация метода решения задачи 2.1 Контроль входной информации Метод контроля входной информации должен обеспечить максималь-ную защиту от некорректности вводимых данных, защиту от переполнения строки и минимальный перечень ограничений при вводе информации. В программе входные данные, задаются пользователем в режиме диалогового окна. Это позволяет практически полностью контролировать входную информацию и избежать некорректности вводимых данных, так как далее эта информация используется в вычислениях. Функции floa i pu () и i pu () предназначены для защиты от некорректного ввода действительных и натуральных чисел соответственно (приложение В). 2.2 Формат вывода выходной информации Вывод результатов расчёта производится в окне Ou pu . В окне выводится исходная СЛАУ, ниже вектор решений, а также число итераций, необходимых для нахождения решения. 2.3 Выбор типов входных, рабочих и выходных переменных, используемых в программе В программе использованы следующие переменные: char ch i s i double A double B double X bool i pflag=false bool decflag=false перемещение между окнами число итераций размерность матриц матрица коэффициентов вектор свободных членов вектор решений флажок выполнения операции ввода флажок выполнения операции решения 2.4
Проектирование программы Рабочий модуль программы – Zeidel.cpp. Для корректной работы программы реализованы методы корректного ввода входной информации, решение СЛАУ с пояснением выполняемых действий, форматированный вывод выходной информации на экран и в файл. Для удобства тестирования разработан интерфейс, рассчитанный на неопытного пользователя. 2.5 Анализ результата В результате проделанной программистом работы разработана программа, реализующая решение СЛАУ методами Зейделя и простых итераций и выполненная в удобном и понятном интерфейсе, понятном неопытному пользователю. Пример расчета СЛАУ со следующими входными данными: Исходная матрица А45 8.6 7.3 8.1 Вектор свободных членов В12 4.5 Результаты расчёта: Вектор решений0.1938 0.3809 Число итераций5 Заключение В ходе курсовой работы был разработан программный продукт, в рамках которого были реализованы: метод простых итераций для решения СЛАУ; метод Зейделя для решения СЛАУ; удобный оконный интерфейс для неопытного оператора; защита от неправильного ввода входной информации; Приложение А (обязательное) ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАВТ РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ ОПИСАНИЕ ПРОГРАММЫ Лист утверждения ТПЖА.12203-01 13 01-ЛУ Листов 2 Разработал студент гр. СК-00 / А. И. Иванов / Руководитель преподаватель ФАВТ / К. И. Петров/ Киров 2002 Приложение А (обязательное) ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАВТ Лист утверждения ТПЖА.12203-01 13 01-ЛУ РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ ОПИСАНИЕ ПРОГРАММЫ ТПЖА.12203-01 13 01 Листов 8 Киров 2002 Аннотация В разделе «Описание программы» рассмотрены функциональные характеристики программы. Перечислены требуемые технические средства для её нормальной работы, а также входные и выходные данные. Приведены необходимые схемы алгоритмов. Содержание 1Общие сведения12 2Состав и структура программного модуля12 3Описание логической структуры13 4Входные данные14 5Выходные данные14 6Схемы алгоритмов программы15 1 Общие сведения Исходный текст программы написан на языке С. 2 Состав и структура программного модуля Программный код представлен в модуле Zeidel.cpp, состав которого представлен в таблице А.1. Таблица А.1 – Состав программного модуля Zeidel.cpp ФункцияНазначение mai Основная функция программы i pu Ввод исходных данных floa i pu Ввод действительных чисел i pu Ввод натуральных чисел decisio Решение СЛАУ ou pu Вывод результата работы программы me uФункция рисования пунктов меню helpВывод на экран информации о программе и разработ-чике cursorНавигация курсора Данный программный продукт имеет структуру, представленную на рисунке А.1. Рисунок А.1 – Структура программного модуля 3 Описание логической структуры Функция mai – основная функция программы, реализующая меню для выбора требуемой операции. Тело функции представляет собой цикл, в котором производится вывод строк меню, ожидание ввода символа с клавиатуры и последующий анализ введенного символа.
Рассмотрим их применение в наглядных примерах. На рис. 9.14 представлены примеры на применение функции VectorSumPlot, показывающие расположение векторов на плоскости (первый пример) и в пространстве, а также дающее построение результирующего вектора. Рис. 9.14. Иллюстрация сложения векторов на плоскости и в пространстве Действие функции вычисления кросс-произведения векторов и построение плоскости в которой находятся векторы демонстрирует рис. 9.15. Для визуализации этих понятий используются функции Cross Product Plot и PlanePlot. Рис. 9.15. Визуализация кросс-произведения векторов и построение плоскости векторов Довольно часто используется понятие о проекции вектора на прямую или на плоскость. Эти возможности реализует функция Projection Plot. Примеры ее применения представлены на рис. 9.16. Рис. 9.16. Визуализация проекции вектора на прямую и на плоскость Важное значение имеет визуализация решения систем линейных уравнений. Для этого используется функция LinearSystemPlot. Примеры ее применения для визуализации решения систем из двух и трех уравнений представлены на рис. 9.17. Рис. 9.17
2. Разработка программы решения системы линейных уравнений
4. Составление и решение нестандартных уравнений графоаналитическим методом
9. Алгоритм компактного хранения и решения СЛАУ высокого порядка
10. Решение задач линейной оптимизации симплекс – методом
12. Решение систем линейных дифференциальных уравнений пятиточечным методом Адамса – Башфорта
13. Решение задач моделирования и оптимизации с помощью программ Excel и Mathcad
14. Решение систем линейных алгебраических уравнений (прямые методы)
16. Технология составления и решения моделей в MS Excel
17. Численные методы решения систем линейных уравнений
18. Исследование методов решения системы дифференциальных уравнений с постоянной матрицей
19. Решение задачи линейного программирования симплексным методом
21. Метод Гаусса для решения систем линейных уравнений
26. Наборы утилит служебных программ операционных систем
27. Линейное программирование симплекс-методом Данцига
28. Нахождение корней уравнений различными методами
31. Методы анализа отклонении фактических результатов от плановых в системе контроллинга
32. Непрямий метод оцінювання параметрів строго ідентифікованої системи рівнянь
33. Методы путевого анализа и их применение к системам одновременных уравнений
34. Сравнительная характеристика методов принятия решений относительно инвестиционных программ
36. Решение транспортной задачи методом потенциалов
37. Решение дифференциальных уравнений 1 порядка методом Эйлера
41. Решение систем линейных алгебраических уравнений методом Гаусса и Зейделя
42. Решение нелинейного уравнения методом касательных
43. Построение решения задачи Гурса для телеграфного уравнения методом Римана
44. Методы и приемы решения задач
45. Решение транспортной задачи методом потенциалов
46. Решение дифференциальных уравнений 1 порядка методом Эйлера
47. Метод Алексея Юрьевича Виноградова для решения краевых задач
48. Решение обратных задач теплопроводности для элементов конструкций простой геометрической формы
50. Методология и методы принятия решения
51. Сущность и методы принятия управленческих решений
53. Составление производственной программы
57. Построение приближенного решения нелинейного уравнения методом Ван-дер-Поля
58. Приближенное решение уравнений методом хорд и касательных
59. Нестандартные методы решения тригонометрических уравнений: графический и функциональный
61. Методы принятия управленческого решения
62. Производственная программа предприятия и методы ее расчета
63. Метод решения уравнений Ньютона - Рафсона
64. Обучение общим методам решения задач
65. Кинезиология как Метод решения психологических проблем
66. Решение задачи методами линейного, целочисленного, нелинейного и динамического программирования.
67. Методика составления и проведения простейших самостоятельных занятий физическими упражнениями
68. Применение новейших экономико-математических методов для решения задач
69. ГЕОСИСТЕМНОЕ прогнозирование: задачи, прогнозная информация, методы составления прогнозов
73. Простая программа, использующая MDI интерфейс
75. Методы решения уравнений в странах древнего мира
76. Приближённые методы решения алгебраического уравнения
77. Модели и методы решения проблемы выбора в условиях неопределенности
78. Коллективные методы принятия управленческих решений
79. Организация, методы и программы селекции пчел
80. Вредоносные программы, классификация. Методы защиты
81. Метод программирования и схем ветвей в процессах решения задач дискретной оптимизации
82. Методы и алгоритмы компьютерного решения дифференциальных уравнений
83. Новый подход к построению методов межпроцедурного анализа программ
84. Принятие решений методом анализа иерархий
85. Разработка компьютерной программы на языке Паскаль для проведения простого теплофизического расчета
89. Решение задачи с помощью программ Mathcad и Matlab
90. Решение задачи с помощью программ Mathcad и Matlab
91. Решение прикладных задач методом дихотомии
92. Решение систем нелинейных уравнений методом Бройдена
93. Симплекс метод решения задачи линейного программирования
94. Создание программы на языке Delphi 7.0
95. Численные методы. Программа-калькулятор на Pascal
96. Графический метод решения задач линейного программирования
97. Резисторы и конденсаторы в «полупроводниковом» исполнении. Топологические решения и методы расчета