Исследование методов вычисления определенных интегралов

Автор работы: Пользователь скрыл имя, 08 Ноября 2012 в 15:30, курсовая работа

Краткое описание

При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов.
Мне была поставлена задача исследовать метод вычисления определенных интегралов: метод правых прямоугольников.

Содержимое работы - 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(2*b)+5)/10)-(exp(a)*(cos(2*a)+2*sin(2*a)+5)/10);

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),'',clred);

     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)*cos(x),'',clred);

     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(2*b)+5)/10)-(exp(a)*(cos(2*a)+2*sin(2*a)+5)/10);

 qw.Clear;

   x:=10;

   while x<=200 do

   begin

     pramoug(a,b,ceil(x),IntPr);

     qw.AddXY(x,abs(MNL-IntPr),'',clred);

     x:=x+10;

   end;

end;            

 

 

 

 

 

 

 

 

 

2.3 Тестирование разработанной  программы

 

Главная форма:

Рисунок 5 – Главная форма

Рисунок 6 – Визуализация метода правых прямоугольников

 

Рисунок 7 – График погрешностей

 

Рисунок 8 – Заставка

 

2.4  Проверка результатов средствами MathCad

 

Вывод: Таким образом, видно что метод правых прямоугольников не достаточно точен при малом числе разбиении отрезка, и становиться более точным при очень большом их количестве.

Если же сравнивать результат полученный в математическом пакете и результат  полученный по формуле Ньютона-Лейбница в программе видно, что результат идентичен полностью(в программе последнее число округлено).

 

Заключение

 

В процессе разработки курсовой работы был проработан метод правых прямоугольников для вычисления определенных интегралов.

В процессе выполнения курсовой работы были закреплены практические навыки по разработке пользовательских приложений при помощи объектно-ориентированного языка программирования Lazarus и современных компьютерных технологий обработки информации, а также навыки в составлении текстовой документации.

Результаты вычислений средствами MathCad и методом правых прямоугольников практически совпадают при большом количестве разбиений отрезка.

 

Список литературы

 

  1. Ильин В.А., Поздняк Э.Г. - Основы математического анализа. Часть 1 - М.: Физматлит, 2008 - 648 с.
  2. Михеева Е.В. Информационные технологии в профессиональной деятельности: Учебное пособие для сред. проф. образования. - 2-е издание, стер. - М.: Издательский центр "Академия", 2005. - 384 с.
  3. Намиот Д.Е. Основные особенности языка программирования Delphi 7. - М.: ‘Память ’, 1999.
  4. Пильщиков В.Н. Программирование на языке Delphi 7. - М.: Диалог--Мифи, 1999.
  5. Румянцева Е.Л., Слюсарь В.В. Информационные технологии: учеб. пособие / Под. ред. проф. Л.Г. Гагариной. - М.: ИД "ФОРУМ": ИНФРА - М, 2007. - 256 с.: ил.
  6. Official: http://sourceforge.net/projects/lazarus/
  7. Tutorials: http://lazarus-ccr.sourceforge.net

 

 

 

 

 

 

 


Информация о работе Исследование методов вычисления определенных интегралов