Разработка программы вычисляющей определенный интеграл методом трапеций
Разработка программы, которая вычисляет определенный интеграл методом трапеций для подынтегральной функции и моделирует задачу вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi. Решение задачи с помощью пакета MathCAD.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.05.2013 |
Размер файла | 738,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru/
Размещено на http://allbest.ru/
СОДЕРЖАНИЕ
- Введение
- 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
- 1.1 Обзор программных средств
- 1.2 Математическая модель
- 1.3 Блок-схема алгоритма решения поставленной задачи
- 2. ПРАКТИЧЕСКАЯ ЧАСТЬ
- 2.1 Решение поставленной задачи в Delphi
- 2.1.1 Описание интерфейса программы в среде Delphi
- 2.1.2 Перечень использованных в программе идентификаторов
- 2.1.3 Тексты основных модулей и вид форм приложения
- 2.1.4 Графическое представление результатов
- 2.2 Решение поставленной задачи средствами MathCad
- 2.2.1 Перечень использованных в программе идентификаторов
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЯ
Введение
В наши дни невозможно представить жизнь без компьютера, особенно если это связано с работой на некотором предприятии. Невозможно представить сейчас производственную, учебную деятельность и в общем жизнь людей без компьютерных систем и технологий. Математические и научно-технические расчеты являются важной сферой применения персональных компьютеров. Часто они выполняются с помощью программ, написанных на языке высокого уровня. С каждым днем повышаются требования к уровню подготовки молодых специалистов в этой сфере деятельности. Для этого изучаются языки программирования и многочисленные, подчас весьма тонкие капризные численные методы математических расчетов [1]. Выполненная курсовая работа является показателем того, чем студент занимался все время учебы.
Целью работы является разработка программы вычисляющей определенный интеграл методом трапеций для подынтегральной функции и моделирует задачу вынужденных колебаний без затухания .
В данном проекте для получения решения поставленных задач используются такие пакеты, как Delphi, Mathcad. Для достижения цели выполнения курсовой работы, необходимо решить следующие задачи:
· произвести формулировку задачи с конкретными данными;
· провести предварительный анализ задачи, описать математический аппарат, который будет использоваться для её решения;
· в соответствии с определенным заданием разработать алгоритм решения задачи;
· разработать программу в среде Delphi, реализующую построенный алгоритм;
· решить задачу с помощью интегрированного пакета MathCAD;
· провести анализ полученных результатов;
· сделать общие выводы.
Предметом исследования являются методы решений определенных интегралов, и дифференциальных уравнений.
Данное исследование имеет научную и практическую значимость. Использование данных программ даёт возможность инженерам, физикам, простым пользователям, значительно быстрее и менее трудоёмко выполнить расчеты. Собранный материал может быть использован в курсе «Информатика» - в этом и заключается практическая значимость данного исследования.
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Обзор программных средств
В первую очередь Delphi предназначался для профессионалов-разработчиков корпоративных информационных систем. Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.
Среда Delphi является очень удобной при решении различного рода задач, так как позволяет находить коэффициенты аппроксимирующих полиномов (многочленов) для табулированной функции, и создать удобный для пользователя интерфейс. Поэтому эта среда разработки широко используется как на производстве, так и в учебных заведениях и научных учреждениях. Mathcad относится к системам компьютерной алгебры, то есть средств автоматизации математических расчетов. Mathcad содержит сотни операторов и встроенных функций для решения различных технических задач. Программа позволяет выполнять численные и символьные вычисления, производить операции с скалярными величинами, векторами и матрицами, автоматически переводить одни единицы измерения в другие.
Среди возможностей Mathcad можно выделить то, что он позволяет находить коэффициенты аппроксимирующих полиномов (многочленов) для табулированной функции, но он отличается от Delphi тем, что многие функции уже заложены разработчиками, что значительно упрощает задачу.
1.2 Математическая модель
Метод Рунге-Кутта 4-го порядка точности.
Смещение из точки [xk; yk] в точку происходит не сразу, а через промежуточные точки. На практике наибольшее распространение получил метод 4-го порядка точности. Значение функции в i+1-й точке вычисляется следующим образом:
(1.4)
Метод Рунге-Кутта обладает достаточно высокой точностью, легко программируется, так как для вычисления нужно знать лишь одно значение yi. С помощью этого метода можно начинать решение ДУ. Величина шага изменения аргумента х легко меняется на любом этапе вычисления.
Недостатки:
1)необходимость четыре раза вычислять значение функции на каждом шаге;
2)отсутствие легко определяемой оценки ошибки метода.
Для оценки правильности шага рассчитывают:
,
которое должно быть меньше либо равно 0,05. В противном случае шаг следует уменьшить в два раза, провести вычисления и снова оценить д.
Метод Рунге-Кутта имеет порядок точности, сопоставимый со значением шага, взятым в 4-й степени. Для оценки погрешности метода пользуются формулой Рунге:
Аппроксимация функций методом наименьших квадратов. Аппроксимация является частным случаем интерполирования и применяется для определения аналитического вида функции заданной таблично. Задача аппроксимации сводится к определению свободного параметра (параметров) функции заданного вида, который обеспечит наилучшее приближение функции заданной таблично модельной аналитической функцией.
Метод наименьших квадратов.
Пусть таблично задана функция . Определить аппроксимационный многочлен вида:
Для определения коэффициентов (где i=1,2…m) используют аппроксимацию методом наименьших квадратов [3]. Функционал находится по формуле
,
где n - количество пар значений аргумента xi и функции yi. Т.к. S должен быть минимален, то первые частные производные от S по всем коэффициентам полинома должны равняться нулю.
Вычислим их и приравняем к нулю:
(1)
После преобразования система слегка упростится:
(2)
Если полином первой степени, то 2 уравнения, если шестой степени, то 7 уравнений. Введём следующие обозначения:
С учётом этих обозначений система (2) перепишется следующим образом:
(3)
Решив эту систему одним из известных методов определится ряд значений , с помощью которого и строится многочлен (1).
Среднеквадратичное отклонение вычисляется по формуле:
1.3 Блок-схемы алгоритмов решений поставленных задач
Рисунок 1.1 - Блок-схема метода Рунге-Кутта
Рисунок 1.2 - Блок-схема аппроксимации
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Решение поставленной задачи в Delphi
2.1.1 Описание интерфейса программы в среде Delphi
Интерфейс программы представлен главной формой. Форма имеет три вкладки Page Control. Первая вкладка имеет название “Задание 1” на ней находятся кнопки “Выйти”, “Сохранить график”, “Вычислить”, “Очистить”.
Компонент TChart отображает график, результаты расчетов выводятся на поле Memo. Также используя компонент CheckBox выбираем метод. Следующие две вкладки “Задание 2” и “Задание 2(аппроксимация)” имеют похожий набор компонентов. Это компоненты для ввода вывода информации, а также компоненты для сохранения расчетов и графиков в файл. Для визуального улучшения интерфейса программы используeтся XPManifest.
2.1.2 Перечень использованных в программе идентификаторов
Перечень использованных в программе идентификаторов находится в таблице (Таблица 1.1).
Таблица 1.1 - Перечень использованных в программе идентификаторов
Идентификаторы |
||
p3, p6, p7 |
массивы для хранения коэффициентов полинома |
|
x, f |
массивы для хранения значений x,y |
|
T, C |
массивы для хранения коэффициентов T и C |
|
Y |
значение функции |
|
DataX, DataY, StrXi, StrYi, Code |
переменные используемые при работе с файлом |
|
B, Bik |
используются при прямом ходе метода Гаусса |
|
A |
массив для хранения вычисленных коэф. полинома |
|
Delta |
среднеквадратичное отклонение |
|
i, ii, j, jj, n, k, s |
переменные для работы циклов |
|
Xi, Yi |
используются для преобразования строк в число |
|
f,x,x0,y,t,m |
используются в первом задании |
2.1.3 Тексты основных модулей и вид форм приложения
Тексты основных модулей приведены в приложении А.
Вид формы
Рисунок 2.1 - Меню программы
Рисунок 2.2 - Форма программы
2.1.4 Графическое представление результатов
Рисунок 2.2 - Графическое представление результатов
2.2 Решение поставленной задачи средствами MathCad
Рисунок 2.5 - Решение поставленной задачи средствами MathCad
2.2.1 Перечень использованных в программе идентификаторов
Перечень использованных в программе идентификаторов (Таблица 2.1).
Таблица 2.1 - Перечень использованных в программе идентификаторов
Идентификаторы |
||
x |
значения аргумента |
|
f |
значения функции |
|
A |
значения коэффициентов полинома |
|
Poly |
значение функции на основе коэф. |
|
Q |
среднеквадратичное отклонение |
|
xx, i, j |
переменные цикла |
ЗАКЛЮЧЕНИЕ
интеграл колебание интерфейс затухание
При решении задач применено два различных средства программирования - среда DELPHI и MathCad . Это позволяет сравнить их в конкретной ситуации и оценить их достоинства и недостатки.
MathCad является достаточно распространенным продуктом, что привело к его частому применению, в том числе и для решения задач отображения графической информации в виде различных графиков. Выполнение той же задачи с помощью DELPHI требует гораздо больше времени, более глубоких знаний в области программировании навыков их применения. Возможно, MathCad позволяет решать подобные задания даже быстрее, чем среда DELPHI, но она является очень гибкой и универсальной, а для неопытных пользователей это составляет определённые трудности.
В результате курсовой работы был разработан алгоритм решения поставленной задачи, точно такая же задача была решена в среде MathCad.
Полученный алгоритм имеет практическое значение, т.к. задача решается в многих сферах деятельности человека таких как научные исследования, прогнозирование погоды, математические расчеты и т.д.
Опыт, который получен при выполнении курсовой работы позволит сделать правильный выбор при выборе средства для решении подобных задач в практике и целесообразности их применения.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Культин Н.Б. Основы программирования в Delphi 7. - СПб.: БХВ.- Петербург, 2003.
2. Delphi для «чайников». Нейл Дж. Рубенкинг. Киев - Москва: Диалектика, 1997.
3. Наранович О.И.,Скобля С.Г. Информатика: методические указания и задания к лабораторным работам для студентов 2-го курса дневной формы обучения специальностей 40 01 02, 36 01 03, 36 01 01. Часть 3. -Барановичи: БарГУ, 2005.
4. Наранович О.И., Скобля С.Г. Информатика: задания и методические указания по выполнению, оформлению и защите курсовых работ для студентов дневной и заочной форм обученияспециальностей 1-36 01 01, 1-36 01 03, 1-53 01 01 Часть 4. -Барановичи: БарГУ, 2005.
5. Фаронов В.В.Delphi. Программирование на языке высокого уровня: Учебник для ВУЗов. - СПб.: Питер, 2005.
ПРИЛОЖЕНИЯ
Приложение А
Код программы
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, ComCtrls, StdCtrls,
Buttons;
type
TForm4 = class(TForm)
BitBtn1: TBitBtn;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
x0,xn,y0,k,k1,k2,k3,k4,h:real; x,y:extended;
implementation
uses Unit3;
{$R *.dfm}
function f(x,y:extended):extended;
begin
f:=y*sqrt(abs(ln(x)))+sqrt(abs(sin(y*x)/cos(y*x)))-y*exp((4/5)*abs(ln(x)))+y*x*x*x/cos(x)+y;
end;
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
x0:=strtofloat(form3.edit1.text);
xn:=strtofloat(form3.edit2.text);
y0:=strtofloat(form3.edit3.text);
k:=strtofloat(form3.edit4.text);
h:=(xn-x0)/k;
//x:=x0;
y:=y0;
memo1.lines.add('x= '+floattostr(x)+' y= '+floattostr(y));
//
while x<xn-h do begin
k1:=h*f(x,y);
k2:=h*f(x+h/2,y+k1/2);
k3:=h*f(x+h/2,y+k2/2);
k4:=h*f(x+h,y+k3);
x:=x+h;
y:=y+(k1+2*k2+2*k3+k4)/6;
memo1.lines.add('x= '+floattostrf(x,fffixed,7,5)+' y= '+floattostrf(y,fffixed,7,5));
series1.addxy(y,x);
end;
memo1.lines.add('Eiee?anoai ?acaeaiee - '+floattostr(k));
//
end;
procedure TForm4.BitBtn2Click(Sender: TObject);
begin
x0:=strtofloat(form3.edit1.text);
xn:=strtofloat(form3.edit2.text);
y0:=strtofloat(form3.edit3.text);
k:=strtofloat(form3.edit5.text);
h:=(xn-x0)/k;
//
x:=x0;
y:=y0;
memo2.lines.add('x= '+floattostr(x)+' y= '+floattostr(y));
//
while x<xn-h do begin
k1:=h*f(x,y);
k2:=h*f(x+h/2,y+k1/2);
k3:=h*f(x+h/2,y+k2/2);
k4:=h*f(x+h,y+k3);
x:=x+h;
y:=y+(k1+2*k2+2*k3+k4)/6;
memo2.lines.add('x= '+floattostrf(x,fffixed,7,5)+' y= '+floattostrf(y,fffixed,7,5));
series2.addxy(y,x);
end;
memo2.lines.add('Eiee?anoai ?acaeaiee - '+floattostr(k));
//
end;
procedure TForm4.BitBtn3Click(Sender: TObject);
begin
x0:=strtofloat(form3.edit1.text);
xn:=strtofloat(form3.edit2.text);
y0:=strtofloat(form3.edit3.text);
k:=strtofloat(form3.edit6.Text);
h:=(xn-x0)/k;
x:=x0;
y:=y0;
memo3.lines.add('x= '+floattostr(x)+' y= '+floattostr(y));
//
while x<xn-h do begin
k1:=h*f(x,y);
k2:=h*f(x+h/2,y+k1/2);
k3:=h*f(x+h/2,y+k2/2);
k4:=h*f(x+h,y+k3);
x:=x+h;
y:=y+(k1+2*k2+2*k3+k4)/6;
memo3.lines.add('x= '+floattostrf(x,fffixed,7,5)+' y= '+floattostrf(y,fffixed,7,5));
series3.addxy(y,x);
end;
memo3.lines.add('Eiee?anoai ?acaeaiee - '+floattostr(k));
//
end;
procedure TForm4.BitBtn4Click(Sender: TObject);
begin
memo1.Clear;
memo2.Clear;
memo3.Clear;
series1.clear;
series2.clear;
series3.clear;
end;
procedure TForm4.BitBtn5Click(Sender: TObject);
begin
form4.hide;
end;
end.
Приложение Б
Рисунок 1.1 - График
Размещено на Allbest.ru
Подобные документы
- Разработка программы, вычисляющей определенный интеграл методом трапеций для подынтегральной функции
Разработка алгоритма решения определенного интеграла методом трапеций для подынтегральной функции и моделирования задачи вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi и MathCad; идентификаторы, модули и приложения.
курсовая работа [500,4 K], добавлен 28.05.2013 Идея численного интегрирования. Создание программы, вычисляющей определенный интеграл методом трапеций. Листинг программы, результаты работы. Проверка в среде Mathcad. Зависимость точности вычисления от количества отрезков разбиения, расчет погрешности.
отчет по практике [106,8 K], добавлен 28.04.2013Разработка программы на языке высокого уровня, позволяющей для заданной функции рассчитать определенный интеграл приближенным и точным методом, оценить погрешность и вывести результаты на консоль. Определение площади методом входящих прямоугольников.
курсовая работа [225,4 K], добавлен 18.08.2012Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019Разработка программы нахождения значения определенного интеграла с помощью метода трапеций. Оценка абсолютной погрешности метода. Использование среды программирования Visual Studio Community 2015 для написания программы. Работа с графическим интерфейсом.
курсовая работа [573,8 K], добавлен 17.03.2016Методы вычисления определенных интегралов: метод трапеций и метод Симпсона (парабол). Примеры применения, блок-схемы методов трапеций и Симпсона. Разработка программы в объектно-ориентированной среде программирования Lazarus, конструирование интерфейса.
реферат [2,1 M], добавлен 18.04.2011Математическое описание, алгоритм и программа вычисления определенного интеграла методом трапеций. Расчет n-значений исследуемой функции и вывод их в виде таблицы. Технические и программные средства. Входные и выходные данные, функциональное назначение.
курсовая работа [21,0 K], добавлен 03.01.2010Особенности метода численного интегрирования функции одной переменной. Замена на каждом элементарном отрезке подынтегральной функции на многочлен первой степени (линейную функцию). Разработка алгоритма программы, ее листинг. Пример работы программы.
контрольная работа [217,9 K], добавлен 14.07.2012Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.
курсовая работа [990,9 K], добавлен 15.06.2009Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.
курсовая работа [233,6 K], добавлен 27.12.2009