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

Автор работы: Пользователь скрыл имя, 14 Марта 2012 в 16:06, курсовая работа

Краткое описание

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

Содержание

Введение ………………………………………………………………………….. 3
1 Общая часть 5
1.1 Цели разработки 5
1.2 Анализ использования разработки 5
1.3 Анализ методов решения проблемы 5
1.4 Состав ПЭВМ 6
1.5 Используемое программное обеспечение. 10
1.5.1 Операционная система. 12
1.5.2 Дополнительные программные средства 13
2. Технологическая часть. 19
2.1 Постановка задачи. 19
2.1.1 Технико-математическое описание задачи. 19
2.2 Проектирование 20
2.2.1Алгоритм решения. 20
2.3 Текст программы с описанием. 25
2.3.1 Описание программы 25
2.4 Текст программы 25
2.5 Описание процесса отладки 26
2.6 Тестирование 27
Заключение ……………………………………………………………………...30
Литература ……………………………………………………………………...31
Приложение А 32
Руководство оператора 32
Приложение Б 38
Руководство программиста 38
Код программы 39
Приложение С 60
Диск с программой 60

Прикрепленные файлы: 1 файл

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

— 1.83 Мб (Скачать документ)

 

2.1.1 Технико-математическое описание задачи.

Заменяя в алгоритме Ньютона производную приближенно отношением конечных разностей:

,                                            (1)

получим алгоритм метода хорд с неподвижным правым концом:

                               (2)

или с неподвижным левым концом:

                                (3)

 

В качестве неподвижного конца отрезка принимается граница х=b (2), если ; тогда или , если , тогда (3).

Рис.1а - с неподвижным правым концом      Рис.1б - с неподвижным левым  концом

 

Сходимость и погрешность метода хорд определяется так же, как и в методе Ньютона.

 

2.2 Проектирование

2.2.1Алгоритм решения.

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

Подходящим и надёжным исполнителем процесса является ЭВМ. Если исходные данные и действия алгоритма представить в виде инструкций, понятных машине, то ЭВМ сможет выполнить эти инструкции. Запись исходных данных и алгоритма, предназначенном для выполнения на ЭВМ называется программой. Процесс разработки и составления программы – программированием.

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

 

 

 

 

 

             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проектирование - процесс создания проекта, прообраза предполагаемого или возможного объекта, состояния. Проектирование алгоритмов и программ может основываться на различных подходах, среди которых наиболее распространены:

    объектно-ориентированное проектирование программных продуктов;

    информационное моделирование предметной области и связанных с ней приложений;

    структурное проектирование.

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

    технология проектирование сверху вниз;

    технология проектирование снизу вверх;

    модульное проектирование;

    объектно-ориентированное проектирование.

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

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

Модульное программирование - это процесс разделения программы на логические части.

Если проведено проектирование сверху вниз, то программа, естественно, разбивается на модули. При этом преследуются две цели:

    необходимо, чтобы модуль был правильным и не зависел от контекста, в котором он будет использоваться;

    необходимо, чтобы из различных модулей можно было составлять программы без знаний о внутренней работе модуля.

Короткие модули предпочтительней длинных. Желательно, чтобы размер модуля не превышал 60 строк. С таким модулем легко работать. Его удобно просматривать на терминале вычислительной машины, код программы помещается на один лист.

Следует стремиться к независимости модулей друг от друга. Каждый модуль должен иметь свое назначение, которое отличается от назначения других модулей. Это должен быть замкнутый блок с точно определенным входом и выходом. Тесно связанные элементы необходимо помещать в один модуль, а несвязанные - в разные. Если изменения в одном модуле воздействуют на другие модули, это явление называется волновым эффектом. Если модули независимы, волновой эффект сводится к минимуму. Т.е. уменьшается количество путей, по которым ошибки из одного модуля могут попасть в другой модуль. Использование модулей приводит к уменьшению сложности. Модульную программу легче написать и протестировать.

Объектно-ориентированное проектирование - парадигма программирования, в которой предметная область представляется системой структур данных, каждая из которых представляет некий отдельный предмет (объект) с его внутренними свойствами и действиями над ним.

  Объект обладает свойствами, методами и событиями. Объекты с одинаковыми свойствами объединялись в классы. В любых языках программирования существует большое количество готовых базовых классов. Готовые классы соответствуют большинству потребностей программиста. Это позволяет без особого труда строить многие приложения.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Объектно-ориентированное проектирование (сокращенно ООП) включено во все современные системы и языки программирования: C++, Delphi7, Visual FoxPro и т.д. Язык программирования служит для того, чтобы программист мог изложить свои идеи в форме, "понятной" компьютеру. Язык программирования влияет не только на форму изложения, но и в значительной степени на сами идеи.

 

2.3 Текст программы с описанием.

2.3.1 Описание программы

Данная программа написана  на языке Visual Basic. Она предназначена для широкого круга пользователей, удобна в обращении.

Это программа помогает пользователю эффективно решать уравнения с помощью метода хорд.

Эта программа занимает  6 Мб. на жёстком диске.

 

2.4 Текст программы

Private Sub Image6_Click() - Процедура выполняет весь ход решения: нахождение производных функции, определение типа функции, уточнение корня уравнения, а также возврат в главное меню, и выход из программы;

Private Sub Image7_Click() - Процедура выполняет очистку всех полей в программе, поля изображения и ответа.

Private Sub Image8_Click() – Процедура выполняет переход в главное меню;

Private Sub My_al_Click()- Процедура переходит к выполнению решения алгебраического уравнения;

Private Sub my_Sin_Click()- Процедура переходит к выполнению решения трансцендентного уравнения содержащего sin;

Private Sub My_Cos_Click()- Процедура переходит к выполнению решения трансцендентного уравнения содержащего cos;

Val (X) - Данная функция означает, что значение переменной X преобразуется из строки символов в число;

Srt (X) – Данная функция означает, что значение переменной X преобразуется из числового в строковый тип;

Form1.Show - команда перехода на следующую форму;

Unload Form2 - данная команда закрывает текущую форму.

 

2.5 Описание процесса отладки

Отладка программы – устранение логических ошибок в процедурах и достижение того, чтобы приложение удовлетворительно работало в среде проектирования.

Любая программа, написанная даже квалифицированным программистом, содержит ошибки, которые выявляются и исправляются в процессе отладки программы. Кроме того, при работе с отлаженной программой пользователь, может создать ситуацию, которая программой не обрабатывается корректно. Рассмотрим процесс отладки программ и способы обработки ошибок при выполнении программы и имеющиеся для этого средства в Visual Basic.

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

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

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

 

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

Любая программа, не важно, какая именно, нуждается в тщательном тестировании.

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

Возможно несколько подходов к построению тестов:

 составление тестов вручную – это возможно, когда решение задачи не представляет собой вычислительной сложности (вся сложность – логическая);

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

Тестирование делится на три этапа:

 проверка в нормальных условиях – выполняется тестирование на основе исходных данных, которые характерны для реальных условий функционирования программы;

 проверка в экстремальных условиях – на этом этапе тестовые данные – это граничные значения множества исходных данных;

 проверка в исключительных ситуациях – программа тестируется на исходных данных, на обработку которых она не рассчитана.

Виды тестирования:

 локальное – тестирование отдельных независимых частей, тестирование должно идти в том же направлении, что и кодирование;

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

Цель тестирования – обнаружение скрытых ошибок в программном продукте. Тестирование данного программного продукта проходило следующим образом:

Решалось уравнение на бумаге, вручную и с помощью программы, далее сравнивались результаты.

Расчет в ручную:


Расчет в программе:

Рис.2 – Расчет


Заключение

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

Были реализованы следующие пункты технического задания:

            нахождение оптимального решения;

            проверка правильности подсчета без использования ЭВМ;

            повышение точности расчета;

            сокращение времени выполнения расчёта;

            удобный графический интерфейс.


Литература

1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. «Численные методы». Москва, БИНОМ. Лаборатория знаний 2007г.

2. Костомаров Д.П, Корухова Л.С, Манжелей С.Г «Программирование и численные методы». Издательство Московского университета 2001г.

3. Пилипенко Н.М. «Численные методы математического анализа и решения систем дифференциальных уравнений». Москва 2002г.

4. Формалев В.Ф, Ревизников Д.Л «Численные методы». Москва, ФИЗМАТЛИТ, 2006 г.

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