Разработка комплекса программ для решения задач численного интегрирования на Delphi
Задачи программирования в среде DELPHI. Процесс численного интегрирования. Основные методы, их характеристика. Их реализация: алгоритмы и листинг программ. Порядок тестирования и процесс сравнительного анализа. Реализация численного интегрирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 19.12.2012 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОСИИ
ФГБОУ ВПО «БГПУ им. М. Акмуллы»
Институт профессионального образования и информационных технологий
Кафедра прикладной информатики
Специальность 230700 Прикладная информатика
Курсовая работа
Разработка комплекса программ для решения задач численного интегрирования на Delphi
Работу выполнил:
Демидова В.Ю.
Группа ПИ(СПО) 2 курс
Работу проверил:
Забихуллин Ф.З.
Уфа 2012
ФГБОУ ВПО БГПУ им. М.Акмуллы
Институт профессионального образования и информационных технологий
Кафедра прикладной информатики
Специальность 230700 Прикладная информатика
Группа ПИ (СПО) 2 курс
Квалификация
Утверждаю
Зав. кафедрой_______________
_____________________2012 г.
Задание
На курсовое проектирование
Студенту___Демидовой_В.Ю.___________________________________
Руководитель_____Забихуллин_Ф.З.______________________________
1. Наименование темы: Разработка комплекса программ для решения задач численного интегрирования на Delphi
2. Срок сдачи студентом законченной работы ___________________
3. Техническое задание и исходные данные к работе Разработать программу в среде Delphi для решения задач численного интегрирования__________________
4. Содержание проекта (перечень подлежащих разработке вопросов) Краткая история и описание среды разработки Delphi, обзор методов численного интегрирования, примеры решения задач численного интегрирования, код программы_________________________________________________________
5. Перечень графического материала (с указанием обязательного материала) 1) графики функций_______________________________________
2) блок схема алгоритма_______________________________________
3) скриншоты программы______________________________________
6. Исходные материалы и пособия 1)Зубкова Т.М. “Технология разработки__ программного обеспечения: Учебное пособие” - Оренбург: ГОУ ОГУ, 2004.;
2) Панкратова Л.П., Челак Е.Н. «Контроль знаний по информатике: тесты,______ контрольные задания, экзаменационные вопросы, компьютерные проекты» -____ Спб.: БХВ-Петербург, 2004.;______________________________________________
3) Н.Н. Калиткин. «Численные методы» Москва «Наука», 1978; _____
4) Бахвалов Н.С., Жидков Н.П., Кобельков Г.Г. «Численные методы» -- М.:_____ Лаборатория Базовых Знаний, 2000.;______________________
5) Культин Н.Б. «Delphi в задачах и примерах» Спб.: БХВ-Петербург, 2012;_____
6) Жулева С.Ю., Соколова Ю.С. «Разработка приложений в среде Delphi»_______ М.: Горячая линия - Телеком 2011; ________________________________________
7. Консультанты по работе с указанием относящихся к ним разделов работы
Раздел |
Консультант |
Подпись, дата |
||
Задание выдал |
Задание принял |
|||
Календарный план
№ п/п |
Наименование этапов проекта |
Срок выполнения этапов работы |
Примечание |
|
1 |
Разработка программы |
|||
2 |
Описание главы 1 |
|||
3 |
Описание главы 2 |
|||
4 |
8. Дата выдачи задания _________________________________________
Руководитель_________________________________
(подпись)
Задание принял к исполнению ___________________
(подпись)
Содержание
Введение
Глава 1. Задачи программирования в среде DELPHI
1.1 Среда разработки Delphi
1.2 Численное интегрирование
1.3 Обзор методов численного интегрирования
1.4 Примеры
Выводы после первой главы
Глава 2. Реализация методов численного интегрирования на языке DELPHI
2.1 Алгоритмы программ
2.2 Листинг программ
2.3 Тестирование программ
2.3 Сравнительный анализ
Выводы по второй главе
Заключение
Литература
Приложение
Введение
Многие инженерные задачи, задачи физики, геометрии и многих других областей человеческой деятельности приводят к необходимости вычислять определенный интеграл вида , где - подынтегральная функция, непрерывная на отрезке [a;b].
Определенный интеграл от функции, имеющей неэлементарную первообразную, можно вычислить с помощью той или иной приближенной формулы. Для решения этой задачи на компьютере, можно воспользоваться формулами прямоугольников, трапеций или формулой Симпсона.
Необходимость применения численного интегрирования чаще всего может быть вызвана отсутствием у первообразной функции представления в элементарных функциях и, следовательно, невозможностью аналитического вычисления значения определённого интеграла по формуле Ньютона-Лейбница. Также возможна ситуация, когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом.
Целью курсовой работы является разработка комплекса программ для решения задач численного интегрирования.
Задачи, рассматриваемые в данной курсовой работе:
Проанализировать среду разработки Delphi;
Дать обзор методам численного интегрирования;
Создать программу для решения задач численного интегрирования.
Объектом исследования является технологии программирования Delphi.
Предметом исследованием курсовой работы является реализация методов численного интегрирования.
В данной курсовой работе я разработала комплекс программ для численного решения определенного интграла на основе метода прямоугольников, метода трапеций и метода симпсона.
Для разработки я использовала среду разработки Delphi 7. Я выбрала эту программу так как интерфейс является более удобным понятным для пользователей.
Глава 1. Задачи программирования в среде DELPHI
1.1 Среда разработки Delphi
Object Pascal -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal -- динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией -- данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.
Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу -- там и буду лежать». Соответственно организуется и «многокучность».
Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.
Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.
Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);
Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET.
Delphi for .NET -- среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.
Первая версия полноценной среды разработки Delphi для .NET -- Delphi 8. Она позволяла писать приложения только для .NET. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0.
В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого направления. Планировалась продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор.
Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания -- CodeGear, которая будет финансово полностью подконтрольна Borland.
В августе 2006 года Borland выпустил облегченную версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и .NET), Turbo C#, Turbo C++. В марте 2008 года было объявлено о прекращении развития этой линейки продуктов. В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP. В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap. 25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. Версия привнесла множество нововведений в язык, как то:
По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
Обобщённые типы, они же generics.
Анонимные методы.
Новая директива компилятора $POINTERMATH [ON|OFF].
Функция Exit теперь может принимать параметры в соответствии с типом функции.
Вышедшая в 2011 году версия Delphi XE2 добавила компилятор Win64 и кросс-компиляцию для операционных систем фирмы Apple.
Delphi - это комбинация нескольких важнейших технологий:
Высокопроизводительный компилятор в машинный код
Объектно-ориентированная модель компонент
Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
Масштабируемые средства для построения баз данных
Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.
Среда Delphi 7 представляет собой интегрированную оболочку разработчика, в которую входит набор специальных программ, ответственных за разные этапы создания готового приложения (рисунок 1)
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 1 Основные окна системы Delphi 7
Исходный текст программы готовится в среде Delphi 7 с помощью встроенного редактора исходных текстов. Этот редактор специализирован. Он отличается гибкими возможностями цветового выделения различных элементов текста программы (ключевые слова, названия, операций, чисел строк) и предоставляет возможность быстрого ввода часто встречающихся конструкций.
Левая панель редактора представляет собой Проводник, позволяющий быстро перемещаться между частями исходного текста и по структуре создаваемой программы.
Важнейшая характеристика разрабатываемой программы - удобство ее пользовательского интерфейса, наличие и доступность необходимых элементов управления. В системе Delphi 7 имеется специальный проектировщик форм, с помощью которого окна будущей программы подготавливаются в виде форм. Проектировщик позволяет подобрать оптимальные размеры окон, разместить и настроить всевозможные элементы управления и меню, добавить готовые изображения, указать заголовки, подсказки, надписи и так далее.
Компонентный подход
На этапе проектирования форм программа как бы составляется из готовых компонентов - частей машинного кода, которые можно добавлять к ней с помощью всего нескольких щелчков мыши. Компоненты располагаются на палитре компонентов, разделенной на несколько самостоятельных панелей (рисунок 2).
Рисунок 2 Палитра компонентов
После запуска Delphi в верхнем окне горизонтально располагаются иконки палитры компонент. Если курсор задерживается на одной из иконок, под ней в желтом прямоугольнике появляется подсказка
Из этой палитры компонент вы можете выбирать компоненты, из которых можно строить приложения. Компоненты включают в себя как визуальные, так и логические компоненты. Такие вещи, как кнопки, поля редактирования - это визуальные компоненты; а таблицы, отчеты - это логические.
Понятно, что поскольку в Delphi вы визуальным образом строите свою программу, все эти компоненты имеют свое графическое представление в поле форм для того, чтобы можно было бы ими соответствующим образом оперировать. Но для работающей программы видимыми остаются только визуальные компоненты. Компоненты сгруппированы на страницах палитры по своим функциям. К примеру, компоненты, представляющие Windows “common dialogs” все размещены на странице палитры с названием “Dialogs”.
Delphi позволяет разработчикам настроить среду для максимального удобства. Вы можете легко изменить палитру компонент, инструментальную линейку, а также настраивать выделение синтаксиса цветом.
Заметим, что в Delphi вы можете определить свою группу компонент и разместить ее на странице палитры, а если возникнет необходимость, перегруппировать компоненты или удалить неиспользуемые.
Компоненты обладают набором свойств, характеризующими их отличительные особенности. Некоторые свойства имеются практически у всех компонентов - такого, например, свойства Name (Имя). Другие свойства, например Caption (Заголовок), имеются у большинства компонентов - ведь заголовок необходим и для окна, и для кнопки. Некоторые свойства уникальны для конкретных компонентов, например свойство SimpleText (Простой текст), содержащее текст для компонентов Строка состояния.
Свойства компонентов в процессе проектирования формы настраиваются с помощью Инспектора объектов. Это специальная программа, показывающая список всех свойств данного компонента, отсортированных по категориям или в алфавитном порядке.
Значение любого свойства можно изменить, введя в соответствующее поле Инспектора объектов новую строку или выбрав нужное значение в раскрывающемся списке доступных значений. Некоторые свойства содержат вложенные подсвойства, например, свойство Font (Шрифт) характеризуется размеров, стилем, цветом, гарнитурой. Такие свойства удобней редактировать с помощью специальных редакторов, как стандартные (шрифт), так и специально разработанных для конкретного компонента.
Помимо свойств, компоненты содержат методы - программный код, обрабатывающий значение свойств (например, устанавливающий переключатель в нужное положение), а также событий - сообщения, которые компонент принимает от приложения, если во время работы программы выполняется определенное действие (например, изменяется состояние флажка). Программист может самостоятельно формировать реакции программы на любые события каждого компонента.
Правильно подбирая компоненты и настраивая их совместную работу путем использования свойств, предназначенных для связи компонентов друг с другом, нередко удается создать приложение, не написав вручную ни строчки исходного текста. В системе Delphi 7 существуют сотни готовых компонентов, и при решении многих задач бывает полезно предварительно поискать нужный компонент (например, в Интернете), вместо того, что бы выполнять работу по программированию, возможно, уже сделанную другими людьми. Компонентный подход к созданию программ позволяет повторно использовать готовые разработки и во многих случаях значительно повышать эффективность труда.
С помощью системы Delphi 7 можно создавать не только обычные программы (EXE-файлы), но и динамически подключаемые библиотеки DLL (своеобразные хранилища кода и ресурсов), новые элементы управления, а также компоненты, отвечающие требованиям различных стандартов на компонентные технологии (COM, ActiveX, CORBA и так далее).
Структура проекта
Рисунок 3 Окно проекта
Проект Delphi представляет собой набор программных единиц -- модулей. Один из модулей -- главный, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения полностью формируется Delphi.
Главный модуль представляет собой файл с расширением dpr. Для того чтобы увидеть текст главного модуля приложения, нужно из меню Project выбрать команду View Source.
uses
Forms,vrun1 in 'vrunl.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Начинается главный модуль словом program, за которым следует имя программы, совпадающее с именем проекта. Имя проекта задается в момент сохранения проекта, и оно определяет имя создаваемого компилятором исполняемого файла программы. Далее за словом uses следуют имена используемых модулей: библиотечного модуля Forms и модуля формы vrunl.pas.
Строка {$R *.RES}, которая похожа на комментарий, -- это директива компилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы приложения: пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением res.
Файл ресурсов не "является текстовым файлом, поэтому просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов используют специальные программы, например, Resource Workshop. Можно также применять входящую в состав Delphi утилиту Image Editor, доступ к которой можно получить выбором из меню Tools команды Image Editor.
Исполняемая часть главного модуля находится между инструкциями begin и end. Инструкции исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна.
Помимо главного модуля, каждая программа включает в себя еще как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.
Структура модуля
Модули - это программные единицы, служащие для размещения фрагментов программ. При помощи содержащихся в них текстов программ и реализуется решаемая пользователем задача.
Рисунок 4 Окно модуля
Начинается модуль словом unit, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения.
Модуль состоит из следующих разделов:
интерфейса;
реализации;
инициализации.
Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type. Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы.
Начинается раздел реализации директивой {$R *.DFM}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы.
За директивой ($R *.DFM} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции. Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций (как в приведенном примере), то слово begin не указывается.
Следует отметить, что значительное количество инструкций модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после слова type). В приведенном примере инструкции, набранные программистом, выделены фоном. Очевидно, что Delphi выполнила значительную часть работы по составлению текста программы.
1.2 Численное интегрирование
Многие инженерные задачи, задачи физики, геометрии и многих других областей человеческой деятельности приводят к необходимости вычислять определенный интеграл вида , где - подынтегральная функция, непрерывная на отрезке [a;b].
Определенный интеграл от функции, имеющей неэлементарную первообразную, можно вычислить с помощью той или иной приближенной формулы. Для решения этой задачи на компьютере, можно воспользоваться формулами прямоугольников, трапеций или формулой Симпсона. В данной работе рассматривается формула трапеций и формула средних прямоугольников.
Необходимость применения численного интегрирования чаще всего может быть вызвана отсутствием у первообразной функции представления в элементарных функциях и, следовательно, невозможностью аналитического вычисления значения определённого интеграла по формуле Ньютона-Лейбница. Также возможна ситуация, когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом.
Теория приближенного решения математических задач постоянно пополняется все более совершенными численными методами, проявление которых стимулируется как особенностями машинной математики, так и расширением функциональных возможностей прикладных программных средств. Все это требует определенного уровня внимания, который необходимо обеспечить при обучении численным методам.
Главная особенность обучения основам численных методов, которая все отчетливее проявляется в последние годы, связана с интенсификацией процессов использования различных специализированных математических пакетов и систем программирования вычислительных методов как инструмента решения прикладных задач.
1.3 Обзор методов численного интегрирования
Метод прямоугольников
Простейшей оценкой искомой площади служит сумма площадей прямоугольников, заменяющих криволинейные трапеции, как показано на рисунке 5.
Рисунок 5
В обычном методе прямоугольников значение вычисляется в начале каждого отрезка и оценка интеграла дается выражением
где
Просуммировав элементарные площади фигур, построенных на сегментах получим примерное значение искомого определенного интеграла
где (1)
Погрешность приближения показана на рисунке 5, закрашена закрашенной фигурой
Одна из модификаций метода прямоугольников заключается в вычислении не в начальной, а в средней точке каждого. В этом случае искомый интеграл оценивается выражением
где
Метод трапеций
Другим приближением является формула трапеций, в которой интеграл оценивается вычислением суммы площадей элементарных трапеций со сторонами, равными значениям в начале и конце элементарного отрезка. Это приближение равносильно замене функции отрезком прямой, соединяющей значения в начальной и конечной точках отрезка (рисунок 6).
Рисунок 6
Площадь каждого элементарного сегмента разбиения считается по формуле
где
Просуммируем элементарные площади
т.к. то полная площадь определяется выражением
(2)
Погрешность приближения (как и в предыдущем случае) показана на рисунке 6 закрашенной фигурой.
Метод Симпсона (парабол)
Более высокую точность расчетов обеспечивает использование параболической (квадратичной) интерполяции по трем соседним точкам отрезка (рис.4). Уравнение полинома второй степени, проходящего через точки можно записать в виде
(3)
Проинтегрировав (3) с учетом того, что получим -- площадь под параболой на отрезке
Просуммировав все элементарные площади, получим
(4)
причем -- обязательно четное число.
1.4 Примеры
Решим пример
Решение задачи методом трапеций
, (нет)
,
(да)
Ответ: с точностью
Решение задачи методом средних прямоугольников
(нет)
(да)
Ответ: с точностью
Решение задачи методом Симпсона
Ответ: с точностью
Выводы после первой главы
В первой главе были изучены средства объекто-ориентированного программирования. Была рассмотрена среда программирования Delphi, ее история, компонентный подход и структуру проекта.
Delphi - это комбинация нескольких важнейших технологий:
Высокопроизводительный компилятор в машинный код
Объектно-ориентированная модель компонент
Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
Масштабируемые средства для построения баз данных
Так же в первой главе были изучены методы численного интегрирования. Определенный интеграл от функции, имеющей неэлементарную первообразную, можно вычислить с помощью той или иной приближенной формулы. Для решения этой задачи на компьютере, можно воспользоваться формулами прямоугольников, трапеций или формулой Симпсона.
Необходимость применения численного интегрирования чаще всего может быть вызвана отсутствием у первообразной функции представления в элементарных функциях и, следовательно, невозможностью аналитического вычисления значения определённого интеграла по формуле Ньютона-Лейбница. Также возможна ситуация, когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом.
Глава 2. Реализация методов численного интегрирования на языке DELPI
2.1 Алгоритмы программ
Алгоритм -- набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система.
Ранее часто писали «алгорифм», сейчас такое написание используется редко, но, тем не менее, имеет место (например, Нормальный алгорифм Маркова).
Часто в качестве исполнителя выступает некоторый механизм (компьютер, токарный станок, швейная машина), но понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек.
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако, в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Метод Прямоугольников
Размещено на http://www.allbest.ru/
Метод Трапеций
Размещено на http://www.allbest.ru/
Метод Симпсона
Размещено на http://www.allbest.ru/
2.2 Листинг программ
Метод прямоугольников
procedure TForm1.Button2Click(Sender: TObject);
Var a,b,s,x,h,s1,d,e:real; i,n:integer;
function f(x:real):real;
begin
f:=(sqr(x)+1)*cos(x-5.5);;
//f:=x*x*x;;
end;
begin
a:=strtofloat (Edit1.text);
b:=strtofloat (Edit2.text);
e:=strtofloat (Edit3.text);
h:=0.5;
s1:=0;s:=0;
x:=a;
n:=trunc((b-a)/h);
for i:=1 to n-1 do
begin x:=x+h;
s:=s+f(x+h/2);
end;
s:=h*s;
repeat
h:=h/2;
n:=trunc((b-a)/h);
x:=a;
for i:=1 to n-1 do
begin x:=x+h;
s1:=s1+f(x+h/2);
end;
s1:=h*s1;
if s1>=1 then d:=abs((s1-s)/s1)
else d:=abs(s1-s);
s:=s1;
s1:=0;
until d<e;
edit4.text:= floattostrf (s,ffFixed, 6,4);
edit5.text:= floattostrf (d,ffFixed, 6,4);
end;
end.
Метод трапеций
procedure TForm1.Button2Click(Sender: TObject);
Var a,b,s,x,h,s1,d,e:real; i,n:integer;
function f(x:real):real;
begin
f:=(sqr(x)+1)*cos(x-5.5);;
//f:=x*x*x;;
end;
begin
a:=strtofloat (Edit1.text);
b:=strtofloat (Edit2.text);
e:=strtofloat (Edit3.text);
h:=0.5;
s1:=0;s:=0;
x:=a;
n:=trunc((b-a)/h);
for i:=1 to n-1 do
begin x:=x+h;
s:=s+f(x);
end;
s:=h*((f(a)+f(b))/2+s);
repeat
h:=h/2;
n:=trunc((b-a)/h);
x:=a;
for i:=1 to n-1 do
begin x:=x+h;
s1:=s1+f(x);
end;
s1:=h*((f(a)+f(b))/2+s1);
//writeln('s1',s1:4:2);
if s1>=1 then d:=abs((s1-s)/s1)
else d:=abs(s1-s);
s:=s1;
s1:=0;
until d<e;
edit4.text:= floattostrf (s,ffFixed, 6,4);
edit5.text:= floattostrf (d,ffFixed, 6,4);
end;
end.
Метод Симпсона
procedure TForm1.Button2Click(Sender: TObject);
Var a,b,s,x,h,s1,d,e,c:real; i,n:integer;
function f(x:real):real;
begin
//f:=(sqr(x)+1)*cos(x-5.5);;
f:=x*x*x;;
end;
begin
a:=strtofloat (Edit1.text);
b:=strtofloat (Edit2.text);
e:=strtofloat (Edit3.text);
n:=2;
h:=(b-a)/n;
s:=0;
x:=a;
c:=1;
for i:=1 to n-1 do
begin x:=x+h;
s:=s+(3+c)*f(x);
c:=-c;
end;
s:=h*((f(a)+f(b)+s))/3;
repeat
n:=n*2;
h:=(b-a)/n;
x:=a;
c:=1;
for i:=1 to n-1 do
begin x:=x+h;
s1:=s1+(3+c)*f(x);
c:=-c;
end;
s1:=h*((f(a)+f(b)+s1))/3;
if s1>=s then d:=abs((s1-s)/s1)
else d:=abs(s1-s);
s:=s1;
s1:=0;
until d<e;
edit4.text:= floattostrf (s,ffFixed, 6,4);
edit5.text:= floattostrf (d,ffFixed, 6,4);
end;
end.
2.3 Тестирование программ
В качестве тестового примера для метода трапеций возьмем пример
, аналитически его можно решить и решение имеет вид с точностью ? = 0,1.
Проверим правильность работы программы для тестового примера.
Метод прямоугольников
Рисунок 7
Метод трапеций
Рисунок 8
Метод Симпсона
Рисунок 9
2.3 Сравнительный анализ
Изученные методы сравниваем по следующему параметру: величина погрешности. При решении определенного интеграла ,с введенной точностью <0,3 с помощью программы получились следующие результаты:
Таблица 1
Метод прямоугольников |
Метод трапеций |
Метод Симпсона |
||
решение |
3,9683 |
4,0625 |
4 |
|
погрешность |
0,0225 |
0,0462 |
0 |
Исходя из полученных результатов, мы видим, что наиболее эффективный метод - метод Симпсона, так как погрешность при решении задачи этим способом минимальна, то есть практически равна 0. Но, стоит заметить, что метод Симпсона удобен лишь в том случае, когда есть возможность расчета определенного интеграла с помощью разработанных программ. В таких условиях он самый оптимальный и точный.
Однако, по итогам рассмотрения перечисленных выше методов мы выяснили, что для решения задач численного интегрирования без возможности использования разработанных программ, лучшим методом является метод трапеций или прямоугольников. Потому, как вычисления наименее трудоемки и отнимают меньше времени.
Выводы по второй главе
Для реализации программы решения задач численного интегрирования, использовалась среда программирования Delphi.
В ходе данной работы можно выделить следующие этапы создания программы:
Изучение методов решения
Решение примеров тремя различными методами
Создание алгоритма
Написание программы на языке Delphi
Тестирование программы
На основаниях результатов тестирования программы, мы сравнили методы решения задач численного интегрирования и пришли к мнению о наиболее эффективном способе их решения.
Заключение
Цель курсовой работы достигнута, задачи выполнены. В ходе выполнения курсовой работы были разработаны программы для решения задач численного интегрирования методами Симпсона, прямоугольников и трапеций. Также были проанализированны: краткая история языка программирования и среда разработки Delphi, методы численного интегрирования: метод прямоугольников, метод парабол и метод Симпсона и рассмотрены примеры решения каждым из методов.
Разработанные программы позволяют решать задачи численного интегрирования. Для решения требуется ввести начало и конец интервала и задать погрешность.
Любой студент, школьник или просто пользователь с легкость может найти приближенное значение интеграла тремя методами с помощью данной программы.
Литература
1. Зубкова Т.М. “Технология разработки программного обеспечения: Учебное пособие” - Оренбург: ГОУ ОГУ, 2004.
2. Панкратова Л.П., Челак Е.Н. «Контроль знаний по информатике: тесты, контрольные задания, экзаменационные вопросы, компьютерные проекты». - Спб.: БХВ-Петербург, 2004.
3. Н. Н. Калиткин. «Численные методы». Москва «Наука», 1978.
4..Бахвалов Н.С., Жидков Н.П., Кобельков Г.Г. «Численные методы». -- 8-е изд.. -- М.: Лаборатория Базовых Знаний, 2000.
5. Культин Н.Б. «Delphi в задачах и примерах» - Спб.: БХВ-Петербург, 2012
6. Жулева С.Ю., Соколова Ю.С. «Разработка приложений в среде Delphi» - М.: Горячая линия - Телеком 2011
7. Нефедова В. Ю. «Объектно-ориентированное программирование на языке Delphi» - Оренбург: ГОУ ОГУ, 2004.
8. Фаронов В.В. «Delphi . Учебный курс». Издательство Молгачев С.В., 2001. - 672с.
9. Кандзюба С.П., Громов В.Н. «Delphi. Базы данных и приложения. Лекции и упражнения.» - К.: Издательство «ДинСофт», 2001. - 576 с.
10. Архангельский А.Я. «Программирование в Delphi» --М.: ЗАО «Издательство БИНОМ», 2002г. - 1200 с.
11. Кандзюба С.П., Громов В.Н. «Delphi. Базы данных и приложения. Лекции и упражнения.» - К.: Издательство «ДинСофт», 2001. - 576 с.
12. Семакин И.Г., Шестаков А.П. Основы программирования Москва Из-во "Академия" 2007
13. Кирнос В.И. Язык Паскаль и численные методы. Из-во "Келеш-2030" 2004
14. Васильев Ф.П. «Численные методы решения задач», Москва 1988г.
15. Мудров А.Е. «Численные методы решения задач на ПЭВМ», Томск 1991г.
16. Кантор С. А. учебное пособие «Вычислительная математика» Барнаул
2005г.
17. Н. Н. Калиткин. «Численные методы». Москва «Наука», 1978.
18.Бахвалов Н.С., Жидков Н.П., Кобельков Г.Г. «Численные методы». -- 8-е изд.. -- М.: Лаборатория Базовых Знаний, 2000.
19.Кирнос В.И. Язык Паскаль и численные методы. Из-во "Келеш-2030" 2004
20. Интернет ресурс http://mathprofi.ru/formula_simpsona_metod_trapecij.html
21. Интернет ресурс - http://ru.wikipedia.org/wiki/
программирование численный интегрирование алгоритм
Приложения
Текст программы. Описание формы.
object Form1: TForm1
Left = 394
Top = 225
Width = 436
Height = 462
Caption = 'Метод прямоугольников'
Color = clCream
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 64
Top = 16
Width = 303
Height = 18
Caption = 'Вычисление корня уравнения х*x*x+25*x-8=0'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label2: TLabel
Left = 8
Top = 152
Width = 273
Height = 18
Caption = 'Введите начало отрезка а: '
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label3: TLabel
Left = 8
Top = 192
Width = 186
Height = 18
Caption = 'Канец отрезка b:'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label4: TLabel
Left = 8
Top = 232
Width = 176
Height = 18
Caption = 'Введите точность e:'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label5: TLabel
Left = 192
Top = 320
Width = 76
Height = 18
Caption = 'Результат:'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label6: TLabel
Left = 72
Top = 360
Width = 137
Height = 18
Caption = 'Корень уравнения:'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Label7: TLabel
Left = 72
Top = 384
Width = 100
Height = 18
Caption = 'Погрешность:'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
end
object Image1: TImage
Left = 8
Top = 0
Width = 409
Height = 153
Picture.Data = {
//код картинки
}
end
object Edit1: TEdit
Left = 288
Top = 152
Width = 121
Height = 21
TabOrder = 0
end
object Edit2: TEdit
Left = 288
Top = 192
Width = 121
Height = 21
TabOrder = 1
end
object Edit3: TEdit
Left = 288
Top = 232
Width = 121
Height = 21
TabOrder = 2
end
object Button2: TButton
Left = 112
Top = 264
Width = 257
Height = 33
Caption = 'Выполнить'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'GOST type A'
Font.Style = []
ParentFont = False
TabOrder = 3
OnClick = Button2Click
end
object Edit4: TEdit
Left = 224
Top = 360
Width = 121
Height = 21
TabOrder = 4
end
object Edit5: TEdit
Left = 224
Top = 384
Width = 121
Height = 21
TabOrder = 5
end
end
Размещено на Allbest.ru
Подобные документы
Математическое моделирование. Изучение приёмов численного и символьного интегрирования на базе математического пакета прикладных программ, а также реализация математической модели, основанной на методе интегрирования. Интегрирование функций MATLAB.
курсовая работа [889,3 K], добавлен 27.09.2008Методы левых и правых прямоугольников численного интегрирования для вычисления интегралов. Геометрический смысл определённого интеграла. Программная реализация, блок-схемы алгоритмов. Результат работы тестовой программы. Решение задачи с помощью ЭВМ.
курсовая работа [180,4 K], добавлен 15.06.2013Постановка задачи численного интегрирования. Классификация методов интегрирования: методы Ньютона-Котеса; методы статистических испытаний; сплайновые методы; методы наивысшей алгебраической точности. Метод Симпсона: суть; преимущества и недостатки.
реферат [165,3 K], добавлен 01.03.2011Рассмотрение методов приближенного численного анализа. Формулы интегрирования, прямоугольников, трапеций, формула Симпсона. Оценка погрешностей интегрирования. Вычисление интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона.
курсовая работа [995,7 K], добавлен 09.07.2012Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.
курсовая работа [1,4 M], добавлен 16.03.2012Исследование внутренней сходимости численного интегрирования методами Симпсона и трапеций различных функций, задаваемых с помощью функций языка C. Результаты исследования, их анализ, описание применения. Условия и характеристики выполнения программы.
курсовая работа [385,2 K], добавлен 14.03.2011Особенности метода численного интегрирования обыкновенных дифференциальных уравнений. Расчет переходного процесса в нелинейной электрической цепи, вызванного ее включением или отключением. Метод численного интегрирования Рунге-Кутта с переменным шагом.
отчет по практике [740,1 K], добавлен 10.10.2011Разработка прикладного программного обеспечения для решения расчетных задач для компьютера. Численное интегрирование - вычисление значения определённого интеграла. Проектирование алгоритма численного метода. Тестирование работоспособности программы.
курсовая работа [1,1 M], добавлен 03.08.2011Реализация интегрирования функции методами прямоугольников, трапеций, Симпсона. Построение графика сравнения точности решения методов интегрирования в зависимости от количества разбиений. Алгоритм расчета энтропии файлов с заданным расширением.
контрольная работа [1011,0 K], добавлен 04.05.2015Применения численного интегрирования. Интерполяционные методы нахождения значений функции. Методы прямоугольников, трапеций и парабол. Увеличение точности, методы Гаусса и Гаусса-Кронрода. Функциональные модели и программная реализация решения задачи.
курсовая работа [450,9 K], добавлен 25.01.2010