Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы научных вычислений. Введение в численные методы для физиков и инженеров

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
ГЛАВА 5
Численное интегрирование
Список обозначений
I(f), J(f ) — точное значение интеграла e(f) — ошибка квадратурной формулы h
k
I
k
e
k
N, L, K — число подынтервалов в направлении осей x, y
M — число узлов в квадратурной формуле Гаусса–
f(x) ∈ C
ε
p
(n)
В этой главе мы рассмотрим методы, которые часто применяют­ся для приближённого вычисления определённых интегралов. Формулы для вычисления одномерных (двумерных) интегралов часто называют­ся квадратурными (кубатурными) формулами. Необходимость вычисле­ния определённых интегралов возникает в различных ситуациях. Самый очевидный случай — когда первообразная подынтегральной функции не может быть выражена через элементарные функции. Если подынтеграль­ная функция задана только в наборе точек, например она представля­ет данные эксперимента, то интеграл от этой функции не может быть вычислен аналитическими методами. Формулы приближённого интегри­рования также находят широкое применение при создании численных методов для решения дифференциальных и интегральных уравнений. Всё это говорит о том, что численное интегрирование играет важную роль при решении различных практических задач.
— длина подынтервала при делении отрезка
интегрирования
— приближённое значение интеграла,
вычисленное с шагом h
— оценка ошибки вычисления I
k
k
и z соответственно
Кристоффеля
[a, b] —функцияf(x) имеет непрерывные производные
до порядка n включительно на интервале [a, b]
— заданная точность вычисления интеграла
102 Глава 5
В физике и инженерных науках чаще всего встречается интеграл Римана. Он определяется как
b
где x
где x
где x
f(x) dx ≡ lim
a
∗
— произвольная точка из интервала Δxnи ∪Δxn=[a, b],
n
max Δxn→0

f(x, y) dx dy ≡ lim
S
∗
∗
,y
— произвольные точки из подобласти ΔSnи ∪ΔSn= S,
n
n
max ΔSn→0

∗
n
f(x, y, z) dx dy dz ≡ lim
V
∗
∗
,y
,z
— произвольные точки из подобласти ΔVnи ∪ΔVn= V .
n
n
max ΔVn→0
N
n=1
n=1
N
n=1
f(x
f(x
N
∗
)Δxn,
n
∗
n
f(x
,y
∗
n
∗
n
,y
)ΔSn,
∗
,z
n
n
∗
)ΔVn,
Самый простой способ построения формул приближённого интегри­рования непосредственно следует из приведённых выше определений. Если мы будем использовать интервалы конечной длины вместо беско­нечно малых интервалов (просто уберём знак lim), то получим простей­шие формулы для приближённого вычисления интегралов. Однако такой подход далеко не всегда наиболее эффективный.
5.1. Простейшие квадратурные формулы
Мы начнем рассмотрение методов для приближенного вычисления определённого интеграла
b
I(f)=
с метода, основанного на замене подынтегральной функции f (x) неко­торым полиномом, интеграл от которого вычисляется легко. Вначале разобьем интервал интегрирования на подынтервалы, вводя множество точек a = x
0<x1
<... <xN= b. Приблизим функцию f(x) на каждом
f(x) dx (5.1)
a
5.1. Простейшие квадратурные формулы 103
f
x
n
x
n+1/2
x
n+1
x
Рис. 5.1. Приближение функции в методе прямоугольников
подынтервале [xn,x
+ x
)/2 (рисунок 5.1).
n+1
Тогда
] константой f(x
n+1
x
n+1
f(x) dx ≈ f (x
x
n
n+1/2
n+1/2
)(x
n+1
),гдеx
− xn)
n+1/2
=(x
n+1
исумма
N−1
I
R
(f)=
n=0
f(x
n+1/2
)(x
− xn) (5.2)
n+1
даёт приближённое значение определённого интеграла (5.1), то есть
I(f)=I
(f)+eR(f).
R
Так как сумма (5.2) геометрически представляет собой сумму пло­щадей прямоугольников, то этот метод часто называют методом пря­моугольников. Если мы приблизим функцию f (x) на каждом интерва­ле [x
n,xn+1
] линейной функцией (рисунок 5.2), то приближённое значе-
ние интеграла I(f) есть сумма площадей соответствующих трапеций:
N−1
n=0
1 2
(f(x
)+f(x
n
n+1
))(x
− xn)+eT(f)=IT(f)+eT(f),
n+1
I(f)=
(5.3)
поэтому этот метод называется методом трапеций.
+
104 Глава 5
f
x
n
x
n+1
x
Рис. 5.2. Приближение функции в методе трапеций
f
x
n-1
x
n
x
n+1
x
Рис. 5.3. Приближение функции в методе Симпсона
Пусть N =2L, тогда мы можем приблизить подынтегральную функ- цию f(x) на каждом подынтервале [x ни p(x)=p
x2+ p1x + p0(рисунок 5.3), где коэффициенты p2,p1и p
2
n,xn+1
] полиномом второй степе-
определяются из решения системы
p(x
n+1
)=f(x
),p(xn)=f(xn),p(x
n+1
n−1
)=f(x
n−1
0
).
5.1. Простейшие квадратурные формулы 105
Тогда следующая сумма даёт приближённое значение интеграла I(f ):
⎡
x
2m+2
L−1
I(f)=
⎡
m=0
f(x
a
L−1
=
m=0
m
⎢
+ cm− am)f(x
(b
⎣
m
c
f(x2m)
m
2m+2
)+
⎣
x
p(x) dx
2m
2m+1
)+
⎤
⎦
+ eS(f)=
⎤
⎥
(f)=IS(f)+eS(f),
+ e
⎦
S
(5.4)
где
2 2m+2
2 2m
− x2m(x
− x
2m+2(x2m+2
2x
a
=
m
−2x
=
b
m
c
2m+2
m
6(x
6(x
= x
+ x2m) −3x
− x
2m+2
2m+1
+ x2m) − 3x
− x2m)
2m+1
− x2m.
2m+2
2m+1(x2m+2
)
2m+1(x2m+2
− x2m)
− x2m)
,
,
Этот метод называется методом Симпсона.
Если мы разделим отрезок интегрирования на равные части, то
h = x
n+1
− xn=
b −a
N
= a + nh, n =0, ..., N,
,x
n
где h называется шагом деления. При этом квадратурные формулы (5.2), (5.3) и (5.4) значительно упрощаются:
N−1
h
N−1
n=0
2m+2
N−1
f(x
n=0
(f(xn)+f(x
f(xn)+
n=1
)+f(x
), (5.5)
n+1/2
)) =
n+1
1
f(b),
2
)+f(x2m)) =
2m+1
)+4f (x1)+2f (x2)+...+
N−2
)+4f (x
N−1
)+f(xN)
(5.6)
(5.7)
.
I
S
(f)=
=
I
T
= h
1 3
1
h
3
I
R
(f)=
1 2
L−1
h
m=0
f(x
2f(x
(f)=h
1 2
f(a)+
(f(x
0
106 Глава 5
Хотя формулы интегрирования с постоянным шагом имеют простой вид, их использование не всегда приемлемо с точки зрения вычисли­тельной эффективности. Рассмотрим, например, функцию, показанную на рисунке 5.4. Если мы выберем постоянный шаг интегрирования, то он должен быть достаточно малым для того, чтобы более точно ин­тегрировать функцию вблизи пика. Вместо этого можно использовать относительно большой шаг там, где производная функции f(x) мала, и меньший шаг в областях резкого изменения функции (рисунок 5.4). Ес­ли нам требуется вычислить интеграл с некоторой заданной точностью, то данный приём позволяет это сделать с меньшими затратами, так как значение функции вычисляется в меньшем количестве точек.
f
ab
Рис. 5.4. Ситуация, когда следует использовать неравномерное деление отрезка интегрирования
x
Теперь мы обратим наше внимание на оценку ошибок, полученных выше квадратурных формул. Для простоты мы рассмотрим случай де­ления отрезка интегрирования с постоянным шагом. Предположим, что
f(x) ∈ C цию f (x) на каждом подынтервале [x
(4)
[a, b], тогда, используя формулу Тейлора, представим функ-
n+1/2

f
n+1/2
] ввиде
)(x −x
(x
n+1/2
].
)4,
n+1/2
)(x − x
)+
n+1/2
)3+
n,xn+1
f(x)=f (x
1

+
f
(x
2
n+1/2
)(x − x
n+1/2
+
24
n+1/2
1
f
)+f(x
)2+
(4)
(y)(x − x
y ∈ [x
1 6
n,xn+1
5.1. Простейшие квадратурные формулы 107
Из этого разложения легко получить, что
x
n+1
f(x) dx −hf (x
x
n
n+1/2
)=
h
24
3

f
(x
n+1/2
)+O(h5)
и, следовательно, выражение для ошибки метода прямоугольников (5.5) принимает вид
N−1
e
R
(f)=
n=0
h
24
3

f
(x
n+1/2
)+O(h5).
Используя теорему о промежуточном значении, окончательно получим
N−1
2
24
1
N
n=0
2
f
f(x
n+1/2

(y)+O(h4),
)+ O(h4)=
e
R
(f)=
(b − a)h
24
(b − a)h
=
y ∈ [a, b].
Оценка ошибки для метода трапеций (5.6) и для метода Симпсона (5.7) (в этом случае мы предполагаем, что f (x) ∈ C
(6)
[a, b])можетбыть
получена аналогичным образом:
e
T
e
S
(f)=
(f)=
(b − a)h
(b − a)h
12
180
2

f
(y)+O(h4),y∈ [a, b],
4
(4)
f
(y)+O(h6),y∈ [a, b].
Эти оценки ошибки показывают, что методы прямоугольников и трапеций дают точное значение интеграла от линейных функций. Ме­тод Симпсона даёт точное значение интеграла, если подынтегральная функция является полиномом не выше третьей степени.
Полученные выше выражения для ошибок квадратурных формул можно представить в общем виде как
p
e(f)=Ch
+ O(hm), (5.8)
где C, p и m зависят от метода. Параметр p называется порядком квад­ратурной формулы, и он показывает, как быстро ошибка e(f ) стремится
108 Глава 5
кнулю,когдаh → 0. Чем выше порядок квадратурной формулы, тем меньше ошибка приближённого значения интеграла при заданном зна­чении шага h. Однако квадратурные формулы высоких порядков доволь­но громоздки и не всегда надёжны. Более того, теоретическая оценка ошибки (5.8) справедлива только для функций, имеющих непрерывные производные вплоть до порядка p, поэтому формулы высоких порядков имеет смысл использовать для интегрирования очень гладких функций.
5.2. Вычисление интегралов с заданной точностью
На практике нам нужно вычислить интеграл с некоторой заданной точностью, то есть, должно быть выполнено условие |e(f )| ε рассматривалось ранее, ошибка зависит от шага, но определить прием­лемую величину шага, используя выражение (5.8) и данное выше усло­вие, довольно затруднительно. Оценить ошибку можно непосредственно в процессе вычислений. Обозначим приближённое значение интеграла вычисленного с шагом h
= hαk(0 <α<1), как Ik,гдеh —начальный
k
шаг. Запишем выражение (5.8) для двух последовательных приближе­ний:
(f)=I − Ik= Ch
e
k
e
(f)=I − I
k+1
k+1
p k
+ O(h
m
),
k
= C(αhk)p+ O(h
m
).
k
Эти два выражения содержат два неизвестных: I и C,ипослеис­ключения C мы получим
(f)=I − I
e
k+1
Так как величина (h мым O((h
)m) в выражении (5.9) можно пренебречь, и тогда мы по-
k
α
=
k+1
)mмного меньше, чем (hk)p,тослагае-
k
1 −α
(I
− Ik)+O(h
k+1
p
m
). (5.9)
k
p
лучаем возможность оценить ошибку вычисления интеграла через два его приближённых значения. Для того чтобы получить значение I должны вычислить подынтегральную функцию в N и по мере уменьшения шага h
это может потребовать значительных
k
=(b −a)/hkточках
k
вычислительных затрат. Используя два последовательных приближения
I
и I
k
, можно получить более точное приближение к I.Еслимы
k+1
перепишем выражение (5.9) в виде
p
I = I
I
=
k+1
k+1
1 −α
+
− αpI
p
α
1 −α
k
+ O(h
(I
− Ik)+O(h
k+1
p
(e)
m
)=I
k
k+1
m k
+ O(h
)=
m
),
k
.Как
p
,мы
k
(5.10)
5.2. Вычисление интегралов с заданной точностью 109
(e)
то I
будет ближе к I (так как m>p), и это даёт возможность
k+1
получить приближённое значение интеграла с заданной точностью при относительно большом шаге h
. Процедура (5.9) и (5.10) называется
k
экстраполяцией по Ричардсону.
Суммируя всё изложенное выше, можно предложить следующую схему для вычисления интегралов:
1) зададим начальное значение шага h ипараметрα,затемвычислим
I
иположим
0
2) для каждого значения k =1, 2,... вычислим I
(e)
= I0;
I
0
сшагомhk= hα
k
и улучшенное приближение
I
− αpI
k
(e)
=
I
k
1 −α
k−1
p
;
k
3) если
1 −α
или
 
p
I
− I
α
k
p
 
(e)
I
− I
k
  
k−1
(e)
I
k
(e)
 
k−1
ε
p
I
k
   
ε
,
p
 
тогда процесс вычисления завершается и
   
или
П
РИМЕР 5.1 (ПРИМЕНЕНИЕ ЭКСТРАПОЛЯЦИИ ПО РИЧАРДСОНУ). Рас-
  
I −I
  
I −I
I
I
(e)
k
 
k
ε
p
   
.
ε
p
 
смотрим следующий интеграл:
1
I =
x ln(1 + x) dx =0.25.
0
110 Глава 5
Для вычисления этого интеграла мы воспользуемся методом тра­пеций (5.6) (p =2, m =4). Выберем начальный шаг h =1ибудем последовательно уменьшать его в два раза (α =0.5). Результаты вычис- лений представлены в Таблице 5.1.
Таблица 5.1.
k N
(e)
I
I
k
k
ekиз (5.9) I
(e)
k
k
 
I
− I
(e)
k
(e) k−1
    
0 1 0.346574 0.346574
1 2 0.274653 8.7287e − 02 0.250700 3.8254e − 01
2 4 0.256201 2.4007e − 02 0.250050 2.5167e − 03
3 8 0.251553 6.1594e − 03 0.250003 1.8778e − 04
4 16 0.250388 1.5501e − 03 0.250000 1.2441e − 05
5 32 0.250097 3.8818e − 04
6 64 0.250024 9.7085e − 05
7 128 0.250006 2.4274e − 05
8 256 0.250002 6.0686e − 06
9 512 0.250000 1.5172e − 06
Этот пример демонстрирует эффективность применения экстраполя­ции по Ричардсону. Улучшенное значение интеграла I к I быстрее, чем I
, что значительно уменьшает количество вычислений.
k
(e)
приближается
Существуют ситуации, когда подынтегральная функция непрерывна и ограничена на интервале интегрирования, а её производные имеют особые точки на этом интервале. В этом случае константа C в (5.8) стремится к бесконечности, когда h → 0.Интеграл
1
√
I =
xdx
0
является примером такой ситуации. С другой стороны, понятно, что ин­теграл от непрерывной ограниченной функции может быть вычислен с любой точностью в рамках машинной арифметики. Это означает, что по­ведение ошибки описывается выражением (5.8), но параметры C, p и m
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]