Численное интегрирование. Метод Симпсона

Автор работы: Пользователь скрыл имя, 09 Февраля 2014 в 20:19, курсовая работа

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

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

Содержание

1.Введение. Необходимость метода численного интегрирования ………...3
2. Метод парабол (метод Симпсона)…………………….…………………....4
3.Алгоритм программы. Краткое описание программы………………….....7
4.Вычислительные эксперименты……………………………………….…....9
5.Заключение…………………………………………………………….……12
6.Используемая литература……………………………………………..……13

Прикрепленные файлы: 1 файл

Описание метода Симпсона.docx

— 59.60 Кб (Скачать документ)

 

                                Федеральное агентство по образованию

Тамбовское образовательное  учреждение

Высшего профессионального  образования

«Тамбовский Государственный  Университет»

им. Г.Р.Державина

 

Институт математики, физики и информатики

Курсовая работа по информатике

 

 

Тема: Численное интегрирование. Метод Симпсона.

 

Выполнила                                                                                                                                             Студентка 2 курса

                      Заочное отделение

                                                                              Специальность «Прикладная

                                                        математика и информатика»

                                                                                             Серебрякова С. Ю.

Научный руководитель:

Арзамасцев А. А.

 

 

 

Тамбов-2012

 

Содержание.

 

1.Введение. Необходимость метода численного интегрирования ………...3

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

3.Алгоритм программы. Краткое описание программы………………….....7

4.Вычислительные эксперименты……………………………………….…....9

5.Заключение…………………………………………………………….……12

6.Используемая литература……………………………………………..……13

7.Приложение. Листинг программы…………………………………………14

 

Введение. Необходимость метода численного интегрирования.

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

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

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

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

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

Геометрический смысл метода состоит в следующем: на отрезке [x0; x2] кривая y = f (x) заменяется квадратной параболой – графиком интерполяционного многочлена. При вычислении по формуле Симпсона значение интеграла будет численно равно значению площади криволинейной трапеции, ограниченной сверху параболой, проходящей через точки:

(x0, f(x0)),  (x1, f(x1)), (x2, f(x2)).

        Для вычисления интеграла разобьём отрезок интегрирования на два равных отрезка  [x0; x1] и [x1; x2]  (x0 = a, x2=b) и заменим подынтегральную функцию по формуле квадратичного интерполирования

 

где  .

Тогда:

 

Перейдём к новой переменной интегрирования, учитывая, что x = x0 + ht, dx = hdt, t = 0 при x = x0 и t = 2 при x = x2

 

или

 

Эта формула называется формулой Симпсона или формулой парабол.

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

Для получения более точного  результата достаточно разбить отрезок  интегрирования  [a;b] на чётное число (2n) частей и применить формулу Симпсона для каждой пары смежных отрезков разбиения:

 

 

 

Суммируя эти равенства, получим обобщённую формулу Симпсона (парабол):

 

        При стремлении количества разбиений к бесконечности, оценка интеграла стремится к его истинному значению.

Погрешность r метода Симпсона можно оценить по следующей формуле:

,

где

.

Второй способ оценки погрешности вычислений называется методом двойного пересчёта:

  1. вычисление интеграла выполнить два раза с шагами h и 2h и обозначить полученные интегралы соответственно Sh и S2h;
  2. если на отрезке [a, b] величина f (4)(x) изменяется медленно, то для метода Симпсона погрешность можно оценить по формуле

.

 

Алгоритм программы

 

 





 


    нет    да




       да


                                                                               нет


          


          



        да  



        нет  


          нет



           да 





 

Краткое описание программы.

 

        Программа предназначена для вычисления значения определённого интеграла на отрезке[a, b] с количеством разбиений 2n. Значения a, b и n вводятся с клавиатуры. Исходя из значений a, b и n, определяется шаг разбиения h отрезка[a, b]. Далее вычисляются суммы значений функций в чётных и нечётных точках. Затем вычисляется приближённое значение интеграла. Для оценки погрешности используем метод двойного пересчёта. Значение интеграла и погрешность выводятся на экран.

 

Вычислительные  эксперименты.

 

      Проведем вычисления  для функции f(x)=1/(1+x) на отрезке [0,1].

Очевидно, что интеграл от нее на отрезке[0,1] равен ln2 .

Число разбиений, n

Значение интеграла, s

2

0.6932539683

4

0.6931545307

6

0.6931486622

8

0.6931476528

10

0.6931473747

12

0.6931472743

14

0.6931472312

20

0.6931471927




 

 

 

 

 

 

 

Ln2 ≈0.6931471805599    


Рис.1        Рис.2  

На графике (рис.1, рис.2)  видно, что с увеличением числа разбиений n значение интеграла стремится к его истинному значению.

 

 

Проведем вычисления интеграла  от функции f(x)=sin(x)/x на отрезке[1,2].

Аналогично рассмотрим значения интеграла для различного числа разбиений.

Число разбиений, n

Значение интеграла, s

2

0.6593312109452

4

0.6593299877020

6

0.6593299224785

8

0.6593299115105

10

0.6593299085140

12

0.6593299074378

14

0.6593299069765

20

0.6593299065654




 

 

 

 

 

 

 




 

 

 

 

 

 

 

 

Рис.3

На графике (рис.3) видно, что с увеличением числа разбиений значения вычисленного интеграла от функции sin(x)/x сходятся к какому-то определенному числу – истинному значению интеграла.

 

По аналогии приведем таблицу  и график (рис.4) для функции f(x)=x^2/ln(x) на отрезке [2,4], где также прослеживается приближение значения интеграла к какому-то более точному значению.

Число разбиений, n

Значение интеграла, s

2

16.6823512793

4

16.6810639525

6

16.6809740789

8

16.6809578368

10

16.6809532669

12

16.6809516011

14

16.6809508810

20

16.6809502344




 

 

 

 

 

 

 

 

               Рис.4



 

 

 

 

 

 

 

 

 

 

Выводы.

В данной курсовой работе решена задача приближённого интегрирования функций  методом Симпсона. В процессе создания курсовой работы разработан алгоритм решения поставленной задачи. По этому алгоритму составлена и отлажена программа, в которой отдельным циклом методом двойного пересчета рассчитывается оценочная погрешность.

     На примере трех функций: f(x)=x2/ln(x), f(x)=sin(x)/x и f(x)=1/(1+x) в ходе вычислительных экспериментов были получены результаты работы метода Симпсона, которые показывают достаточную точность при наиболее  малом числе разбиений. Программа является полностью работоспособной, что подтверждается результатами её тестированием.

 

 

 

 

Используемая  литература.

1.Жуликов С.Е. Вводные  лекции по численным методам:  Учебное пособие. Тамбов: Изд-во  ТГУ им. Г.Р. Державина, 2010.

2.Калиткин Н.Н. Численные методы. [Электронный ресурс] /  Н.Н.Калиткин. - М.: Питер, 2001.

        3.Пулькин С.П., Никольская Л.Н., Дьячков А.С. Вычислительная математика. – М.: Просвещение,1980.

         4. Заварыкин В.М., Житомирский В.Г., Лапчик М.П. Численные методы. – М.: Просвещение,1990.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение.

Листинг программы.

program simpson ;

{$APPTYPE CONSOLE}

uses

  SysUtils;

Function f (x : real) : real ;

    begin

      f := 1/(1+x);

    end;

var  x , h ,r , s1,s2, s,s2h, a, b:real;

i, n :integer;

begin

  write('vvedite a=');

  readln (a);

  write( 'vvedite b=');

  readln  (b);

  write ('vvedite chislo razbienii n=') ;

  readln (n);

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

  s1:=0;

  s2:=0;

  for i:= 1 to 2*n-1 do

    begin

      x:= a+i*h;

      if i mod 2=0 then

        s2:=s2+f(x)

      else

        s1:=s1+f(x)

    end;

  s:=h/3*(f(a)+f(b)+4*s1+2*s2);

  h:=(b-a)/n;

  s1:=0;

  s2:=0;

  for i:= 1 to n-1 do

    begin

      x:= a+i*h;

      if i mod 2=0 then

        s2:=s2+f(x)

      else

        s1:=s1+f(x)

    end;

  s2h:=h/3*(f(a)+f(b)+4*s1+2*s2);

  r:=abs((s-s2h)/15);

  writeln ('integral=',s :13 :12);

  writeln ('ocenka pogreshnosti=',r:13:12);

  readln;

  end.

 

 


Информация о работе Численное интегрирование. Метод Симпсона