Разработка комплекса программ для решения задач численного интегрирования на 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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.