Исследование методов вычисления определенных интегралов
Курсовая работа, 08 Ноября 2012, автор: пользователь скрыл имя
Краткое описание
При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов.
Мне была поставлена задача исследовать метод вычисления определенных интегралов: метод правых прямоугольников.
Содержимое работы - 1 файл
отчет лазарус (Автосохраненный) (восстановлен).doc
— 233.00 Кб (Скачать файл)Жданова Э.К. группа МАС-101-з
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФИЛИАЛ В ГОРОДЕ СТЕРЛИТАМАК
КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН
ИССЛЕДОВАНИЕ МЕТОДОВ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по ИНФОРМАТИКЕ
Стерлитамак 2012г.
Содержание
Введение
При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов.
Мне была поставлена задача исследовать метод вычисления определенных интегралов: метод правых прямоугольников.
1 Теоретическая часть
Программа
реализует вычисление определенного
интеграла методом
Формуле левых прямоугольников:
Формуле правых прямоугольников:
Формуле средних прямоугольников:
В случае разбиения отрезка
Для левых прямоугольников:
Для правых прямоугольников:
Для средних прямоугольников:
Поскольку составные квадратурные
формулы являются ни чем иным, как
суммами, входящими в определение интегр
Правые прямоугольники (построение справа на лево)
Рисунок 1 – Графическая интерпретация метода правых прямоугольников
Блок-схема алгоритма
2 Практическая часть
2.1 Конструирование интерфейса
Программа разрабатывается в объектно-ориентированной среде программирования Lazarus.
Перед началом программирования, была создана форма Заставка.
Рисунок 2 - Заставка
В этом окне расположены:
- Кнопка "Запуск", позволяющая приступить к началу программы;
- Компоненты Label;
Затем была создана основная форма Меню, позволяющая выбирать операции.
Рисунок 2 - Основная форма
Данное окно представляет главное окно программы.
В этом окне расположены:
- Компоненты Label для подписи компонентов Edit;
- Компонент MainMenu для выбора операции;
Затем была создана форма Визуализация, на которой будет показана площадь по методу правых прямоугольников.
Рисунок 3 – Визуализация метода правых прямоугольников
В этом окне расположены:
- Две кнопки: "Визуализация методом прямоугольников" - визуализирует метод правых прямоугольников; "Выход" - возвращается на главное меню;
- Компонент Chart для отображения графика;
Следующая форма была создана для оценки погрешности метода правых прямоугольников.
Рисунок 4 - Исследование на погрешность
В этом окне расположены:
- Три кнопки: Кнопка "Button1" визуализирует метод;
- Компонент Chart для отображения графика
2.2 Программное вычисление
По блок-схеме была создана процедура для вычисления интеграла методом правых прямоугольников:
procedure pramoug (a,b: real; n: integer; var s:real);
var
h,x,f: real; i: integer;
begin
h:=(b-a)/n;
x:=b;
S:=0;
for i:=1 to n do
begin
f:=exp(x)*cos(x)*cos(x);
s:=s+f;
x:=x-h;
end;
s:=s*h;
end;
Основная программа вычисления
определенного интеграла
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
n:=strtoint(edit3.text);
MNL:=(exp(b)*(cos(2*b)+2*sin(
edit6.text:=floattostr(MNL);
pramoug(a,b,n,IntPr);
edit4.text:=floattostr(IntPr);
end;
Здесь MNL – точное значение интеграла по формуле Ньютона-Лейбница.
Визуализация метода правых прямоугольников:
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
TAGraph, StdCtrls,TASeries, TAChartUtils;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Chart1: TChart;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
s: TBarSeries;
d: TSerie;
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
Var x,b,a: real;
h:double;
sss: tseriespointerstyle;
begin
Chart1.BottomAxis.Visible :=true;
Chart1.LeftAxis.Visible :=true;
d:= TSerie.Create(Chart1);
d.ShowLines := true;
d.ShowPoints := false;
d.Pointer.Style := psRectangle;
d.SeriesColor := clRed;
Chart1.AddSeries(d);
chart1.Visible:=true;
d.Clear; {Построение графика}
a:=strtofloat(edit1.text);
x:=a;
b:=strtofloat(edit2.text);
while x<=b do
begin
d.AddXY(x,exp(x)*cos(x)*cos(x)
x:=x+0.01;
end;
s := TBarSeries.Create(Chart1);
Chart1.AddSeries(s);
h:=(b-a)/10;
s.Clear; {добавление прямоугольников}
x:=strtofloat(edit2.text);
while x>=strtofloat(edit1.text) do
begin
s.AddXY(x-h/2,exp(x)*cos(x)*
x:=x-h;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;
График погрешностей:
var
Form3: TForm3;
IntPr,IntS,MNL: real;
b,a: real;
implementation
{ TForm3 }
procedure pramoug (a,b: real; n: integer; var s:real);
var
h,f,x: real; i: integer;
begin
h:=(b-a)/n;
x:=a+h;
S:=0;
for i:=0 to n-1 do
begin
f:=exp(x)*cos(x)*cos(x);
s:=s+f;
x:=x+h;
end;
s:=s*h;
end;
procedure TForm3.Button1Click(Sender: TObject);
var x:real;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
Chart1.BottomAxis.Visible :=true;
Chart1.LeftAxis.Visible :=true;
qw:= TSerie.Create(Chart1);
qw.ShowLines := true;
qw.ShowPoints := false;
qw.Pointer.Style := psRectangle;
Chart1.AddSeries(qw);
chart1.Visible:=true;
MNL:=(exp(b)*(cos(2*b)+2*sin(
qw.Clear;
x:=10;
while x<=200 do
begin
pramoug(a,b,ceil(x),IntPr);
qw.AddXY(x,abs(MNL-IntPr),'',
x:=x+10;
end;
end;
2.3 Тестирование разработанной программы
Главная форма:
Рисунок 5 – Главная форма
Рисунок 6 – Визуализация метода правых прямоугольников
Рисунок 7 – График погрешностей
Рисунок 8 – Заставка
2.4 Проверка результатов средствами MathCad
Вывод: Таким образом, видно что метод правых прямоугольников не достаточно точен при малом числе разбиении отрезка, и становиться более точным при очень большом их количестве.
Если же сравнивать результат полученный в математическом пакете и результат полученный по формуле Ньютона-Лейбница в программе видно, что результат идентичен полностью(в программе последнее число округлено).
Заключение
В процессе разработки курсовой работы был проработан метод правых прямоугольников для вычисления определенных интегралов.
В процессе выполнения курсовой работы были закреплены практические навыки по разработке пользовательских приложений при помощи объектно-ориентированного языка программирования Lazarus и современных компьютерных технологий обработки информации, а также навыки в составлении текстовой документации.
Результаты вычислений средствами MathCad и методом правых прямоугольников практически совпадают при большом количестве разбиений отрезка.
Список литературы
- Ильин В.А., Поздняк Э.Г. - Основы математического анализа. Часть 1 - М.: Физматлит, 2008 - 648 с.
- Михеева Е.В. Информационные технологии в профессиональной деятельности: Учебное пособие для сред. проф. образования. - 2-е издание, стер. - М.: Издательский центр "Академия", 2005. - 384 с.
- Намиот Д.Е. Основные особенности языка программирования Delphi 7. - М.: ‘Память ’, 1999.
- Пильщиков В.Н. Программирование на языке Delphi 7. - М.: Диалог--Мифи, 1999.
- Румянцева Е.Л., Слюсарь В.В. Информационные технологии: учеб. пособие / Под. ред. проф. Л.Г. Гагариной. - М.: ИД "ФОРУМ": ИНФРА - М, 2007. - 256 с.: ил.
- Official:
http://sourceforge.net/
projects/lazarus/ - Tutorials:
http://lazarus-ccr.
sourceforge.net