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

3. ПРИБЛИЖЕНИЕ ФУНКЦИЙ.

ЧИСЛЕННЫЕ ДИФФЕРЕНЦИРОВАНИЕ И
ИНТЕГРИРОВАНИЕ
В настоящем разделе рассмотрены задачи приближения функций с помощью
многочленов Лагранжа и Ньютона, с использованием сплайн интерполяции и метода
наименьших квадратов. Приводятся формулы численного дифференцирования,
полученные на основе приближения функций и их производных многочленами. Описаны
методы численного интегрирования, такие как: метод прямоугольников, метод трапеций,
метод парабол (Симпсона), метод Рунге-Ромберга для оценки точности и уточнения
результатов интегрирования. На каждый из описанных методов в разделах приводится
подробно разобранные примеры решения характерных задач, и содержатся по тридцать
задач для самостоятельного решения с ответами.

3.1. ИНТЕРПОЛЯЦИЯ
Пусть на отрезке [ a, b] задано множество несовпадающих точек xi

(интерполяционных узлов), в которых известны значения функции f i = f ( xi ), i = 0, ... ,n .

Приближающая функция ϕ ( x, a ) такая, что выполняются равенства


ϕ ( xi , a0 ,..., an ) = f ( xi ) = f i , i = 0, ... ,n . (3.1)

называется интерполяционной.
Наиболее часто в качестве приближающей функции используют многочлены
степени п.:
n
Pn ( x ) = ∑ ai x i (3.2)
i =0

Подставляя в (3.2) значения узлов интерполяции и используя условие Pn ( x i ) = f i ,

получаем систему линейных алгебраических уравнений относительно коэффициентов ai :


n

∑a x
i =0
i
i
= f k , k = 0, ... , n , (3.3)

которая, в случае несовпадения узлов интерполяции имеет единственное решение.


Для нахождения интерполяционного многочлена не обязательно решать систему
(3.3). Произвольный многочлен может быть записан в виде:
n
Ln ( x) = ∑ f i li ( x) . (3.4)
i =0
Здесь li (x) – многочлены степени n , так называемые лагранжевы многочлены

⎧1, при i = j ,
влияния, которые удовлетворяют условию li ( x j ) = ⎨ и, соответственно,
⎩0, при i ≠ j.
n
( x − xi )
li ( x ) = ∏ ( xi − x j )
, а интерполяционный многочлен (3.4) запишется в виде
j = 0 , j ≠i

n n
( x − xi )
Ln ( x) = ∑ f i ∏ . (3.5)
i =0 j =0 , j ≠ i ( xi − x j )

Интерполяционный многочлен, записанный в форме (3.5), называется ин-


терполяционным многочленом Лагранжа.
n
Если ввести функцию ω n +1 ( x ) = ( x − x 0 )( x − x1 )...( x − x n ) = ∏ ( x − xi ) , то выражение
i =0

для интерполяционного многочлена Лагранжа примет вид:


n
ω n+1 ( x)
Ln ( x) = ∑ f i . (3.6)
i =0 ( x − xi ) ω n′ +1( xi )
Недостатком интерполяционного многочлена Лагранжа является необходимость
полного пересчета всех коэффициентов в случае добавления дополнительных
интерполяционных узлов. Чтобы избежать указанного недостатка используют
интерполяционный многочлен в форме Ньютона.
Введем понятие разделенной разности. Разделенные разности нулевого порядка
совпадают со значениями функции в узлах. Разделенные разности первого порядка
обозначаются f ( xi , x j ) и определяются через разделенные разности нулевого порядка:

fi − f j
f ( xi , x j ) = ,
xi − x j

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


порядка:
f ( xi , x j ) − f ( x j , x k )
f ( xi , x j , x k ) = .
xi − x k
Разделенная разность порядка n − k + 2 определяется соотношениями
f ( xi , x j , xk ,..., xn −1 ) − f ( x j , xk ,..., xn )
f ( xi , x j , xk ,..., xn −1 , xn ) = . (3.7)
xi − xn
Таким образом, для (n + 1) -й точки могут быть построены разделенные разности до n-го
порядка; разделенные разности более высоких порядков равны нулю.
Пусть известны значения аппроксимируемой функции f (x) в точках x0 , x1 ,..., xn .

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


значениями функции f (x) может быть записан в виде:
Pn ( x) = f ( x0 ) + ( x − x0 ) f ( x1 , x0 ) + ( x − x0 )( x − x1 ) f ( x0 , x1 , x2 ) + ... +
(3.8)
+ ( x − x0 )( x − x1 )...( x − xn ) f ( x0 , x1 ,..., xn ) .
Запись многочлена в формуле (3.8) есть так называемый интерполяционный
многочлен Ньютона. Если функция f (x) не есть многочлен n-й степени, то формула (3.8)
для Pn (x) приближает функцию f (x) с некоторой погрешностью. Отметим, что при

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


Если функция задана в точках x0 , x1 ,..., xn , то при построении интерполяционного

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


разностей, пример которой для n = 4 приведен в табл. 3.1.
Таблица 3.1

x0 f (x0 )
x1 f (x1) f (x0 , x1 )
f (x0 , x1, x2 )
f (x1, x2 ) f (x0, x1, x2, x3)
x2 f (x2 ) f (x1, x2 , x3 ) f (x0, x1, x2, x3, x4)
f (x2 , x3 ) f (x1, x2, x3, x4 )
x3 f (x3 ) f (x2 , x3 , x4 )
f (x3 , x4 )
x4 f (x4 )
Для повышения точности интерполяции в сумму (3.8) могут быть добавлены новые
члены, что требует подключения дополнительных интерполяционных узлов. При этом
безразлично, в каком порядке подключаются новые узлы. Этим формула Ньютона
выгодно отличается от формулы Лагранжа.
Погрешность интерполяционных многочленов Лагранжа и Ньютона для случая
аналитически заданной функции f (x) априорно может быть оценена по формуле, вывод
которой приводится, например в [1].
M n+1
ε n ( x) = f ( x) − Pn ( x) ≤ ω n+1 ( x) , (3.9)
(n + 1) !

где M n +1 = max f ( n +1) (ξ ) , ξ ∈ [ x0 , xn ] .

Если величину производных аппроксимируемой функции оценить сложно


(например, для таблично заданной функции), то используется апостериорная оценка по
первому отброшенному члену интерполяционного многочлена Ньютона, в который
входят разделенные разности, являющиеся аналогами производных соответствующих
порядков.
Использование одной интерполяционной формулы на большом числе узлов
нецелесообразно. Интерполяционный многочлен может проявить свои колебательные
свойства, его значения между узлами могут сильно отличаться от значений
интерполируемой функции. Одна из возможностей преодоления этого недостатка
заключается в применении сплайн-интерполяции. Суть сплайн-интерполяции
заключается в определении интерполирующей функции по формулам одного типа для
различных непересекающихся промежутков и в стыковке значений функции и её
производных на их границах.
Наиболее широко применяемым является случай, когда между любыми двумя
точками разбиения исходного отрезка строится многочлен n-й степени:
n
S ( x ) = ∑ aik x k , xi −1 ≤ x ≤ xi , i = 1,..., n , (3.10)
k =0

который в узлах интерполяции принимает значения аппрокимируемой функции и


непрерывен вместе со своими ( n − 1) производными. Такой кусочно-непрерывный
интерполяционный многочлен называется сплайном. Его коэффициенты находятся из
условий равенства в узлах сетки значений сплайна и приближаемой функции, а также
равенства n − 1 производных соответствующих многочленов. На практике наиболее часто
используется интерполяционный многочлен третьей степени, который удобно
представить как
S ( x) = ai + bi ( x − xi −1 ) + ci ( x − xi −1 ) 2 + d i ( x − xi −1 ) 3 ,
(3.11)
xi −1 ≤ x ≤ xi , i = 1,2,..., n .
Для построения кубического сплайна необходимо построить n многочленов
третьей степени, т.е. определить 4n неизвестных ai , bi , ci , d i . Эти коэффициенты ищутся из

условий в узлах сетки.


S ( xi −1 ) = ai = ai −1 + bi −1 ( xi −1 − xi − 2 ) + ci −1 ( xi −1 − xi − 2 ) 2 + d i −1 ( xi −1 − xi − 2 ) 3 = f i −1
S ′( xi −1 ) = bi = bi −1 + 2ci −1 ( xi −1 − xi − 2 ) + 3 d i −1 ( xi −1 − xi − 2 ) 2 ,
S ′′( xi −1 ) = 2ci = 2ci −1 + 6 d i −1 ( xi −1 − xi − 2 ), i = 2,3,..., n
S ( x0 ) = a1 = f 0 , (3.12)
S ′′( x0 ) = c1 = 0
S ( x n ) = a n + bn ( x n − x n −1 ) + c n ( x n − x n −1 ) 2 + d n ( x n − x n −1 ) 3 = f n
S ′′( x n ) = c n + 3 d n ( x n − x n −1 ) = 0
В (3.12) предполагается, что сплайны имеют нулевую кривизну на концах отрезка.
В общем случае могут быть использованы и другие условия.
Если ввести обозначение hi = xi − xi −1 , и исключить из системы (3.12) ai , bi , d i , то

можно получить систему из n − 1 линейных алгебраических уравнений относительно


ci , i = 2,..., n с трехдиагональной матрицей:

2(h1 + h2 )c 2 + h2 c3 = 3[( f 2 − f1 ) / h2 − ( f 1 − f 0 ) / h1 ]
hi −1ci −1+ 2 (hi −1+ hi ) ci + hi ci +1 = 3 [( f i − f i −1 ) / hi − ( f i −1 − f i − 2 ) / hi −1 ] , i = 3,..., n − 1 (3.13)
hn −1c n −1+ 2 (h n −1 + hn )c n = 3[( f n − f n −1 ) / hn − ( f n −1 − f n − 2 ) / hn −1 ]
Остальные коэффициенты сплайнов могут быть восстановлены по формулам:
1 c −c
ai = f i −1 , i = 1,..n; bi = ( f i − f i −1 ) / hi − hi (ci +1 + 2ci ), d i = i +1 i , i = 1,..., n − 1
3 3hi
(3.14)
2 c
c1 = 0, bn = ( f n − f n −1 ) / hn − hn c n , d n = − n
3 3hn

Пример 3.1
Используя таблицу значений функции y = f (x ) - Yi , вычисленную в точках

X i , i = 0,...,3 построить многочлен Лагранжа, проходящий через точки {X i , Yi } .

Вычислить значение погрешности интерполяции в точке X * .


y = ln( x ) , X i = 0.1, 0.5, 0.9, 1.3 ; X * = 0.8

Функция y = ln( x ) задана в четырех точках, следовательно, искомым является


многочлен Лагранжа третьей степени
3
ω 4 ( x)
L3 ( x) = ∑ f i , ω 4 ( x) = ( x − x0 )( x − x1 )( x − x 2 )( x − x3 ) ,
i =0 ( x − xi )ω 4' ( xi )

ω 4' ( x0 ) = ( x0 − x1 )( x0 − x 2 )( x0 − x3 ), ω 4' ( x1 ) = ( x1 − x0 )( x1 − x 2 )( x1 − x3 ),
ω 4' ( x 2 ) = ( x2 − x0 )( x2 − x1 )( x2 − x3 ), ω 4' ( x3 ) = ( x3 − x0 )( x3 − x1 )( x3 − x 2 )

Заполним таблицу:
i xi fi w4' ( xi ) f i / w4' ( xi ) X * − xi

0 0.1 -2.30259 -0.384 5.99632 0.7


1 0.5 -0.69315 0.128 -5.41521 0.3
2 0.9 -0.10536 -0.128 0.82313 -0.1
3 1.3 0.26236 0.384 0.68324 -0.5

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


L3 ( x) = 5.99632( x − 0.5)( x − 0.9)( x − 1.3) − 5.41521( x − 0.1)( x − 0.9)( x − 1.3) +
0.82313( x − 0.1)( x − 0.5)( x − 1.3) + 0.68324( x − 0.1)( x − 0.5)( x − 0.9)
Вычислим значение интерполяционного многочлена и точное значение функции в
точке X * = 0.8 :
L3 (0.8) = −0.20036, y (0.8) = ln(0.8) = −0.22314

Абсолютная погрешность интерполяции составляет: Δ( L3 (0.8)) = 0.02278 .

Пример 3.2
Используя таблицу значений функции y = f ( x ) - Yi , вычисленную в точках

X i , i = 0,...,3 построить многочлен Ньютона, проходящий через точки {X i , Yi } .

Вычислить значение погрешности интерполяции в точке X * .


π
y = sin( x) , X i = 0, 1.0, 2.0, 3.0 ; X * = 1.5
6
π
Функция y = sin( x) задана в четырех точках, следовательно, искомым является
6
многочлен Ньютона третьей степени
P3 ( x) = f ( x 0 ) + ( x − x0 ) f ( x1 , x 0 ) + ( x − x0 )( x − x1 ) f ( x0 , x1 , x 2 ) + ( x − x0 )( x − x1 )( x − x 2 ) f ( x 0 , x1 , x 2 , x3 ) .

Заполним таблицу конечных разностей


i xi fi f ( xi , xi +1 ) f ( xi , xi +1 , xi + 2 ) f ( x0 , x1 , x 2 , x3 )

0 0.0 0.0
0.5
1 1.0 0.5 -0.06699 -0.01635
0.36603
2 2.0 0.86603 -0.11603
0.13398
3 3.0 1.0
Искомый многочлен Ньютона записывается в виде:
P3 ( x) = 0.5 x − 0.06699 x( x − 1.0) − 0.01635x( x − 1.0)( x − 2.0)

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


точке X * = 1.5 :
π
P3 (1.5) = 0.70589, y (1.5) = sin( ) = 0.70711
4
Абсолютная погрешность интерполяции составляет: Δ( P3 (1.5)) = 0.00122 .

Пример 3.3
Построить кубический сплайн для функции, заданной в узлах интерполяции,
предполагая, что сплайн имеет нулевую кривизну при x = x 0 и x = x 4 .

i 0 1 2 3 4
xi 0.0 1.0 2.0 3.0 4.0

fi 0.0 1.8415 2.9093 3.1411 3.2432

Вычислить значение функции f (1.5).


Запишем систему уравнений (3.13):

⎧4c2 + c3 = −2.3209

⎨c2 − 4c3 + c4 = −2.5080
⎪c − 4c = −0.38924
⎩ 3 4

Решив данную систему, найдем c 2 , c3 , c 4 и, воспользовавшись формулами (3.14),

заполним таблицу.
i [xi −1 , xi ] ai bi ci di

1 [0,1] 0.0 1.9913 0.0 -0.14983


2 [1,2] 1.8415 1.5418 -0.44949 -0.02450
3 [2,3] 2.9093 0.56934 -0.52299 0.18548
4 [3,4] 3.1411 0.07978 0.03344 -0.01115
f ( x) = a i + bi ( x − xi −1 ) + ci ( x − xi −1 ) 2 + d i ( x − xi −1 ) 3 , xi −1 ≤ x ≤ xi , i = 1,2,3,4 .

Вычислим значение функции f (1.5), точка x = 1.5 принадлежит отрезку [1,2], на


этом отрезке таблично заданная функция представляется кубическим сплайном:
f ( x) = 1.8415 + 1.5418( x − 1) − 0.44949( x − 1) 2 − 0.0245( x − 1) 3 , 1 ≤ x ≤ 2, i = 2
f (1.5) = 2.4969 .

3.2. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ

Пусть задана таблично в узлах x j функция y j = f ( x j ) , j = 0,1, ..., N . При этом

значения функции y j определены с некоторой погрешностью, также из физических

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


табличные точки, например: многочлен степени n , у которого неизвестны коэффициенты
n
a i , Fn ( x ) = ∑ ai x i . Неизвестные коэффициенты будем находить из условия минимума
i =0
квадратичного отклонения многочлена от таблично заданной функции.

[ ]
N 2
Φ = ∑ Fn ( x j ) − y j . (3.15)
j =0

Минимума Φ можно добиться только за счет изменения коэффициентов


многочлена Fn ( x ) . Необходимые условия экстремума имеют вид

∂Φ N
⎡ n ⎤
= 2∑ ⎢ ∑ ai x ij − y j ⎥ x kj = 0 , k = 0 ,1, ..., n . (3.16)
∂ ak j =0 ⎣ i =0 ⎦

Эту систему для удобства преобразуют к следующему виду:


n N N

∑a ∑ x
i =0
i
j =0
k +i
j = ∑ y j x kj , k = 0, 1 ,..., n .
j =0
(3.17)

Система (3.17) называется нормальной системой метода наименьших квадратов


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

функцию f ( x ) и минимизирующий квадратичное отклонение.


Необходимо отметить, что система (3.17) с увеличением степени n приближающего
многочлена становится плохо обусловленной и решение её связано с большой потерей
точности. Поэтому при использовании метода наименьших квадратов, как правило,
используют приближающий многочлен не выше третьей степени.
Пример 1.
Для таблично заданной функции
i 0 1 2 3 4 5
xi 0.0 1.7 3.4 5.1 6.8 8.5
yi 0.0 1.3038 1.8439 2.2583 2.6077 2.9155
путем решения нормальной системы МНК найти приближающие многочлены 1-ой
и 2-ой степени. Для каждого из приближающих многочленов вычислить сумму квадратов
ошибок. Построить графики приближаемой функции и приближающих многочленов.
Найдем приближающий многочлен первой степени F1 ( x ) = a0 + a1 x . Для

нахождения неизвестных коэффициентов a0 , a1 запишем нормальную систему МНК

(3.17):
N N
a 0 ( N + 1) + a1 ∑ x j = ∑ y j
j =0 j =0
N N N
(a)
a 0 ∑ x j + a1 ∑ x = ∑ y j x j
2
j
j =0 j =0 j =0
В данном примере N = 5 , xi , y i , i = 0,...,5 приведены в таблице. Подставим

числовые значения в (a), получим:


6a 0 + 25.5a1 = 10.9292
(b)
25.5a0 + 158.95a1 = 62.517

Решив (b) получим a0 = 0.4713, a1 = 0.3177 . Таким образом найден

приближающий многочлен 1-ой степени F1 ( x ) = 0.4713 + 0.3177 x .


i 0 1 2 3 4 5
xi 0.0 1.7 3.4 5.1 6.8 8.5

F1 ( xi ) 0.4713 1.0114 1.5515 2.0916 2.6317 3.1718

Сумма квадратов ошибок Φ = ∑ [F1 ( x j ) − y j ] = 0.4872 .


5 2

j =0

Найдем приближающий многочлен второй степени F1 ( x ) = a 0 + a1 x + a 2 x 2 . Для

нахождения неизвестных коэффициентов a 0 , a1 , a 2 запишем нормальную систему МНК

(3.17):
N N N
a 0 ( N + 1) + a 1 ∑ x j + a 2 ∑ x 2
j =∑ y j
j=0 j=0 j=0
N N N N
a 0 ∑ x j + a 1 ∑ x 2j + a 2 ∑ x 3j = ∑ y j x j (c)
j=0 j=0 j=0 j=0
N N N N
a 0 ∑ x 2j + a 1 ∑ x 3j + a 2 ∑ x 4j = ∑ y j x 2j
j=0 j=0 j=0 j=0

Подставим числовые значения в (c), получим:


6a 0 + 25.5a1 + 158.95a 2 = 10.9292
25.5a0 + 158.95a1 + 1105.43a 2 = 62.517 (d)
158.95a0 + 1105.43a1 + 8176.71a 2 = 415.045

Решив (d) получим a0 = 0.1295, a1 = 0.6193, a 2 = −0.0355 . Таким образом

найден приближающий многочлен 1-ой степени F2 ( x ) = 0.1295 + 0.6193 x − 0.0355 x 2 .


i 0 1 2 3 4 5
xi 0.0 1.7 3.4 5.1 6.8 8.5

F2 ( x i ) 0.1295 1.0798 1.8250 2.3651 2.7000 2.8299

Сумма квадратов ошибок Φ = ∑ [F2 ( x j ) − y j ] = 0.0946 .


5 2

j =0
3.5

2.5

2
y

1.5

0.5

0
0 1 2 3 4 5 6 7 8 9
x

Рис. 3.1
На рис. 3.1 точками обозначены табличные данные, сплошной линией -
приближающий многочлен первой степени, пунктирной – приближающий многочлен
второй степени.
Задание к разделу 3.2.
Для таблично заданной функции путем решения нормальной системы МНК найти
приближающие многочлены a) 1-ой и b) 2-ой степени. Для каждого из приближающих
многочленов вычислить сумму квадратов ошибок. Построить графики приближаемой
функции и приближающих многочленов.
3.3. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ
Формулы численного дифференцирования в основном используются при
нахождении производных от функции y = f (x) , заданной таблично. Исходная функция
[ ]
y i = f ( x i ), i = 0,1...M на отрезках x j , x j + k заменяется некоторой приближающей, легко

вычисляемой функцией ϕ ( x, a ), y = ϕ ( x, a ) + R ( x ) , где R(x) – остаточный член


приближения, a - набор коэффициентов, вообще говоря, различный для каждого из
рассматриваемых отрезков, и полагают, что y ′( x ) ≈ ϕ ′( x, a ) . Наиболее часто в качестве
приближающей функции ϕ ( x, a ) берется интерполяционный многочлен
n
ϕ ( x, a ) = Pn ( x) = ∑ a i x i , а производные соответствующих порядков определяются
i =0

дифференцированием многочлена.
При решении практических задач, как правило, используются аппроксимации
первых и вторых производных.
В первом приближении, таблично заданная функция может быть аппроксимирована
y i +1 − y i
отрезками прямой y ( x) ≈ ϕ ( x) = y i + ( x − x i ), x ∈ [x i , x i +1 ] . В этом случае:
x i +1 − x i

y i +1 − y i
y ' ( x) ≈ ϕ ' ( x) = = const , x ∈ [x i , x i +1 ] , (3.18)
x i +1 − x i
производная является кусочно-постоянной функцией и рассчитывается, по формуле (3.18)
с первым порядком точности в крайних точках интервала, и со вторым порядком точности
в средней точке интервала [1].
При использовании для аппроксимации таблично заданной функции
интерполяционного многочлена второй степени имеем:
y i + 2 − yi +1 yi +1 − yi

y i +1 − yi xi + 2 − xi +1 xi +1 − xi
y ( x) ≈ ϕ ( x) = y i + ( x − xi ) + ( x − xi )( x − xi +1 ), x ∈ [xi , xi +1 ]
xi +1 − xi xi + 2 − xi (3.19)
y i + 2 − yi +1 y i +1 − y i

y i +1 − y i xi + 2 − xi +1 xi +1 − xi
y ( x ) ≈ ϕ ( x) =
' '
+ (2 x − xi − xi +1 ), x ∈ [xi , xi +1 ]
xi +1 − xi xi + 2 − xi (3.20)
При равностоящих точках разбиения, данная формула обеспечивает второй порядок
точности.
Для вычисления второй производной, необходимо использовать
интерполяционный многочлен, как минимум второй степени. После дифференцирования
многочлена получаем
y i + 2 − yi +1 yi +1 − y i

xi + 2 − xi +1 xi +1 − xi
y ( x) ≈ ϕ ( x) = 2
'' ''
, x ∈ [xi , xi +1 ]
x i + 2 − xi (3.21)

Пример.
Вычислить первую и вторую производную от таблично заданной функции
y i = f ( xi ), i = 0,1,2,3,4 в точке x = X ∗ . X ∗ = 0.2 .

i 0 1 2 3 4
xi 0.0 0.1 0.2 0.3 0.4

yi 1.0 1.1052 1.2214 1.3499 1.4918

Вычислим производную, используя формулу (3.18) и отрезок [x1 , x 2 ] , т.к. точка в которой
требуется найти значение производной, совпадает с правой границей отрезка, то такую
y 2 − y1 1.2214 − 1.1052
производную еще называют левосторонней: y ' (0.2) = = = 1.1623 .
x 2 − x1 0.2 − 0.1

y3 − y 2 1.3499 − 1.2214
Аналогично правосторонняя производная: y ' (0.2) = = = 1.2846 .
x3 − x 2 0.3 − 0.2
Обе эти формулы позволяют вычислить производную с первым порядком точности.
Вычислим производную со вторым порядком точности, для этого воспользуемся
формулой (3.20):
y 3 − y 2 y 2 − y1

y 2 − y1 x3 − x 2 x 2 − x1
y (0.2) =
'
+ (2 * 0.2 − x1 − x 2 ) =
x 2 − x1 x3 − x1
1.3499 − 1.2214 1.2214 − 1.1052

1.2214 − 1.1052 0.3 − 0.2 0.2 − 0.1
= + (2 * 0.2 − 0.1 − 0.2) = 1.2234.
0.2 − 0.1 0.3 − 0.1
Заметим, что результат вычисления по формуле (3.20), в случае равномерной сетки,
совпадает с полусуммой левосторонней и правосторонней производных.
Вычислим вторую производную в точке x = 0.2 , используя (3.21):
y 3 − y 2 y 2 − y1 1.3499 − 1.2214 1.2214 − 1.1052
− −
x − x x − x 0.3 − 0.2 0.2 − 0.1
y '' (0.2) = 2 3 2 2 1
=2 = 1.2224.
x3 − x1 0.3 − 0.1
3.4. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ

Формулы численного интегрирования используются в тех случаях, когда


b
вычислить аналитически определенный интеграл F = ∫ f ( x ) dx не удается. Отрезок
a

[a, b] разбивают точками x0 ....x N , так что a = x0 ≤ x1 ≤ ... ≤ x N = b с достаточно мелким

шагом hi = xi − xi −1 и на одном или нескольких отрезках hi подынтегральную функцию

f (x ) заменяют такой приближающей ϕ (x ) , так что она, во-первых, близка f (x) , а, во-
вторых, интеграл от ϕ (x ) легко вычисляется. Рассмотрим наиболее простой и часто
применяемый способ, когда подынтегральную функцию заменяют на интерполяционный
n
многочлен Pn ( x) = ∑ a j x j , причем коэффициенты многочлена a j , вообще говоря,
j =0

различны на каждом отрезке [ xi , xi + k ] и определяются из условия

ϕ ( x j ) = f ( x j ), j = i,..., i + k , т.е. многочлен Pn зависит от параметров a j - Pn ( x, ai ) , тогда

f ( x) = Pn ( x, ai ) + Rn ( x, ai ), x ∈ [ xi , xi + k ] , (3.22)

N xi

где Rn ( x, ai ) – остаточный член интерполяции. Тогда F = ∑ ∫ Pn ( x, ai ) dx + R ,


i =1 xi −1

N xi

где R = ∑ ∫R n ( x, a i ) dx – остаточный член формулы численного интегрирования или её


i =1 xi −1

погрешность.
При использовании интерполяционных многочленов различной степени, получают
формулы численного интегрирования различного порядка точности.
Заменим подынтегральную функцию, интерполяционным многочленом Лагранжа
нулевой степени, проходящим через середину отрезка – точку x i = ( x i −1 + x i ) / 2 , получим
формулу прямоугольников.

⎛ x + xi ⎞
b N

∫ f ( x) dx ≈ ∑ hi f ⎜ i −1 ⎟ (3.23)
a i =1 ⎝ 2 ⎠

В случае постоянного шага интегрирования hi = h, i = 1,2,..., N и существования

f '' ( x), x ∈ [a, b] , имеет место оценка остаточного члена формулы прямоугольников

1 2
R≤ h M 2 (b − a ) , (3.24)
24
где M 2 = max f ′′( x) [ a ,b ] .

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


выбрать начало и конец отрезка интегрирования, т.е. заменить функцию f (x )
многочленом Лагранжа первой степени.
b
1 N
F = ∫ f ( x) dx ≈ ∑ ( f i + f i −1 ) hi
2 i =1
(3.25)
a

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

В случае постоянного шага интегрирования величина остаточного члена оценивается


b−a 2
R≤ h M2, (3.26)
12

где M 2 = max f ′′( x) [ a ,b ] .

Для повышения порядка точности формулы численного интегрирования заменим


подынтегральную кривую параболой – интерполяционным многочленом второй степени,
выбрав в качестве узлов интерполяции концы и середину отрезка интегрирования:
xi −1 , x 1 = ( xi −1 + xi ) 2 , xi .
i−
2

xi − xi −1
Для случая hi = , получим формулу Симпсона (парабол)
2
b
1 N
F = ∫ f ( x) dx ≈ ∑ ( f i−1 + 4 f i− 1 + f i ) hi
3 i =1
(3.27)
a 2

В случае постоянного шага интегрирования hi = h, i = 1,2,..., N , формула Симпсона

принимает вид.

h⎡ ⎤
F≈ ⎢ f 0 + 4 f 1 + 2 f 1 + 4 f 3 + 2 f 2 + ... + 2 f N −1 + 4 f N − 1 + f N ⎥ , (3.28)
3⎣ 2 2 2 ⎦

при этом количество интервалов на которое делится отрезок интегрирования, равно 2 N .


В том случае если существует f IV
( x), x ∈ [a, b] , для оценки величины погрешности
справедлива мажорантная оценка
(b − a ) 4
R≤ h M4, (3.29)
180

где M 4 = max f IV
( x) [ a ,b ] .
Метод Рунге-Ромберга-Ричардсона позволяет получать более высокий порядок
точности вычисления. Если имеются результаты вычисления определенного интеграла на
сетке с шагом h - F = Fh + O ( h p ) и на сетке с шагом kh - F = Fkh + O (( kh) p ) , то
b
Fh − Fkh
F = ∫ f ( x) dx = Fh + + O(h p +1 ) (3.30)
a k p −1

Пример.
X1

Вычислить определенный интеграл F= ∫ y dx ,


X0
методами прямоугольников, трапеций,

Симпсона с шагами h1 , h2 . Уточнить полученные значения, используя Метод Рунге-


Ромберга-Ричардсона:
x
y= , X 0 = −1, X k = 1, h1 = 0.5, h2 = 0.25 .
(3 x + 4) 2
В случае интегрирования с постоянным шагом формулы метода прямоугольников
принимает вид:
⎡ x + x1 x + x2 x + xN ⎤
F = h⎢ y( 0 ) + y( 1 ) + ... + y ( N −1 )⎥ ;
⎣ 2 2 2 ⎦
метода трапеций:
⎡y y ⎤
F = h ⎢ 0 + y1 + y 2 + ... + y N −1 + N ⎥ ;
⎣2 2 ⎦
метод Симпсона:
h
F= [ y 0 + 4 y1 + 2 y 2 + 4 y3 + 2 y 4 + ... + 2 y N −2 + 4 y N −1 + y N ] .
3
Вычислим интеграл с шагом 0.5, результаты занесем в таблицу.
Xi

∫ ydx
X0

i xi yi Метод
прямоугольников трапеций Симпсона
0 -1.0 -1.0 0.0 0.0 0.0
1 -0.5 -0.08 -0.12245 -0.27
2 0.0 0.0 -0.13428 -0.29 -0.22
3 0.5 0.01653 -0.12874 -0.28587
4 1.0 0.02041 -0.11914 -0.27663 -0.20558

Вычислим интеграл с шагом 0.25, результаты занесем в таблицу.


Xi

∫ ydx
X0

i xi yi Метод
прямоугольников трапеций Симпсона
0 -1.0 -1.0 0.0 0.0 0.0
1 -0.75 -0.24490 -0.11570 -0.15561
2 -0.5 -0.08 -0.15031 -0.19622 -0.17163
3 -0.25 -0.02367 -0.16165 -0.20918
4 0.0 0.0 -0.16403 -0.21214 -0.18619
5 0.25 0.01108 -0.16239 -0.21076
6 0.5 0.01653 -0.15882 -0.20731 -0.18112
7 0.75 0.01920 -0.15430 -0.20284
8 1.0 0.02041 -0.14914 -0.19789 -0.17164

Уточним значение интеграла, используя метод Рунге-Ромберга-Ричардсона получим:


Точное Метод
значение абсолютная погрешность
1
x прямоугольников трапеций Симпсона
F= ∫−1 (3x + 4) 2 dx -0.16474 -0.15937 -0.17164 -0.16033
0.00537 0.00690 0.00441