Вы находитесь на странице: 1из 26

1

ЮЖНЫЙ ФИЛИАЛ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ БИОРЕСУРСОВ


И ПРИРОДОПОЛЬЗОВАНИЯ УКРАИНЫ «КРЫМСКИЙ
АГРОТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Экономический факультет

Кафедра экономической кибернетики

Курсовая работа

Численные методы интегрирования функций с одной


переменной. Метод трапеций, Симпсона, Ромберга

Выполнил:

Студент III курса

Группы ЭК-33

Мушмуленко Павел

Проверил:

д. т. н., доцент Степанов А.В.

Симферополь, 2010
2

Реферат

Курсовая работа: 24 стр., 7 рис., 5 источников.

Объект исследований – Численные методы интегрирования функций с


одной переменной.

Цель работы – создание программы на языке программирования С++ для


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

Метод исследования – метод трапеций, Симпсона, Ромберга.

Разработана программа на языке С++, при работе с которой


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

Имеется возможность сравнить результаты вычислений одних и тех же


интегралов, найденных разными методами.

Программа имеет простой интерфейс.

Ключевые слова: ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ, ИНТЕГРАЛ,


МЕТОД ТРАПЕЦИЙ, МЕТОД ПАРАБОЛ (СИМПСОНА), МЕТОД
РОМБЕРГА, ПЕРВООБРАЗНАЯ, ЭЛЕМЕНТАРНАЯ ФУНКЦИЯ.
3

СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………..4

1 ПОСТАНОВКА ЗАДАЧИ…………………………………………………...5

2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ………………………………………………....6

2.1 Определение интеграла и его геометрический смысл…………………..6


2.2 Приближённые методы вычисления интеграла………………………….7
2. 2. 1 Метод трапеций………………………………………………………....8

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

2. 2. 2. 1 Метод Симпсона с использованием параболы…………………....10

2. 2. 2. 2 Метод Симпсона без использования парабол…………………......13

2. 2. 3 Метод Ромберга………………………………………………………..16

3 ПРАКТИЧЕСКАЯ ЧАСТЬ ……………………………………………..….17

ВЫВОДЫ……………………………………………………………………...19

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ………………………......20

Приложение А…………………………………………………………………21

Приложение Б……………………………………………………………….....22
4

ВВЕДЕНИЕ

Численное интегрирование – вычисление значения определённого


интеграла (как правило, приближённое), основанное на том, что величина
интеграла численно равна площади криволинейной трапеции, ограниченной
осью абсцисс, графиком интегрируемой функции и отрезками
прямых x = a и x = b, где a и b — пределы интегрирования. Необходимость
применения численного интегрирования чаще всего может быть вызвана
отсутствием у первообразной функции представления в элементарных
функциях и, следовательно, невозможностью аналитического вычисления
значения определённого интеграла по формуле Ньютона-Лейбница. Также
возможна ситуация, когда вид первообразной настолько сложен, что быстрее
вычислить значение интеграла численным методом.
5

1 ПОСТАНОВКА ЗАДАЧИ

В данной курсовой работе будет разработана программа на языке С++,


которая вычисляет определенные интегралы. Для некоторых
подынтегральных функций f (x )
интеграл можно вычислить аналитически
или найти в справочниках. Однако в общем случае первообразная f (x )
может быть не определена: либо первообразные не выражаются через
элементарные функции, либо сами подынтегральные функции не являются
элементарными. Это приводит к необходимости разработки приближенных
методов вычисления определенных интегралов. Наиболее
общеупотребительными приближенными методами вычисления одномерных
определенных интегралов являются, так называемые, "классические" методы
численного интегрирования: метод Ромберга, метод трапеций и метод
Симпсона. Все эти методы будут подробно выведены с оценкой погрешности
каждого из них. Для более полного восприятия материала в работу помещён
раздел, в котором подробно расписано решение, всеми тремя методами,
определённого интеграла. В материале имеются иллюстрации, с помощью
которых, можно более глубоко вникнуть в суть рассматриваемой темы.

Моей задачей является разработка программы на языке С++, при работе


с которой пользователь имел бы возможность:

а) найти определенный интеграл от выбранной функции;

б) выбрать метод нахождения определенного интеграла от выбранной


функции;

в) ввести с клавиатуры пределы интегрирования и количество интервалов


разбиения (a, b и n);

г) увидеть на экране результат вычислений программы;

С помощью этой программы, можно будет сравнить результаты


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

 иметь простой интерфейс;


 иметь защиту от некорректно введенных данных.
6

2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

2.1 Определение интеграла и его геометрический смысл

Возможны два различных подхода к определению определённого


интеграла.

ОПРЕДЕЛЕНИЕ 1: Приращение F(b)-F(a) любой из преобразованных


функций F(x)+c при изменении аргумента от x=a до x=b называют
a

∫ f ( x)dx
определённым интегралом от a до b функции f и обозначается b , где x
– переменная, a и b – соответственно нижняя и верхняя границы
интегрирования.

Причём функция F является первообразной для функции f на некотором


промежутке D, а числа а и b принадлежат этому промежутку. Это можно
записать следующим образом:

∫ f ( x )dx=F (b)−F(a )
a . (формула Ньютона-Лейбница.)
(1)

ОПРЕДЕЛЕНИЕ 2: Если при любой последовательности разбиений отрезка


[a;b] таких, что δ=maxΔxi→0 (n→∞) и при любом выборе точек
n

ξ ⊂[ x i−1 ; x i ] ∑
интегральная сумма σk= i=1 f(εi) Δxi стремится к одному
и тому же конечному пределу А, то это число А и есть определённый
интеграл, т.е.

σ ∑ f ( ε i ) Δ x i= A
n
lim k =lim
n→∞ δ →0 i =1

(2)

определенный интеграл есть предел интегральной суммы, число членов


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

Геометрический смысл:

Всякая непрерывная на отрезке [a,b] функция f интегрируема на отрезке [a,b],


b

функция f неотрицательна, но определённый интеграл ∫a f (x )dx численно


7

равен S криволинейной трапеции, ограниченной графиком функции f, осью


b


абсцисс и прямыми x=a и x=b, S= a f(x)dx.
y
(рис. 1)

a b x

 i xixi 1
Рис.1 – Геометрический смысл
интеграла
8

2.2 Приближённые методы вычисления интеграла

Если функция f непрерывна на промежутке, то на этом промежутке


существует функция F такая, что F=f′, то есть существует первообразная для
функции f. Функции: степенная, показательная, тригонометрическая,
логарифмическая, обратные тригонометрическим называются основными
элементарными функциями. Элементарной функцией называется функция,
которая может быть задана с помощью формулы, содержащей лишь конечное
число арифметических операций и суперпозиций основных элементарных
операций.

∫ ln|x| ∫ ex
dx
−x
−x

Например, следующие интегралы: ∫e dx ; ;


dx
;
2
∫ sin x dx
существуют, но не выражаются в конечном виде через
элементарные функции, то есть относятся к числу интегралов, «не
берущихся» в элементарных функциях.

Бывает, что на практике сталкиваются с вычислением интегралов от


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

В основе приближённых методов интегрирования лежит


геометрический смысл определённого интеграла, который рассмотрен выше.
Формул приближённого интегрирования существует много. В данной
курсовой работе будет рассмотрено три метода приближённого
интегрирования: метод трапеций, метод Ромберга и метод Симпсона.

2. 2. 1 Метод трапеций
9

Возьмём определённый интеграл ∫f(x)dx, где f(x)- непрерывная


подынтегральная функция, которую мы для наглядности будем предполагать
положительной. При вычислении интеграла с помощью формулы трапеций
подынтегральная функция f заменяется функцией, график которой
представляет собой ломаную линию (на рисунке 2 красным цветом), звенья
которой соединяют концы ординат yi-1 и yi, (i=1,2,…,n).

Заменившая функция
Заменяемая функция

yn
y1
y0

a x1 b

Рис.2 – Графическое изображение метода трапеций

Тогда площадь криволинейной трапеции, ограниченной линиями x=a, x=b,


y=0, y=f(x), а значит (следуя из геометрического смысла), и значение
нужного нам интеграла, приблизительно равна сумме площадей обычных
трапеций с основаниями yi-1 и yi и высотой h=(b-a)/n, так как h это Δx,a Δx=(b-
a)/n при делении отрезка на n равных отрезков при помощи точек x0=a<x1<…
<xn=b. Прямые x=xk разбивают криволинейную трапецию на n полосок.
Принимая каждую из этих полосок за обыкновенную трапецию, получаем,
что площадь криволинейной трапеции приблизительно равна сумме
обыкновенных трапеций.

Площадь крайней трапеции слева равна произведению полусуммы


основания на высоту (см. рис. 2).
y 0+ y1 y 0 + y 1 b−a
∗h= ∗
S= 2 2 n
(3)

Описанная процедура приближенного нахождения определенного интеграла


в математическом виде выглядит следующим образом:
b
y + y1 y1+ y2 y +y y +y y +y y +y
∫ f ( x )dx≈2 0 h+
2
h+. ..+ n−1 n h=h ( 0 1 + 1 2 + .. .+ n−1 n )=
2 2 2 2
a
n
b−a y + yi
¿
n ∑ 2 i−1 ;
i=1
10

b
y + y 1 + y 1 + y 2 +. ..+ y n−1 + y n
∫ f ( x )dx≈h( 2 0 )=
a
y 0 +2 y 1 +2 y 2 +. ..+2 y n−1 + y n y +y 2 y 2 y 2y
¿ h( )=h ( 0 n + 1 + 2 +. ..+ n−1 )=
2 2 2 2 2
y 0+ y n b−a y 0 + y n
¿ h( + y 1 + y 2 + .. .+ y n−1 )= ( + y 1 + y 2 +.. .+ y n−1 );
2 n 2
b
y 0+ y n
∫ f ( x ) dx= b−a
n
(
2
+ y 1 + y 2 +. . .+ y n−1 )
a
(формула трапеций)

(4)

Для определения погрешности интеграла, вычисленного с помощью


( b−a 3 )
Pпр = ∗M 2 ,
формулы трапеций, используется формула: 12 n2 где
M 2= max |f ' ' ( x )| .
x ∈[a , b ]
11

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

Существует два подхода к методу Симпсона. В одном используется


парабола, в другом – нет.

2. 2. 2. 1 Метод Симпсона с использованием параболы

Разделим отрезок [a;b] на чётное число равных частей n=2m. Площадь


криволинейной трапеции, соответствующей первым двум отрезкам [x0,x1],
[x1,x2] и ограниченной заданной кривой y=f(x), заменим площадью
криволинейной трапеции, которая ограничена параболой второй степени,
проходящей через три точки M0[x0,y0], M1[x1,y1], M2[x2,y2] и имеющей ось,
параллельную оси Oy (рис. 3). Такая криволинейная трапеция называется
параболической трапецией.

Уравнение параболы с осью, параллельной оси Oy, имеет вид:

y= Ax 2 +Bx +C (5)

где A, B, C – коэффициенты.

M2

M0 M1

x0=a xn=b

Рис.3 – Графическое изображение первого метода парабол


(с использованием парабол)

Коэффициенты A, B и C однозначно определяются из условия, что


парабола проходит через три заданные точки. Аналогичные параболы
строятся и для других пар отрезков. Сумма параболических трапеций и даст
приближённое значение интеграла. Сначала вычислим площадь одной
параболической трапеции. Для этого докажем лемму.

Лемма – если криволинейная трапеция, которая ограничена параболой


2
y= Ax +Bx +C , осью Ox и двумя ординатами, расстояние между которыми
равно 2h, то её площадь равна:
12

h
S= ( y 0 + 4 y 1 + y 2 )
3 ,
(6)

где y0 и y2- крайние ординаты, а y1- ордината кривой в середине отрезка.

Доказательство:

Расположим вспомогательную систему координат так, как показано на


рис. 4.

M2
M1

M0
y1
y0 y2

-h 0 h

Рис.4 – Использование вспомогательной системы координат для


доказательства леммы

2
Коэффициенты в уравнении параболы y= Ax +Bx +C определяются
из следующих уравнений:
2
Если x0= -h, то y 0 =Ah −Bh+C ;

Если x1=0, то y 1 =C ;
(7)
2
Если x2= -h, то y 2 =Ah + Bh+C .
13

Считая коэффициенты A, B, C известными, определим площадь


параболической трапеции с помощью определённого интеграла:
b
S=∫ f ( x )dx ; f ( x )= Ax 2 +Bx +C ;
a
a=−h ;
b=h
h
S=∫ ( Ax 2 +Bx +C )dx
−h

Ax 3 Bx 2 Ah3 Bh2 A (−h)3 B (−h)2


S=( + +Cx )|h−h = + +Ch−( + +C(−h ))
3 2 3 2 3 2
Ah 3 Bh 2 Ah 3 Bh2
¿ + +Ch−(− + −Ch)=
3 2 3 2
Ah 3 Ah3 2 Ah 3 h
¿ +Ch+ +Ch= + 2ch= (2 Ah2 +6 c )
3 3 3 3

Из равенства (7) следует, что:

y 0 + 4 y 1 + y 2= Ah2 −Bh+C+ 4 C+ Ah 2 + Bh+C=2 Ah 2 +6 C .

h
S= ( y 0 +4 y 1 + y 2 )
Следовательно: 3

Пользуясь формулой (6), можно написать приближённые равенства,


b−a
h=Δx=
учитывая, что 2m :
x2
Δx
∫ f ( x )dx≈ ( y 0 +4 y q + y2 );
a=x0 3

x4

∫ f ( x ) dx≈ Δx
3
( y2 + 4 y3 + y4 ) ;
x2

x 2 m=b
Δx
∫ f ( x )dx≈ (y
3 2 m−2
+4 y 2 m−1 + y 2 m );
2 m−2
14

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


его приближённое значение:
b
∫ f ( x )dx≈(( y 0+4 y 1+ y 2 )+( y 2 +4 y3 + y 4 )+. ..+( y 2m−2+ 4 y 2 m−1+ y 2m ))=
a
Δx
¿ ( y 0 + 4 y 1 + y 2 + y 2 + 4 y 3 + y 4 +. ..+ y 2m−2 + y 2 m−1 + y 2m ))=
3
Δx
¿ ( y 0 + 4 y 1 +2 y 2 + 4 y 3 +. . .+ y 2m−2 + y 2 m−1 + y 2 m )
3
или

b
∫ f ( x )dx≈3Δx ( y 0+ y 2 m+2( y 2+ y 4 +. ..+ y 2 m−2)+4( y 1+ y 3+. ..+ y 2 m−1));
a
b
b−a
∫ f ( x )dx=6 m ( y 0 + y 2 m+2( y 2 + y 4 +.. .+ y 2 m−2 )+4 ( y 1 + y 3 +.. .+ y 2 m−1 ));
a (8)

Это и есть формула Симпсона. Здесь число точек деления произвольно, но


умма в правой части равенства (7) даёт
чем это число больше, тем точнее с
значение интеграла. Формула Симпсона даёт самое точное значение
интеграла (из классических формул приближённого интегрирования),
( b−a )5
Pпр = ∗M 4
погрешность для этого метода находится по формуле: 180 n 4

M 4 = max |f (4 )( x )|.
где x ∈ [a , b ]

2. 2. 2. 2 Метод Симпсона без использования парабол

В тех случаях, когда линия y=f(x) между x=a и x=b мало изогнута,
b

∫ f ( x)dx
интеграл a приближенно выражается достаточно простой формулой.

Будем считать f(x) положительной и искать площадь криволинейной


трапеции aABb (см.рис.5).

B
Q
C
P
A

a p c q b
15

Рис.5 – Графическое изображение второго метода парабол


(без использования парабол)
a+b
c=
Для этого разделим отрезок [a;b] точкой 2
пополам и в точке c(c,
f(c))проведём касательную к линии y=f(x). После этого разделим [a,b]
точками p и g на 3 равные части и проведём через них прямые x=p и x=q. P и
Q – точки пересечения прямых с касательной. Соединив AP и BQ, получим 3
прямолинейные трапеции aAPp, pPQq, qQBb. Сумма площадей этих
трапеций будет примерно равна площади криволинейной трапеции aABb.

Обозначим: Aa, Pp, qQ, bB – основания трапеций;

b−a
n - высота трапеций, в данном случае число n строго задано n=3
b−a
⇒h=
3

Получаем:

b b
aA+pP b−a pP+qQ b−a qQ+bB b−a b−a
f(x)dx≈¿
∫ 2 3 2 3 2 3 ∫ σ (aA+pP+pP+qQ+qQ+bB)=
∗ + ∗ + ∗ ;¿ f(x)dx≈
a a
b−a
¿ (aA+bB+2(pP+qQ))
σ (9)
16

Обозначим, что: aA=f(a)=ya, bB=f(b)=yb. Отрезки pP и qQ не являются


ординатами точек линии y=f(x), так как P и Q лежат на касательной. Нам
необходима сумма этих отрезков, которая выражается через среднюю линию
pP+qQ
сС=f (с )= y c=
трапеции и равна полусумме её оснований, откуда 2 .
Значит 2( pP+qQ)=2 yc . Формула (9) принимает вид:
b

∫ f ( x ) dx≈ b−a
σ
( ya+ 4 yc + yb ) .
a
(10)

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

Малая формула Симпсона пригодна, когда график подынтегральной функции


мало изогнут(см. рис. 6). В данном случае применять малую формулу уже
нельзя, так как она даёт значение 0 на [a,b].
Y=f(x)

a c b x

Рис.6 – Наглядный пример невозможности применения малой формулы


Симпсона
17

Но если отрезок [a,b] разбить на части [a,c] и [c,b] и к каждому из них


применить формулу (10), то получится приемлемый результат.

Эта идея лежит в основе вывода «большой» формулы Симпсона.


b

∫ f ( x)dx
Для вычисления интеграла выберем какое-либо чётное число
a

и разложим [a,b] на n равных частей точками x 0=a< x 1 < x 2 <. ..< x n−1 < x n =b .
b x2 b

∫ f ( x )dx=∫ f (x )dx +.. .+∫ f ( x )dx


Интеграл представим в виде суммы a x0 a
. К
каждому слагаемому справа применим малую формулу Симпсона. Учитывая,
b−a
2
что в каждом интеграле длина промежутка интегрирования n , и

положить f (x k )= y k , то получим:
b

∫ f ( x )dx≈ b−a
3n
( y 0 +4 y 1 + y 2 )+
b−a
3n
( y 2 +4 y3 + y 4 )+. ..+
b−a
3n
( y n−2 +4 y n−1 + y n );
a

∫ f ( x )dx= b−a
3n
(( y 0 + y n )+4( y 1 + y 3 +. ..+ y n−1 )+2( y 2 + y 4 +.. .+ y n−2 ));
a
(11)

Это и есть «большая формула Симпсона».

Её точность, также как и у всех формул, рассмотренных выше: тем


выше, чем больше n.

Для оценки погрешности формулы Симпсона используется формула:


(b−a )5
Pпр= ∗M 4
180 n 4

Качество формулы Симпсона лучше, чем формулы трапеции, так как


при одном и том же n она даёт большую точность.
18

2. 2. 3 Метод Ромберга

Метод Ромберга заключается в последовательном уточнении значения


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

Обозначим интеграл с числом разбиений n =1 как:


h
R(1;1)= (f ( a)−F (b));
2
(12)

Уменьшив шаг в два раза, получим:


h
R(2 ;1 )= (f ( a)+F (b))+hf (a+h);
2
(13)

Если последовательно уменьшать шаг в 2n раз, получим рекуррентное


соотношение для расчета: 
2n−1
1
R(n+1 ; 1)= R( n;1 )+ h ∑ f ( a+(2 i−1)h);
2 i=1

(14)

Пусть было вычислено четыре раза интеграл с n от 1 до 4. Представим


следующий треугольник:

R(1;1)
R(2;1) R(2;2)
R(3;1) R(3;2) R(3;3)
R(4;1) R(4;2) R(4;3) R(4;4)

В первом столбце стоят значения интеграла, полученные при


последовательном удвоении числа интервалов. Следующие столбцы –
результаты уточнения значения интеграла по следующей рекуррентной
формуле:
19

R(n+1 ; m)−R (n ; m)
R(n−1; m−1 )=R(n+ 1; m )+ ;
4m −1
(15)

Правое нижнее значение в треугольнике – искомое уточненное значение


интеграла (R(4;4)).

3 ПРАКТИЧЕСКАЯ ЧАСТЬ

Общий вид интеграла, на примере которого будут сравнены методы


интегрирования функций с одной переменной в этом разделе:
b

∫ x √c + kx m dx ;
a

Заданные значения:

a=0; c=0, 3; m=2; b=3; k=7.

Подставим заданные значения:


3

∫ x √0,3+7 x 2 dx ;
0
Сначала, решим искомый интеграл напрямую, основываясь на полученные
ранее знания.

Применим метод замены:


3
2
∫ √ 0,3+7 x 2
dx=¿ [ t=0.3+7 x ¿ ] [dt=14 xdx ¿] ¿ ¿¿ ¿
0 ¿
¿
Разделим отрезок [0;3] на n=10 равных частей и найдём шаг деления:
b−a 3−0
= =0,3
n 10

Расчетные данные для нахождения интеграла представлены в таблице 1:


20

Таблица 1 Расчетные данные для нахождения заданного интеграла

ФОРМУЛА ТРАПЕЦИЙ
3
∫ x √0,3+7 x 2 dx≈ 3−0
10 2
(
0+23 , 868
+0 ,289+1 , 007+2 , 199+3 , 866+6 , 009+8 , 628+11, 724+15 ,296+
0
+19 , 344 )=0,3∗80 , 298=24 , 089
Определим погрешность метода трапеции:
3
( b−a ) 3
Pпр= 2
∗M 2 = ∗39 , 375=0 , 001∗39 ,375=0 , 05
12 n 2400

М2 – максимальное значение второй производной на данном промежутке.

ФОРМУЛА СИМПСОНА
3
∫ x √0,3+7 x 2 dx≈ 3−0
30
((0+ 23 ,868+ 2( 1, 007+3 , 866+ 8 ,628+ 15 ,296 )+4 ( 0 , 289+
0
+2 , 199+6 , 009+11 , 724+19 , 344 ))=0,1∗210 , 931=21 , 093

Определить погрешность метода Симпсона:


5
( b−a ) 243
Pпр= 4
∗M 4 = ∗0 ,37=0 , 000135∗0 ,37=0 , 00005
180 n 1800000

М4 – максимальное значение четвёртой производной на данном промежутке.


21

ВЫВОДЫ

В завершении работы, хочется отметить ряд особенностей применения


рассмотренных выше методов. Каждый способ приближённого решения
определённого интеграла имеет свои преимущества и недостатки, в
зависимости от поставленной задачи следует использовать конкретные
методы. Если необходимо получить наиболее точный результат, идеально
подходит метод Симпсона.

Итогом данной курсовой работы является программа, написанная на


языке С++. С её помощью вычисляются определенные интегралы на отрезке
[a, b], заданном пользователем и разбитом на n равных частей.
22

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Вержбицкий В. М. Численные методы: Учебник/ В. М. Вержбицкий. – М.:


Высш. шк., 2001.
2. Березин И. С., Жидков Н. П. Методы вычислений: Учебник/ И. С. Березин,
Н. П. Жидков. – М.: Наука, 1966.
3. Батищев Д. И. Оптимизация в САПР. Учебник/ Д. И. Батищев, Я. Е.
Львович, В. Н. Фролов. – Воронеж: Изд-во ВГУ, 1997.
4. Калиткин Н. Н. Численные методы: Учебник/ Н. Н. Калиткин. – М.:
Наука, 1978.
5. Корнеенко В. П. Методы оптимизации: Учебник/ В. П. Корнеенко. – М.:
Высш. шк., 2007.
23

Приложение А

Блок-схема программы

Ниже представлена глобальная блок-схема программы для решения


b

∫ x √c + kx dx ;
интеграла вида: a , при c=1; k=4 (см. рис. 7).
НАЧАЛО

ОПЦИИ

ВЫБОР

ПОДЫНТЕГРАЛЬНОЙ

ФУНКЦИИ

x √ 1+4 x

ВЫБОР

МЕТОДА

ИСЧИСЛЕНИЯ

МЕТОД РОМБЕРГА МЕТОД ТРАПЕЦИЙ МЕТОД ПАРАБОЛ (СИМПСОНА)

ВВОД a, bиn
24

ВЫВОД РЕЗУЛЬТАТА

КОНЕЦ

Рис.7 – Глобальная блок-схема

Приложение Б

Вычисление определенного интеграла методом трапеций

#include<stdafx.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
/*----podintegralna functsia---*/
double INTEGR(double x)
{
        return x*sqrt(1+4*x) ;
}
 
/*----integrirovanie metodom trapezii---*/
double trapez(double left, double right, double h)
{
        double sum = 0;
        double runner;
 
        /* formula trapezii*/
        for(runner = left + h; runner < right; runner += h)
                sum += INTEGR(runner);
        sum = (sum + 0.5*(INTEGR(left) + INTEGR(right))) * h;
 
        return sum;
}
 
int main(int argc, char ** argv)
{
        char c;
        double a, b;
        double h;
 
        printf("vvedite nizniyu granitsu integr  : ");
25

        scanf("%lf",&a);
        printf("vvedite verhniyu granitsu integr : ");
        scanf("%lf",&b);
        printf("Enter integration step : ");
        scanf("%lf",&h);
 
        double trap = trapez(a, b, h);
 
        printf("otvet po metodu trapezii  %10.10f.\n", trap);
        scanf("%c",&c);scanf("%c",&c);
        return 0;
}
Вычисление определенного интеграла методом парабол (Симпсона)

#include <iostream> 
#include <math.h> 
double FuncY(double x)
{
return (pow(x,4)*pow(M_E,-pow(x,2)));
}

double Simpson(double (*Fx)(double), int m)


{
double I, h, x, a, b;
int n;

a = 0;
b = 1;

h=(b-a)/(m-1);
x = a;

I = Fx(a) + Fx(b);

n = 0;
while (n < m-2)
{
x = x+h;
if (n%2==0) I=I+4*Fx(x);
else I = I+2*Fx(x);
n++;
26

return I*h/3;
}

int main() 
{
double Y;

int m;

printf("Accuracy of calculation = ");


scanf("%d", &m);

printf("\n");
Y = Simpson(FuncY, m);
double printf("Y=", Y); 
fflush(stdin);
getchar();
return 0;

Вам также может понравиться