Автор работы: Пользователь скрыл имя, 08 Ноября 2012 в 15:30, курсовая работа
При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов.
Мне была поставлена задача исследовать метод вычисления определенных интегралов: метод правых прямоугольников.
Жданова Э.К. группа МАС-101-з
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФИЛИАЛ В ГОРОДЕ СТЕРЛИТАМАК
КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН
ИССЛЕДОВАНИЕ МЕТОДОВ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по ИНФОРМАТИКЕ
Стерлитамак 2012г.
При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов.
Мне была поставлена задача исследовать метод вычисления определенных интегралов: метод правых прямоугольников.
Программа
реализует вычисление определенного
интеграла методом
Формуле левых прямоугольников:
Формуле правых прямоугольников:
Формуле средних прямоугольников:
В случае разбиения отрезка
Для левых прямоугольников:
Для правых прямоугольников:
Для средних прямоугольников:
Поскольку составные квадратурные
формулы являются ни чем иным, как
суммами, входящими в определение интегр
Правые прямоугольники (построение справа на лево)
Рисунок 1 – Графическая интерпретация метода правых прямоугольников
Блок-схема алгоритма
Программа разрабатывается в объектно-ориентированной среде программирования Lazarus.
Перед началом программирования, была создана форма Заставка.
Рисунок 2 - Заставка
В этом окне расположены:
Затем была создана основная форма Меню, позволяющая выбирать операции.
Рисунок 2 - Основная форма
Данное окно представляет главное окно программы.
В этом окне расположены:
Затем была создана форма Визуализация, на которой будет показана площадь по методу правых прямоугольников.
Рисунок 3 – Визуализация метода правых прямоугольников
В этом окне расположены:
Следующая форма была создана для оценки погрешности метода правых прямоугольников.
Рисунок 4 - Исследование на погрешность
В этом окне расположены:
По блок-схеме была создана процедура для вычисления интеграла методом правых прямоугольников:
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;
Главная форма:
Рисунок 5 – Главная форма
Рисунок 6 – Визуализация метода правых прямоугольников
Рисунок 7 – График погрешностей
Рисунок 8 – Заставка
Вывод: Таким образом, видно что метод правых прямоугольников не достаточно точен при малом числе разбиении отрезка, и становиться более точным при очень большом их количестве.
Если же сравнивать результат полученный в математическом пакете и результат полученный по формуле Ньютона-Лейбница в программе видно, что результат идентичен полностью(в программе последнее число округлено).
В процессе разработки курсовой работы был проработан метод правых прямоугольников для вычисления определенных интегралов.
В процессе выполнения курсовой работы были закреплены практические навыки по разработке пользовательских приложений при помощи объектно-ориентированного языка программирования Lazarus и современных компьютерных технологий обработки информации, а также навыки в составлении текстовой документации.
Результаты вычислений средствами MathCad и методом правых прямоугольников практически совпадают при большом количестве разбиений отрезка.
Информация о работе Исследование методов вычисления определенных интегралов