Инфоурок Информатика Научные работыНаучно-практическая работа "Нахождение определенного интеграла"

Научно-практическая работа "Нахождение определенного интеграла"

Скачать материал

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ. 3

1 ОБЩИЕ СВЕДЕНИЯ…………………………………………………….4

1.1 Метод прямоугольника……………………………………………...4

1.2 Метод Трапеций……………………………………………………..5

1.3 Метод парабол(Симпсона)………………………………………….5

1.4 Метод Гаусса………………………………………………………...5

1.5 Метод Монте-Карло…………………………………………………7

1.6 Метод Чебышева………………………………………………….....8

2 ТЕХНИЧЕСКОЕ ЗАДАНИЕ…………………………………………….9

2.1  Основание для разработки. 9

2.2 Область применения. 9

2.3 Требования к программе и аппаратному обеспечению.. 9

3 ОПИСАНИЕ ПРОГРАММЫ.. 10

3.1 Методы вычисления интеграла. 10

3.2 Описание алгоритма программы.. 11

4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ.. 17

ЗАКЛЮЧЕНИЕ. 22

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ. 23

 


ВВЕДЕНИЕ

 

Многие инженерные задачи, задачи физики, геометрии и многих других областей человеческой деятельности приводят к необходимости вычислять определенный интеграл. Для приближенного вычисления интеграла существует много численных методов.

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

Для реализации программного продукта использовался визуальный язык программирования Borland Delphi 7. Delphi – это прекрасная система визуального объектно-ориентированного программирования, одинаково радующая и новичков и ассов. Новичку она позволяет с небольшими затратами сил и времени создавать прикладные программы. Впрочем, теперь в Delphi имеется возможность создавать кросс-платформенные программы, которые могут работать и в среде Windows, и в среде Linux. Ну а для опытного профессионала Delphi открывает неограниченные возможности создавать сколь угодно сложные приложения.

Программа удобна в использовании, легка в усвоении и имеет простой интерфейс.

 

 

 

 

 

 

 

1        ОБЩИЕ СВЕДЕНИЯ

1.1 Метод прямоугольников


Разделим отрезок [a; b] на n равных частей, т.е. на n элементарных отрезков. Длина каждого элементарного отрезка . Точки деления будут: x0=a; x1=a+h; x2=a+2×h, ..., xn-1=a+(n-1)×h; xn=b. Эти числа будем называть узлами. Вычислим значения функции f(x) в узлах, обозначим их y0, y1, y2, ... , yn. Cтало быть, y0=f(a), y1=f(x1), y2=f(x2), ... , yn=f(b). Числа y0, y1, y2, ... , yn являются ординатами точек графика функции, соответствующих абсциссам x0, x1, x2, ... , xn  (рис. 2). Из рис. 2 следует, что площадь криволинейной трапеции приближенно заменяется площадью многоугольника, составленного из n прямоугольников. Таким образом, вычисление определенного интеграла сводится к нахождению суммы n элементарных прямоугольников.

Рис. 2

 

   (3)

      (4)

Формула (3) называется формулой  левых прямоугольников.

 

1.2 Метод трапеций

 Формула трапеций:              (5)

Формула (5) означает, что площадь криволинейной трапеции заменяется площадью многоугольника, составленного из n трапеций (рис. 1.4); при этом кривая заменяется вписанной в нее ломаной.

1.3 Метод Симпсона

Геометрически иллюстрация формулы Симпсона состоит в том, что на каждом из сдвоенных частичных отрезков заменяем дугу данной кривой дугой графика квадратного трехчлена.

Разобьем отрезок интегрирования [a; b] на 2×n равных частей длины . Обозначим точки разбиения x0=a; x1=x0+h,  ... , xi=x0+i×h, ..., x2n=b. Значения функции f в точках xi обозначим yi, т.е. yi=f(xi). Тогда согласно методу Симпсона

    (6)

1.4 Метод Гаусса

 Описанные выше методы используют фиксированные точки отрезка (концы и середину) и имеют низкий порядок точности (0 — методы правых и левых прямоугольников, 1 — методы средних прямоугольников и трапеций, 3 — метод парабол (Симпсона)). Если мы можем выбирать точки, в которых мы вычисляем значения функции f(x), то можно при том же количестве вычислений подынтегральной функции получить методы более высокого порядка точности. Так для двух (как в методе трапеций) вычислений значений подынтегральной функции, можно получить метод уже не второго, а третьего порядка точности:

I \approx \frac{b-a}{2}\left(f\left(\frac{a+b}{2} - \frac{b-a}{2\sqrt{3}} \right)+f\left(\frac{a+b}{2} + \frac{b-a}{2\sqrt{3}} \right) \right)   (7)

В общем случае, используя nточек, по формуле I \approx \sum_{i=1}^{n} a_i\, f(x_i)можно получить метод с порядком точности 2n-1, т.е. получаются точные значения для полиномов степени не выше 2n-1.

Значения узлов x_iметода Гаусса по nточкам являются корнями полинома Лежандра степени n. Значения весов вычисляются по формуле a_i = \frac{2}{(1-x_i^2)\,[P_n'(x_i)]^2}\,, где P_n'- первая производная полинома Лежандра.

Для n=3\,узлы и веса имеют следующие значения : x_{1,3}=\pm\sqrt{0.6}, x_2=0,веса :  a_{1,3}=\frac{5}{9}, a_2=\frac{8}{9}\,.

(Полином определен на отрезке [-1,1]).Наиболее известен метод Гаусса по пяти точкам.

Недостаток метода Гаусса состоит в том, что он не имеет лёгкого (с вычислительной точки зрения) пути оценки погрешности полученного значения интеграла. Использование правила Рунге требует вычисления подынтегральной функции примерно в таком же числе точек, не давая при этом практически никакого выигрыша точности, в отличие от простых методов, где точность увеличивается в несколько раз при каждом новом разбиении. Кронродом был предложен следующий метод оценки значения интеграла

I \approx \sum_{i=1}^{n} a_i\, f(x_i) + \sum_{i=1}^{n+1} b_i\, f(y_i),   (8)

где x_i — узлы метода Гаусса по nточкам, а 3n+2параметров a_i, b_i, y_iподобраны таким образом, чтобы порядок точности метода был равен 3n+1.

Тогда для оценки погрешности можно использовать эмпирическую формулу:

\Delta = \left(200 |I - I_G|\right)^{1.5},  (9)

где I_G — приближённое значение интеграла, полученное методом Гаусса по nточкам. Библиотеки gsl и SLATEC для вычисления определённых интегралов содержат подпрограммы, использующие метод Гаусса — Кронрода по 15, 21, 31, 41, 51 и 61 точкам. Библиотека ALGLIB использует метод Гаусса — Кронрода по 15 точкам.

1.5 Метод Монте-Карло

https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Mc_integration.JPG/250px-Mc_integration.JPG

Численное интегрирование функции методом Монте-Карло

Для определения площади под графиком функции можно использовать следующий стохастический алгоритм:

·           ограничим функцию прямоугольником (n-мерным параллелепипедом в случае многих измерений), площадь которого S_{par}можно легко вычислить;

·           «набросаем» в этот прямоугольник (параллелепипед) некоторое количество точек (N штук), координаты которых будем выбирать случайным образом;

·           определим число точек (K штук), которые попадут под график функции;

·           площадь области, ограниченной функцией и осями координат, Sдаётся выражением S = S_{par}\frac{K}{N};  (10)

Этот алгоритм требует определения экстремумов функции на интервале и не использует вычисленное точное значение функции f(x)кроме как в сравнении, вследствие чего непригоден для практики. Приведённые в основной статье варианты метода Монте-Карло избавлены от этих недостатков.

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

1.6 Метод Чебышева

Интегрирование при бесконечных пределах. Для интегрирования по бесконечным пределам нужно ввести неравномерную сетку, шаги которой нарастают при стремлении к бесконечности, либо можно сделать такую замену переменных в интеграле, после которой пределы будут конечны. Аналогичным образом можно поступить, если функция особая на концах отрезка интегрирования

 

 

 

 

 

 

2 ТЕХНИЧЕСКОЕ ЗАДАНИЕ

 

2.1 Основание для разработки

Основанием для разработки является задание на выполнение курсовой работы по предмету ОАиП.

 

2.2 Область применения

Программа должна быть интересна любому пользователю компьютера. А также любому кто программирует на языке Delphi, изучает численные методы.

 

2.3 Требования к программе и аппаратному обеспечению

Необходимо вычислить приближенный интеграл методом прямоугольников, методом трапеций, методом Симпсона, методом Гаусса, методом Монте-Карло и методом Чебышева.

Минимальные требования к системе:

процессор INTEL PENTIUM II и выше или аналогичные процессоры других производителей;

¾     оперативная память 20Мбайт и выше;

¾     не менее 5 Мb свободного пространства на жестком диске;

¾     монитор SVGA;

¾     принтер;

¾     клавиатура;

¾     мышь.

Для корректной работы программного продукта необходимо следующее программное обеспечение:

операционная система Windows 9х и выше.

 

 

2          ОПИСАНИЕ ПРОГРАММЫ

 

3.1 Методы вычисления интеграла

Многие инженерные задачи, задачи физики, геометрии и многих других областей человеческой деятельности приводят к необходимости вычислять определенный интеграл вида

           (1)

где f(x) данная функция, непрерывная на отрезке [a; b]. Если функция f(x) задана формулой и мы умеем найти неопределенный интеграл F(x), то определенный интеграл вычисляется по формуле Ньютона-Лейбница:

   (2)

Если же неопределенный интеграл данной функции мы найти не умеем, или по какой-либо причине не хотим воспользоваться формулой (2), или если функция f(x) задана графически или таблицей, то для вычисления определенного интеграла применяют приближенные формулы. Для приближенного вычисления интеграла (1) существует много численных методов, из которых рассмотрим три основных: 1) метод прямоугольников; 2) метод трапеций; 3) метод Симпсона.

При вычислении интеграла следует помнить, каков геометрический смысл определенного интеграла. Если f(x)³0 на отрезке [a; b], то   численно равен площади фигуры, ограниченной графиком функции y=f(x), отрезком оси абсцисс, прямой  x=a и прямой x=b (рис. 1).

Таким образом, вычисление интеграла равносильно вычислению площади криволинейной трапеции.

 

 

 

 

 

 


3.2 Описание алгоритма программы

Вычислить определенный интеграл функции  , при n = 5,  используя метод прямоугольников, метод трапеций и метод Симпсона.

Ниже представлен код программы, реализованный на визуальном языке программирования для вычисления интеграла методом прямоугольников.

  Form1: TForm1;

  a,b,n,i:integer;

  h,s,x,y:real;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

 a:=StrToInt(Edit1.Text);

 b:=StrToInt(Edit2.Text);

 n:=StrToInt(Edit3.Text);

 h:=(b-a)/n;

 s:=0;

 for i:=0 to n do

  begin

   x:=a+(i*h);

   y:=1/(1+x);

   s:=s+(y*h);

  end;

 Edit4.Text:=FloatToStr(s);

end; end.

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

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

  a:=StrToInt(Edit1.Text);

 b:=StrToInt(Edit2.Text);

 n:=StrToInt(Edit3.Text);

 h:=(b-a)/n;

 s:=0; s1:=0;

 y1:=1/(1+a);

 y2:=1/(1+b);

 for i:=1 to n-1 do

  begin

   x:=a+(i*h);

   y:=1/(1+x);

   s1:=s1+y;

  end;

 s:=h*(((y1+y2)/2)+s1);

 Edit4.Text:=FloatToStr(s);

end; end.

Ниже представлен код программы, реализованный на визуальном языке программирования для вычисления интеграла методом Симпсона.

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

 a:=StrToInt(Edit1.Text);

 b:=StrToInt(Edit2.Text);

 n:=StrToInt(Edit3.Text);

 h:=(b-a)/(2*n);

 s:=0; s1:=0;

 y1:=1/(1+a);

 y2:=1/(1+b);

 for i:=0 to (2*n)-1 do

  begin

   x:=a+(i*h);

   y:=1/(1+x);

   s1:=s1+y;

  end;

 s:=h*(((y1+y2)/2)+s1);

 Edit4.Text:=FloatToStr(y2);

end; end.

Ниже представлен код программы, реализованный на визуальном языке программирования для вычисления интеграла методом Гаусса.

procedure TForm6.BitBtn1Click(Sender: TObject);

var

a: mat;

b: vec;

i, j : integer;

begin

{Заполнение матрицы a данными}

for i := 0 to StringGrid1.ColCount-1 do

 begin

  for j :=0 to StringGrid1.RowCount-1 do

   begin

    if StringGrid1.Cells[i, j] = '' then

     begin

      ShowMessage('Матрица не может содержат пустых элементов');

      Exit;

     end;

    a[j+1, i+1] := StrToFloat(StringGrid1.Cells[i, j]);

   end;

 end;

{Заполнение матрицы b данными}

for i := 0 to StringGrid2.RowCount-1 do

 begin

  if StringGrid2.Cells[0, i] = '' then

   begin

    ShowMessage('Матрица не может содержат пустых элементов');

    Exit;

   end;

  b[i+1] := StrToFloat(StringGrid2.Cells[0, i]);

 end;

Ниже представлен код программы, реализованный на визуальном языке программирования для вычисления интеграла методом Монте-Карло.

Procedure Graphic( var right, down: integer;

 var X_min, X_max, Y_min, Y_max, Kx, Ky: real);

 type arr=array[1..n] of real;

 var

 X, Y: arr; dx: real;

 i: integer;

 begin

 dx:=(B-A)/(n-1);

 for i:=1 to n do begin X[i]:=A+dx*(i-1);

 Y[i]:=FUNC(X[i]);

 end;

{Нахождение максимального и минимального значений функции и аргумента}

X_max:=B; X_min:=A;

 Y_max:=Y[1]; Y_min:=Y[1];

 for i:=2 to n do begin

 if Y_max < Y[i] then Y_max:=Y[i];

 if Y_min > Y[i] then Y_min:=Y[i];

 end;

Ниже представлен код программы, реализованный на визуальном языке программирования для вычисления интеграла методом Чебышева.

procedure TForm8.BitBtn1Click(Sender: TObject);

var

a:array[0..20] of real;

 x,z:real;

 k:integer;

begin

  Memo1.Clear;

  x:=StrToInt(Edit1.Text);

  k:=0;

  a[k]:=1;

  Memo1.Lines.Add(FloatToStr(a[k]));

  k:=1;

  a[k]:=x;

  Memo1.Lines.Add(FloatToStr(a[k]));

  for k:=2 to 20 do

  begin

  a[k]:=2*x*a[k-1]-a[k-2];

  Memo1.Lines.Add(FloatToStr(a[k]));

  end;

  k:=StrToInt(Edit2.Text);

  Edit3.Text:=Memo1.lines[k-1];

end;

 


4 Руководство ПОЛЬЗОВАТЕЛя

 

При запуске программы появляется основное окно программы, с помощью которого можно перемещаться на другие формы:

 

Рисунок 1.  Главное окно

 

При нажатии на кнопку «Метод прямоугольников» откроется окно, в котором вычисляется определенный интеграл методом прямоугольников (см.Рис. 2), по исходным данным: вычисление интеграла на отрезке [а,b], n – количество отрезков, разделяющие данную фигуру.

 

Рисунок 2.  Метод прямоугольников

 

При нажатии на кнопку «Метод трапеций» откроется окно, в котором вычисляется определенный интеграл методом трапеций.

 

Рисунок 3.  Метод трапеций

 

При нажатии на кнопку «Метод Симпсона» откроется окно, в котором вычисляется определенный интеграл методом Симпсона.

 

Рисунок 4.  Метод Симпсона

 

При нажатии на кнопку «Метод Гаусса» откроется окно, в котором вычисляется определенный интеграл методом Гаусса.

 

Рисунок 5.  Метод Гаусса

При нажатии на кнопку «Метод Монте-Карло» откроется окно, в котором вычисляется определенный интеграл методом Монте-Карло.

 

 Рисунок 6.  Метод Монте-Карло

 

При нажатии на кнопку «Метод Чебышева» откроется окно, в котором вычисляется определенный интеграл методом Чебышева.

 

Рисунок 7.  Метод Чебышева

 

При нажатии на кнопку «Выход» программа закрывается.

 

 

 

 

 

 

 

 


ЗАКЛЮЧЕНИЕ

 

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

1. При разработке приложения был пройден полный цикл проектирования программы от постановки задачи до сдачи программного продукта в эксплуатацию.

2.  Программа имеет доступный и понятный интерфейс, и не требует больших ресурсов компьютера.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1.   Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. -М.: Наука, 1988.

2.   Зуев Е.А. Язык программирования TurboPascal 7.0. - М.: Унитех, 1992.

3.   Фаронов В.В. TurboPascal 7.0. Начальный курс: Учебное пособие. - М.:Нолидж, 1998.

4.   Белецкий Я. Турбо Паскаль с графикой для персональных

      компьютеров. -М.: Машиностроение, 1991.

5.          Фаронов В.В. Delphi 6. Учебный курс. – М.: Издатель Молгачева
С.В., 2001. – 672с.

6.       Митчелл Ю., Керман К. Программирование и отладка в Delphi. Пер. с англ. – М.: Издательский дом «Вильяме», 2003. –  672с.: ил.

7.       Дарахвелидзе Г.П., Марков Е.П. Программирование в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 784с.: ил.

8.       Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. – М.: Издательство «Бином», 2006г. – 1151с.

9.       Хомоненко А.Д. и др. Delphi 7. Под общ. ред. А.Д. Хомоненко. – СПб.: БХВ-Петербург, 2003. – 1216с.

10.    Дарахвелидае П. Г., Марков Е. П. Программирование в Delphi 7. - СПб.: БХВ-Петербург, 2003. - 784 с: ил.;

11.    Осипов Д. Delphi. Профессиональное программирование. – СПб.: Символ-Плюс, 2006. - 1056 с., ил.;

12.    Осипов Д. Л. Delphi XE2. - СПб.: БХВ-Петербург, 2012. - 912 с.: ил.;

13.    Стивене Р. Delphi. Готовые алгоритмы / Род Стивене; Пер. с англ. Мерещука П. А. - 2-е изд., стер. - М.: ДМК Пресс ; СПб.: Питер, 2004. - 384 С.: ил.;

14.    М.В. Сухарев Основы Delphi. Профессиональный подход - СПб.: Наука и Техника, 2004. - 600 с.: ил.;

15.    Культин Н. Основы программирования в Delphi 7. - СПб.: БХВ-Петербург, 2003. - 608 с.: ил;

16.    Фаронов В.В. DELPHI 6. изд. «Номирис», 2001.;

17.    Фленов М. Библия для программистов в среде DELPHI, 2002.

18.    Культин Н. Б. Delphi в задачах и примерах. - 3-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2012. - 288 с.: ил.;

19.    Дантеманн Дж., Мишел Дж., Тейлор Д. Программирование на языке Delphi,1995.;

20.   Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение (пер. с англ.).. - Изд. второе, стереотип.. - М.: Мир, 2001. -575 с. .

21.   Самарский А. А., Гулин А. В. Численные методы: Учеб. пособие для вузов. - М.: Наука. Гл. ред. физ-мат. лит., 1989.- 432 с. .

22.   Пискунов Н. С. Дифференциальное и интегральное исчисления : Учеб. пособие для втузов: В 2 т. - 13-е изд.. - М.: Наука. Гл. ред. физ-мат. лит., 1985. - 432 с.

23.   Болтачев Г.Ш. Численные методы в теплофизике. Курс лекций Лекция 3: Численное интегрирование

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Научно-практическая работа "Нахождение определенного интеграла""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по сертификации продукции

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 820 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 15.05.2017 2087
    • DOCX 1.1 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Кеклис Александра Васильевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Кеклис Александра Васильевна
    Кеклис Александра Васильевна
    • На сайте: 7 лет и 7 месяцев
    • Подписчики: 0
    • Всего просмотров: 25000
    • Всего материалов: 15

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Интернет-маркетолог

Интернет-маркетолог

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 493 человека из 73 регионов
  • Этот курс уже прошли 1 523 человека

Курс повышения квалификации

Методы и инструменты современного моделирования

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 19 регионов
  • Этот курс уже прошли 69 человек

Мини-курс

Интерактивные материалы на печатной основе

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 58 человек из 25 регионов
  • Этот курс уже прошли 31 человек

Мини-курс

Психология обучения и развития детей: от садика до школы

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 27 человек из 18 регионов
  • Этот курс уже прошли 11 человек

Мини-курс

Цифровая трансформация в управлении и информационных технологиях

4 ч.

780 руб. 390 руб.
Подать заявку О курсе