Проведем через три точки (xi,yi), (xi+1,yi+1), (xi+2,yi+2) параболу с осью, параллельной оси OY.
Уравнение этой параболы можно представить в виде (используем интерполяционный полином Лагранжа второго порядка):
где коэффициенты a, b и c находятся из условия, что парабола проходит через три заданные точки. На основании условий интерполяции
получаем систему трех уравнений для нахождения коэффициентов a, b, c:
Интегрируя затем непосредственно квадратичную функцию, получим, что площадь под параболой на отрезке [xi,xi+2] равна
Пусть m=N/2 - число сдвоенных интервалов длины 2h (N – четное). Просуммируем все такие приближенные площади:
и учтем, что в сумме все значения функции, относящиеся к четным точкам (кроме крайних точек), встречаются дважды. В результате получаем формулу Симпсона для расчета определенного интеграла:
Еще один вариант записи формулы Симпсона:
Теоретическая оценка погрешности для метода трапеций имеет вид
где M4 – максимальное значение модуля четвертой производной (3.6). Таким образом, верхний предел погрешности
Используя теоретическую оценку максимальной погрешности интегрирования, можно получить, какое число разбиений следует выбрать, чтобы получить результат с требуемой точностью.
Например, для метода центральных прямоугольников теоретическая оценка максимальной погрешности интегрирования определяется формулой:
Считая, что эта оценка не должна превышать требуемую точность вычислений, получаем формулы для нахождения максимально возможного шага h (или минимально возможного числа разбиений N)
, →
Откуда следует
Можно выбрать любое значение h, удовлетворяющее (4.4). Однако следует помнить, что h должно определять согласованную сетку, то есть, на заданной области [a;b] должно помещаться целое число шагов.
С учетом взаимосвязи h=(b-a)/N можно получить формулу для выбора числа шагов
→
причем значение N следует округлить до ближайшего целого в большую сторону.
Аналогичные соотношения можно получить и для метода трапеций:
или
и метода Симпсона
или
Пример. Вычислить интеграл с точностью ε=10-6.
Найдем производные подинтегральной функции
Значит, нужно применить квадратурную формулу (4.4) при N=340, чтобы получить результат с точностью до одной миллионной.
Примечание. Теоретические оценки дают величину максимально возможной погрешности. На практике эти величины могут быть гораздо больше реальной погрешности.
СОДЕРЖАНИЕ ЗАДАНИЯ
ЗАДАЧА 1. Составить программу, содержащую:
- вычисление подынтегральной функции f(x) в виде подпрограммы-функции;
- вычисление первообразной функции F(x) в виде подпрограммы-функции;
- подпрограмму-функцию вычисления определенного интеграла указанным в варианте численным методом. Параметры подпрограммы: пределы интегрирования [a;b] и количество разбиений N:
- ввод пределов интегрирования и числа разбиений N с клавиатуры;
- численный расчет заданного определенного интеграла посредством вызова соответствующей подпрограммы-функции;
- вычисление точного значения определенного интеграла обращением к первообразной функции (контроль точности в тестовом примере);
- вычисление относительной погрешности численного интегрирования
.
Путем многократного выполнения программы получить:
а) значения относительной погрешности при N = 2, 4, 6, .. 20. Построить в отчете таблицу зависимости δ(N).
б) Оценить, при каком значении N относительная погрешность численного результата станет меньше 10-5.
Результаты записать в отчет.
Метод центральных прямоугольников |
Метод Трапеций |
Метод Симпсона |
1) |
2) |
3) |
4) |
5) |
6) |
7) |
8) |
9) |
10) |
11) |
12) |
13) |
14) |
15) |
16) |
17) |
ЗАДАЧА 2. Используя теоретическую оценку погрешности численного метода, найти значение N (и, соответственно, h), обеспечивающее получение результата с точностью ε=10-6. Получить результат и сравнить его с точным. Решение задачи изложить в отчете.
ЗАДАЧА 3. Преобразовать подпрограмму, вычисляющую определенный интеграл, так, чтобы имя подинтегральной функции являлось параметром подпрограммы. Включить подпрограмму в собственный модуль и проверить ее работу.
ЗАДАЧА 4.Преобразовать подпрограмму, вычисляющую определенный интеграл с заданной точностью, так, чтобы имя подинтегральной функции являлось параметром подпрограммы. Включить подпрограмму в собственный модуль и проверить ее работу.
Составил: Дей Е.А. 2004
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.