Автор работы: Пользователь скрыл имя, 09 Февраля 2014 в 20:19, курсовая работа
Численное интегрирование (историческое название: квадратура) - вычисление значения определённого интеграла (как правило, приближённое), основанное на том, что величина интеграла численно равна площади криволинейной трапеции, ограниченной осью абсцисс, графиком интегрируемой функции и отрезками прямых, которые являются пределами интегрирования .
1.Введение. Необходимость метода численного интегрирования ………...3
2. Метод парабол (метод Симпсона)…………………….…………………....4
3.Алгоритм программы. Краткое описание программы………………….....7
4.Вычислительные эксперименты……………………………………….…....9
5.Заключение…………………………………………………………….……12
6.Используемая литература……………………………………………..……13
Тамбовское образовательное учреждение
Высшего профессионального образования
«Тамбовский Государственный Университет»
им. Г.Р.Державина
Институт математики, физики и информатики
Курсовая работа по информатике
Тема: Численное интегрирование. Метод Симпсона.
Выполнила
Заочное отделение
Научный руководитель:
Арзамасцев А. А.
Тамбов-2012
Содержание.
1.Введение. Необходимость метода численного интегрирования ………...3
2. Метод парабол (метод Симпсона)…………………….…………………....4
3.Алгоритм программы. Краткое описание программы………………….....7
4.Вычислительные эксперименты…
5.Заключение………………………………………………
6.Используемая литература……………………………………………..…
7.Приложение. Листинг программы…………………………………
Введение. Необходимость метода численного интегрирования.
Численное интегрирование (историческое название: квадратура) - вычисление значения определённого интеграла (как правило, приближённое), основанное на том, что величина интеграла численно равна площади криволинейной трапеции, ограниченной осью абсцисс, графиком интегрируемой функции и отрезками прямых, которые являются пределами интегрирования .
Необходимость применения численного интегрирования чаще всего может быть вызвана отсутствием у первообразной функции представления в элементарных функциях и, следовательно, невозможностью аналитического вычисления значения определённого интеграла по формуле Ньютона-Лейбница. Также возможна ситуация , когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом. И конечно в таком случае ,когда аналитическое выражение подынтегральной функции неизвестно, а ее значения задаются таблицей или графиком. Сущность большинства методов вычисления определенных интегралов состоит в замене подынтегральной функции аппроксимирующей функцией, для которой можно легко записать первообразную в элементарных функциях.
Аппроксимация, или приближение - математический метод, состоящий в замене одних математических объектов другими, в том или ином смысле близкими к исходным, но более простыми. Также в задачах такого рода активно используются интерполяционные методы нахождения значений функции. Интерполяция - в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. На практике чаще всего применяют интерполяцию полиномами. Это связано прежде всего с тем, что полиномы легко вычислять, легко аналитически находить их производные и множество полиномов плотно в пространстве непрерывных функций.
Метод парабол (метод Симпсона).
Рассмотрим метод Симпсона - один из наиболее широко известных и применяемых методов численного интегрирования, он дает точные значения интеграла при интегрировании многочленов до третьего порядка включительно.
Геометрический смысл метода состоит в следующем: на отрезке [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 метода Симпсона можно оценить по следующей формуле:
где
Второй способ оценки погрешности вычислений называется методом двойного пересчёта:
Алгоритм программы
нет да
да
да
нет
нет
да
Краткое описание программы.
Программа предназначена для вычисления значения определённого интеграла на отрезке[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.
Информация о работе Численное интегрирование. Метод Симпсона